[sway] Switch launcher and pass to fuzzel
This commit is contained in:
parent
75af24765c
commit
269565187a
3 changed files with 133 additions and 16 deletions
89
.config/fuzzel/fuzzel.ini
Normal file
89
.config/fuzzel/fuzzel.ini
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
# output=<not set>
|
||||||
|
# font=monospace
|
||||||
|
# dpi-aware=auto
|
||||||
|
# prompt=>
|
||||||
|
# icon-theme=hicolor
|
||||||
|
# icons-enabled=yes
|
||||||
|
# fields=filename,name,generic
|
||||||
|
# password-character=*
|
||||||
|
# fuzzy=yes
|
||||||
|
# show-actions=no
|
||||||
|
# terminal=$TERMINAL -e # Note: you cannot actually use environment variables here
|
||||||
|
# launch-prefix=<not set>
|
||||||
|
|
||||||
|
# lines=15
|
||||||
|
# width=30
|
||||||
|
# horizontal-pad=40
|
||||||
|
# vertical-pad=8
|
||||||
|
# inner-pad=0
|
||||||
|
|
||||||
|
# image-size-ratio=0.5
|
||||||
|
|
||||||
|
# line-height=<use font metrics>
|
||||||
|
# letter-spacing=0
|
||||||
|
|
||||||
|
# layer = top
|
||||||
|
# exit-on-keyboard-focus-loss = yes
|
||||||
|
|
||||||
|
[colors]
|
||||||
|
background=282a36dd
|
||||||
|
text=f8f8f2ff
|
||||||
|
match=8be9fdff
|
||||||
|
selection-match=8be9fdff
|
||||||
|
selection=44475add
|
||||||
|
selection-text=f8f8f2ff
|
||||||
|
border=bd93f9ff
|
||||||
|
|
||||||
|
[border]
|
||||||
|
# width=1
|
||||||
|
# radius=10
|
||||||
|
|
||||||
|
[dmenu]
|
||||||
|
# mode=text # text|index
|
||||||
|
# exit-immediately-if-empty=no
|
||||||
|
|
||||||
|
[key-bindings]
|
||||||
|
# cancel=Escape Control+g
|
||||||
|
# execute=Return KP_Enter Control+y
|
||||||
|
# execute-or-next=Tab
|
||||||
|
# cursor-left=Left Control+b
|
||||||
|
# cursor-left-word=Control+Left Mod1+b
|
||||||
|
# cursor-right=Right Control+f
|
||||||
|
# cursor-right-word=Control+Right Mod1+f
|
||||||
|
# cursor-home=Home Control+a
|
||||||
|
# cursor-end=End Control+e
|
||||||
|
# delete-prev=BackSpace
|
||||||
|
# delete-prev-word=Mod1+BackSpace Control+BackSpace
|
||||||
|
# delete-next=Delete
|
||||||
|
# delete-next-word=Mod1+d Control+Delete
|
||||||
|
# delete-line=Control+k
|
||||||
|
# prev=Up Control+p
|
||||||
|
# prev-with-wrap=ISO_Left_Tab
|
||||||
|
# prev-page=PageUp KP_PageUp
|
||||||
|
# next=Down Control+n
|
||||||
|
# next-with-wrap=none
|
||||||
|
# next-page=Page_Down KP_Page_Down
|
||||||
|
|
||||||
|
# custom-N: *dmenu mode only*. Like execute, but with a non-zero
|
||||||
|
# exit-code; custom-1 exits with code 10, custom-2 with 11, custom-3
|
||||||
|
# with 12, and so on.
|
||||||
|
|
||||||
|
# custom-1=Mod1+1
|
||||||
|
# custom-2=Mod1+2
|
||||||
|
# custom-3=Mod1+3
|
||||||
|
# custom-4=Mod1+4
|
||||||
|
# custom-5=Mod1+5
|
||||||
|
# custom-6=Mod1+6
|
||||||
|
# custom-7=Mod1+7
|
||||||
|
# custom-8=Mod1+8
|
||||||
|
# custom-9=Mod1+9
|
||||||
|
# custom-10=Mod1+0
|
||||||
|
# custom-11=Mod1+exclam
|
||||||
|
# custom-12=Mod1+at
|
||||||
|
# custom-13=Mod1+numbersign
|
||||||
|
# custom-14=Mod1+dollar
|
||||||
|
# custom-15=Mod1+percent
|
||||||
|
# custom-16=Mod1+dead_circumflex
|
||||||
|
# custom-17=Mod1+ampersand
|
||||||
|
# custom-18=Mod1+asterix
|
||||||
|
# custom-19=Mod1+parentleft
|
|
@ -72,13 +72,13 @@ set $mod Mod4
|
||||||
set $alt Mod1
|
set $alt Mod1
|
||||||
|
|
||||||
# Set up a shortcut to reload this config file:
|
# Set up a shortcut to reload this config file:
|
||||||
bindsym $mod+Shift+c reload
|
bindsym $mod+k reload
|
||||||
|
|
||||||
# Quit your current session and return to the log-in manager/tty:
|
# Quit your current session and return to the log-in manager/tty:
|
||||||
bindsym $mod+Shift+e exec $HOME/.config/sway/exit.sh
|
bindsym $mod+Shift+k exec $HOME/.config/sway/exit.sh
|
||||||
|
|
||||||
# Open password menu
|
# Open password menu
|
||||||
bindsym $mod+x exec $HOME/.local/bin/passmenu --type
|
bindsym $mod+x exec $HOME/.local/bin/fuzzel-menu --type
|
||||||
|
|
||||||
# Screen locking (automatic, with a timeout)
|
# Screen locking (automatic, with a timeout)
|
||||||
set $lock swaylock -c 550000
|
set $lock swaylock -c 550000
|
||||||
|
@ -102,12 +102,6 @@ bindsym $mod+Down focus down
|
||||||
bindsym $mod+Up focus up
|
bindsym $mod+Up focus up
|
||||||
bindsym $mod+Right focus right
|
bindsym $mod+Right focus right
|
||||||
|
|
||||||
# Move focus to another window ("cult of vim" version):
|
|
||||||
bindsym $mod+j focus down
|
|
||||||
bindsym $mod+h focus left
|
|
||||||
bindsym $mod+l focus right
|
|
||||||
bindsym $mod+k focus up
|
|
||||||
|
|
||||||
# Move the window:
|
# Move the window:
|
||||||
bindsym $mod+Shift+Left move left
|
bindsym $mod+Shift+Left move left
|
||||||
bindsym $mod+Shift+Down move down
|
bindsym $mod+Shift+Down move down
|
||||||
|
@ -228,12 +222,12 @@ bindsym $mod+Ctrl+Down move workspace to output down
|
||||||
# You can "split" the current object of your focus with
|
# You can "split" the current object of your focus with
|
||||||
# $mod+b or $mod+v, for horizontal and vertical splits
|
# $mod+b or $mod+v, for horizontal and vertical splits
|
||||||
# respectively.
|
# respectively.
|
||||||
bindsym $mod+b splith
|
bindsym $mod+b splih
|
||||||
bindsym $mod+v splitv
|
bindsym $mod+v splitv
|
||||||
|
|
||||||
# Switch the current container between different layout styles
|
# Switch the current container between different layout styles
|
||||||
bindsym $mod+s layout stacking
|
bindsym $mod+s layout stacking
|
||||||
bindsym $mod+w layout tabbed
|
bindsym $mod+t layout tabbed
|
||||||
bindsym $mod+e layout toggle split
|
bindsym $mod+e layout toggle split
|
||||||
|
|
||||||
# Make the current focus fullscreen
|
# Make the current focus fullscreen
|
||||||
|
@ -280,7 +274,7 @@ bindsym XF86MonBrightnessUp exec light -A 10
|
||||||
# Keyboard Shortcuts (launching applications) #
|
# Keyboard Shortcuts (launching applications) #
|
||||||
#=============================================#
|
#=============================================#
|
||||||
# Set up wofi to replace dmenu as the launcher of choice:
|
# Set up wofi to replace dmenu as the launcher of choice:
|
||||||
set $menu wofi --show drun -i | xargs swaymsg exec --
|
set $menu fuzzel
|
||||||
|
|
||||||
# Launch your browser:
|
# Launch your browser:
|
||||||
bindsym $mod+shift+b exec firefox
|
bindsym $mod+shift+b exec firefox
|
||||||
|
@ -290,8 +284,7 @@ bindsym ctrl+$mod+f exec pcmanfm
|
||||||
|
|
||||||
# Open a terminal emulator:
|
# Open a terminal emulator:
|
||||||
set $term alacritty
|
set $term alacritty
|
||||||
bindsym $mod+t exec $term
|
bindsym $mod+Shift+c exec $term
|
||||||
bindsym $mod+Shift+t exec $term -e tmuxinator start default
|
|
||||||
|
|
||||||
# Kill focused window:
|
# Kill focused window:
|
||||||
bindsym $mod+F4 kill
|
bindsym $mod+F4 kill
|
||||||
|
@ -322,7 +315,7 @@ for_window [app_id="gnome-calendar"] floating enable
|
||||||
# Startup app #
|
# Startup app #
|
||||||
#===============================#
|
#===============================#
|
||||||
|
|
||||||
exec nextcloud
|
exec sleep 5s && nextcloud --background
|
||||||
|
|
||||||
#===============================#
|
#===============================#
|
||||||
# Dropdown terminal #
|
# Dropdown terminal #
|
||||||
|
@ -344,7 +337,7 @@ for_window [app_id="$ddterm-id"] {
|
||||||
}
|
}
|
||||||
|
|
||||||
# show existing or start new dropdown terminal
|
# show existing or start new dropdown terminal
|
||||||
bindsym Ctrl+Escape exec swaymsg '[app_id="$ddterm-id"] scratchpad show' \
|
bindsym $mod+c exec swaymsg '[app_id="$ddterm-id"] scratchpad show' \
|
||||||
|| $ddterm -e tmuxinator start default \
|
|| $ddterm -e tmuxinator start default \
|
||||||
&& sleep .1 && swaymsg '[app_id="$ddterm-id"] $ddterm-resize'
|
&& sleep .1 && swaymsg '[app_id="$ddterm-id"] $ddterm-resize'
|
||||||
# ^-- resize again, case moving to different output
|
# ^-- resize again, case moving to different output
|
||||||
|
|
35
.local/bin/fuzzel-menu
Executable file
35
.local/bin/fuzzel-menu
Executable file
|
@ -0,0 +1,35 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
shopt -s nullglob globstar
|
||||||
|
|
||||||
|
typeit=0
|
||||||
|
if [[ $1 == "--type" ]]; then
|
||||||
|
typeit=1
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n $WAYLAND_DISPLAY ]]; then
|
||||||
|
dmenu="fuzzel --dmenu --prompt '🔐 Password :'"
|
||||||
|
xdotool="/usr/bin/wtype -"
|
||||||
|
elif [[ -n $DISPLAY ]]; then
|
||||||
|
dmenu=dmenu
|
||||||
|
xdotool="xdotool type --clearmodifiers --file -"
|
||||||
|
else
|
||||||
|
echo "Error: No Wayland or X11 display detected" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
prefix=${PASSWORD_STORE_DIR-~/.password-store}
|
||||||
|
password_files=( "$prefix"/**/*.gpg )
|
||||||
|
password_files=( "${password_files[@]#"$prefix"/}" )
|
||||||
|
password_files=( "${password_files[@]%.gpg}" )
|
||||||
|
|
||||||
|
password=$(printf '%s\n' "${password_files[@]}" | fuzzel --dmenu --prompt "🔐 Password : " )
|
||||||
|
|
||||||
|
[[ -n $password ]] || exit
|
||||||
|
|
||||||
|
if [[ $typeit -eq 0 ]]; then
|
||||||
|
pass show -c "$password" 2>/dev/null
|
||||||
|
else
|
||||||
|
pass show "$password" | { IFS= read -r pass; printf %s "$pass"; } | $xdotool
|
||||||
|
fi
|
Loading…
Reference in a new issue