Use wofi.
This commit is contained in:
parent
ff58229b23
commit
49e6f81a04
@ -22,9 +22,9 @@ bindsym $mod+Return exec alacritty
|
|||||||
|
|
||||||
bindsym $mod+Shift+q kill
|
bindsym $mod+Shift+q kill
|
||||||
|
|
||||||
bindsym $mod+d exec rofi -show run
|
bindsym $mod+d exec wofi --show run -i
|
||||||
bindsym $mod+Tab exec rofi -show window
|
bindsym $mod+Tab exec ~/etc/wofi-windows
|
||||||
bindsym $mod+p exec rofi-pass
|
bindsym $mod+p exec ~/etc/wofi-pass
|
||||||
|
|
||||||
define([dir_bind], [
|
define([dir_bind], [
|
||||||
bindsym $mod+$2 focus $1
|
bindsym $mod+$2 focus $1
|
||||||
@ -125,7 +125,7 @@ client.urgent base02 base08 base07 base08
|
|||||||
# finds out, if available)
|
# finds out, if available)
|
||||||
bar {
|
bar {
|
||||||
status_command i3status
|
status_command i3status
|
||||||
font pango:DejaVu Sans, Noto Sans CJK JP 8
|
font pango:DejaVu Sans, Noto Sans CJK JP 9
|
||||||
icon_theme Adwaita
|
icon_theme Adwaita
|
||||||
|
|
||||||
tray_output *
|
tray_output *
|
||||||
|
58
wofi-pass
Executable file
58
wofi-pass
Executable file
@ -0,0 +1,58 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -eo pipefail
|
||||||
|
|
||||||
|
root="$HOME/.password-store"
|
||||||
|
|
||||||
|
list_accounts() {
|
||||||
|
(cd "$root" && find -L . -name "*.gpg" | sed 's,^\./,,;s/\.gpg$//' | sort -n)
|
||||||
|
}
|
||||||
|
|
||||||
|
list_accounts_beginning_with_blank_page() {
|
||||||
|
yes '' | head -n50
|
||||||
|
list_accounts
|
||||||
|
}
|
||||||
|
|
||||||
|
do_type() {
|
||||||
|
echo -n "$1" | ydotool type --file=-
|
||||||
|
}
|
||||||
|
|
||||||
|
get_passwd() {
|
||||||
|
pass "$1" | head -n1
|
||||||
|
}
|
||||||
|
|
||||||
|
get_otp() {
|
||||||
|
pass otp "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_field() {
|
||||||
|
pass "$1" | grep "^$2: " | sed "s/$2: //"
|
||||||
|
}
|
||||||
|
|
||||||
|
account="$(list_accounts_beginning_with_blank_page | wofi -dip 'wofi-pass')"
|
||||||
|
|
||||||
|
test -n "$account" || exit
|
||||||
|
|
||||||
|
choices='password
|
||||||
|
username
|
||||||
|
url
|
||||||
|
otp'
|
||||||
|
choice="$(echo -n "$choices" | wofi -dp "$account")"
|
||||||
|
|
||||||
|
case "$choice" in
|
||||||
|
password)
|
||||||
|
passwd="$(get_passwd "$account")"
|
||||||
|
do_type "$passwd"
|
||||||
|
;;
|
||||||
|
username)
|
||||||
|
username="$(get_field "$account" username)"
|
||||||
|
do_type "$username"
|
||||||
|
;;
|
||||||
|
url)
|
||||||
|
url="$(get_field "$account" url)"
|
||||||
|
do_type "$url"
|
||||||
|
;;
|
||||||
|
otp)
|
||||||
|
otp="$(get_otp "$account")"
|
||||||
|
do_type "$otp"
|
||||||
|
;;
|
||||||
|
esac
|
@ -4,7 +4,7 @@
|
|||||||
windows=$(swaymsg -t get_tree | jq -r 'recurse(.nodes[]?)|recurse(.floating_nodes[]?)|select(.type=="con"),select(.type=="floating_con")|(.id|tostring)+" "+.app_id+": "+.name')
|
windows=$(swaymsg -t get_tree | jq -r 'recurse(.nodes[]?)|recurse(.floating_nodes[]?)|select(.type=="con"),select(.type=="floating_con")|(.id|tostring)+" "+.app_id+": "+.name')
|
||||||
|
|
||||||
# Select window with rofi
|
# Select window with rofi
|
||||||
selected=$(echo "$windows" | wofi --show dmenu -i | awk '{print $1}')
|
selected=$(echo "$windows" | wofi --show dmenu -i -p 'go to window' | awk '{print $1}')
|
||||||
|
|
||||||
# Tell sway to focus said window
|
# Tell sway to focus said window
|
||||||
swaymsg "[con_id=$selected]" focus
|
swaymsg "[con_id=$selected]" focus
|
Loading…
Reference in New Issue
Block a user