From 18425fd98eae360ab4af07abe724658875e732ec Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Fri, 15 Feb 2019 22:27:32 +0100 Subject: Add custom script for cycling workspaces in touchegg --- gui/conf/touchegg.conf | 18 ------------------ gui/pkgs/bin/uictrl.sh | 16 ++++++++++++++++ gui/pkgs/uictrl.nix | 9 +++++++++ gui/touchegg.nix | 18 +++++++++++++++++- 4 files changed, 42 insertions(+), 19 deletions(-) delete mode 100644 gui/conf/touchegg.conf create mode 100755 gui/pkgs/bin/uictrl.sh create mode 100644 gui/pkgs/uictrl.nix diff --git a/gui/conf/touchegg.conf b/gui/conf/touchegg.conf deleted file mode 100644 index 2afb98b..0000000 --- a/gui/conf/touchegg.conf +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Control+j - - - - Control+k - - - - BUTTON=3 - - - - diff --git a/gui/pkgs/bin/uictrl.sh b/gui/pkgs/bin/uictrl.sh new file mode 100755 index 0000000..46c7219 --- /dev/null +++ b/gui/pkgs/bin/uictrl.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env fish + +function cycle + set nsp_ws (wmctrl -d | awk '{if ($9 == "NSP") {print $1}}') + set current_ws (wmctrl -d | awk '{if ($2 == "*") {print $1}}') + + wmctrl -l | awk -v current_ws=$current_ws -v nsp_ws=$nsp_ws '{if ($2 > current_ws && $2 != nsp_ws) {print $2}}' | uniq + wmctrl -l | awk -v current_ws=$current_ws -v nsp_ws=$nsp_ws '{if ($2 < current_ws && $2 != nsp_ws) {print $2}}' | uniq +end + +switch $argv[1] + case next + wmctrl -s (cycle)[1] + case prev + wmctrl -s (cycle | tac)[1] +end diff --git a/gui/pkgs/uictrl.nix b/gui/pkgs/uictrl.nix new file mode 100644 index 0000000..0c965ad --- /dev/null +++ b/gui/pkgs/uictrl.nix @@ -0,0 +1,9 @@ +{ stdenv, pkgs, ... }: + +pkgs.writeTextFile { + name = "uictrl"; + executable = true; + destination = "/bin/uictrl"; + + text = builtins.readFile ./bin/uictrl.sh; +} diff --git a/gui/touchegg.nix b/gui/touchegg.nix index 1455da8..fee4344 100644 --- a/gui/touchegg.nix +++ b/gui/touchegg.nix @@ -1,7 +1,23 @@ { pkgs, ... }: { - home.file.".config/touchegg/touchegg.conf".source = ./conf/touchegg.conf; + home.file.".config/touchegg/touchegg.conf".lines = let + uictrl = pkgs.lib.callPackageWith pkgs ./pkgs/uictrl.nix { }; + in '' + + + + ${uictrl}/bin/uictrl prev + + + ${uictrl}/bin/uictrl next + + + BUTTON=3 + + + + ''; systemd.user.services.touchegg = { Unit = { -- cgit v1.2.3