aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/modules/workstation/ui/i3/tools/i3-switch.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/modules/workstation/ui/i3/tools/i3-switch.nix')
-rw-r--r--infra/libkookie/modules/workstation/ui/i3/tools/i3-switch.nix15
1 files changed, 15 insertions, 0 deletions
diff --git a/infra/libkookie/modules/workstation/ui/i3/tools/i3-switch.nix b/infra/libkookie/modules/workstation/ui/i3/tools/i3-switch.nix
new file mode 100644
index 000000000000..691e9470db83
--- /dev/null
+++ b/infra/libkookie/modules/workstation/ui/i3/tools/i3-switch.nix
@@ -0,0 +1,15 @@
+/** A utility script to switch to a workspace
+ *
+ * This tool relies on i3-msg, jq, and dmenu to switch to a different
+ * workspace. In the future, maybe the display mechanism (dmenu)
+ * could be made configurable, so not to rely on nazi code.
+ */
+
+{ pkgs, ... }: with pkgs; writeShellScript "libkookie-i3-switch" ''
+
+ WS=$(${i3}/bin/i3-msg -t get_workspaces | \
+ ${jq}/bin/jq -M '.[] | .name' | tr -d '"' \
+ | sort -u | ${dmenu}/bin/dmenu -b -i "$@")
+
+ ${i3}/bin/i3-msg workspace $WS
+''