From 651ec1f8b7470e2ffac848b4fe99ce7ccdb826dd Mon Sep 17 00:00:00 2001 From: sommerfeld Date: Wed, 13 May 2026 13:43:30 +0100 Subject: feat: vim nav in wofi, bemoji, clip picker, webcam glyph fix - wofi config: key_up/key_down accept Up,k / Down,j; Ctrl-u/Ctrl-d for page jumps. Picker scripts auto-load this since they only pass --style. - waybar webcam glyph: U+F0D5D (camera/photo, looked Instagram-y) -> U+F0567 nf-md-video (handheld video camera). - Clipboard picker migrated from fuzzel to wofi for consistency with the notification picker. New driver dot_config/waybar/clip-picker.sh: pick (Mod+p) Enter pastes, Alt-d deletes delete (Mod+Shift+p) Enter deletes No clipboard "read" indicator: Wayland has no API for observing reads. - Emoji picker: bemoji on Mod+period, driven through wofi (so vim nav applies there too) and configured to type + copy via wtype. - LibreWolf flatpak: --device=all override so v4l2 webcams work. Flatpak has no finer-grained device flag. - KEYBINDS.md updated: Mod+p / Mod+Shift+p now describe wofi behavior; Mod+period documented. --- dot_config/waybar/executable_clip-picker.sh | 32 +++++++++++++++++++++++++++ dot_config/waybar/executable_webcam-status.sh | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 dot_config/waybar/executable_clip-picker.sh (limited to 'dot_config/waybar') diff --git a/dot_config/waybar/executable_clip-picker.sh b/dot_config/waybar/executable_clip-picker.sh new file mode 100644 index 0000000..11ebf4c --- /dev/null +++ b/dot_config/waybar/executable_clip-picker.sh @@ -0,0 +1,32 @@ +#!/bin/sh +# Clipboard picker on top of cliphist + wofi (vim-nav, hide-search, +# Alt-d to delete the highlighted entry). +# +# Modes: +# pick Enter pastes (cliphist decode | wl-copy) +# delete Enter deletes (cliphist delete) +# +# Alt-d in pick mode deletes the highlighted entry without pasting. + +set -u + +mode=${1:-pick} +style=$HOME/.config/wofi/style.css + +set +e +selection=$( + cliphist list \ + | wofi --dmenu --hide-search --prompt Clip \ + --define key_custom_0=Alt-d \ + ${style:+--style "$style"} +) +rc=$? +set -e + +[ -z "$selection" ] && exit 0 + +case "$mode:$rc" in + pick:0) printf '%s' "$selection" | cliphist decode | wl-copy ;; + pick:10) printf '%s' "$selection" | cliphist delete ;; + delete:0|delete:10) printf '%s' "$selection" | cliphist delete ;; +esac diff --git a/dot_config/waybar/executable_webcam-status.sh b/dot_config/waybar/executable_webcam-status.sh index 997f97a..1b812a6 100644 --- a/dot_config/waybar/executable_webcam-status.sh +++ b/dot_config/waybar/executable_webcam-status.sh @@ -12,7 +12,7 @@ esac # fuser exits 0 when at least one device has an opener, 1 otherwise. Stderr # carries 'PID' for each match; redirect it away. if fuser $devs >/dev/null 2>&1; then - printf '{"text":"󰵝","tooltip":"webcam in use","class":"active","alt":"active"}\n' + printf '{"text":"󰕧","tooltip":"webcam in use","class":"active","alt":"active"}\n' else printf '{"text":"","alt":"idle"}\n' fi -- cgit v1.3.1