aboutsummaryrefslogtreecommitdiff
path: root/herbstluftwm/scripts/lasttag.sh
diff options
context:
space:
mode:
Diffstat (limited to 'herbstluftwm/scripts/lasttag.sh')
-rwxr-xr-xherbstluftwm/scripts/lasttag.sh25
1 files changed, 25 insertions, 0 deletions
diff --git a/herbstluftwm/scripts/lasttag.sh b/herbstluftwm/scripts/lasttag.sh
new file mode 100755
index 0000000..dd89314
--- /dev/null
+++ b/herbstluftwm/scripts/lasttag.sh
@@ -0,0 +1,25 @@
+#!/usr/bin/env bash
+
+# usage: start this script in anywhere your autostart (but *after* the
+# emit_hook reload line)
+
+# to switch to the last tag, call: herbstclient emit_hook goto_last_tag
+# or bind it: herbstclient keybind Mod1-Escape emit_hook goto_last_tag
+
+hc() { "${herbstclient_command[@]:-herbstclient}" "$@" ;}
+hc --idle '(tag_changed|goto_last_tag|reload)' \
+ | while read line ; do
+ IFS=$'\t' read -ra args <<< "$line"
+ case ${args[0]} in
+ tag_changed)
+ lasttag="$tag"
+ tag=${args[1]}
+ ;;
+ goto_last_tag)
+ [ "$lasttag" ] && hc use "$lasttag"
+ ;;
+ reload)
+ exit
+ ;;
+ esac
+ done