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