aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/dot_config
diff options
context:
space:
mode:
authorLibravatar sommerfeld <sommerfeld@sommerfeld.dev>2026-05-13 13:43:20 +0100
committerLibravatar sommerfeld <sommerfeld@sommerfeld.dev>2026-05-13 13:43:20 +0100
commit6cb90800c7fd94712f2dd7860863813de3f0ae30 (patch)
treec8f50acab1847a25042642d4fbfb4e32351a04bc /dot_config
parenta0d3c865628ac6bcaeba43261fb874e5b07fd424 (diff)
downloaddotfiles-6cb90800c7fd94712f2dd7860863813de3f0ae30.tar.gz
dotfiles-6cb90800c7fd94712f2dd7860863813de3f0ae30.tar.bz2
dotfiles-6cb90800c7fd94712f2dd7860863813de3f0ae30.zip
fix(sway): use read-only fuzzel history viewer for Super+Alt+n
makoctl menu only acts on currently-visible notifications, not history (mako has no API to re-invoke arbitrary history entries). Replace with a small script that pipes 'makoctl history' through jq and fuzzel, then copies the selected entry to the clipboard for reference.
Diffstat (limited to 'dot_config')
-rw-r--r--dot_config/sway/config2
-rwxr-xr-xdot_config/waybar/executable_mako-history.sh17
2 files changed, 18 insertions, 1 deletions
diff --git a/dot_config/sway/config b/dot_config/sway/config
index f2c3336..8453c3d 100644
--- a/dot_config/sway/config
+++ b/dot_config/sway/config
@@ -158,7 +158,7 @@ bindsym $mod+Shift+s exec "playerctl -a pause; swaylock -f -e -c 282828"
bindsym $mod+n exec makoctl dismiss
bindsym $mod+Shift+n exec makoctl dismiss --all
bindsym $mod+Ctrl+n exec makoctl restore
-bindsym $mod+Mod1+n exec makoctl menu -- sh -c 'fuzzel --dmenu --prompt "Notifications: " | cut -d" " -f1'
+bindsym $mod+Mod1+n exec ~/.config/waybar/mako-history.sh
# Clipboard history
bindsym $mod+p exec sh -c 'cliphist list | fuzzel --dmenu | cliphist decode | wl-copy'
diff --git a/dot_config/waybar/executable_mako-history.sh b/dot_config/waybar/executable_mako-history.sh
new file mode 100755
index 0000000..046f555
--- /dev/null
+++ b/dot_config/waybar/executable_mako-history.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+# Fuzzel picker over mako's notification history. Read-only: mako has no
+# API to re-invoke an arbitrary history item, so the selected entry is
+# copied to the clipboard for reference. Use makoctl restore to bring the
+# most recent dismissed notification back to the active list.
+
+set -eu
+
+selection=$(
+ makoctl history |
+ jq -r '.data[0][] | "[\(.["app-name"].data)] \(.summary.data) — \(.body.data)"' |
+ fuzzel --dmenu --prompt 'History: '
+)
+
+if [ -n "$selection" ]; then
+ printf '%s' "$selection" | wl-copy
+fi