summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xriver/init23
-rwxr-xr-xriver/sp/river_sp70
-rwxr-xr-xriver/sp/sp_a3
-rwxr-xr-xriver/sp/sp_b3
-rwxr-xr-xriver/sp/sp_c3
-rwxr-xr-xriver/sp/sp_d3
-rwxr-xr-xriver/sp/sp_f3
-rwxr-xr-xriver/sp/sp_g3
-rwxr-xr-xriver/sp/sp_q3
-rwxr-xr-xriver/sp/sp_s3
-rwxr-xr-xriver/sp/sp_v3
-rwxr-xr-xriver/sp/sp_x3
-rwxr-xr-xriver/sp/sp_z3
13 files changed, 115 insertions, 11 deletions
diff --git a/river/init b/river/init
index f01b730..ebd3224 100755
--- a/river/init
+++ b/river/init
@@ -105,17 +105,18 @@ riverctl map normal $mod1 0 set-focused-tags $all_tags
riverctl map normal $mod1+Shift 0 set-view-tags $all_tags
# scratchpad tags
-riverctl map normal $mod1+Control z spawn "river_sp -n z"
-riverctl map normal $mod1+Control x spawn "river_sp -n x"
-riverctl map normal $mod1+Control c spawn "river_sp -n c"
-riverctl map normal $mod1+Control v spawn "river_sp -n v"
-riverctl map normal $mod1+Control b spawn "river_sp -n b"
-riverctl map normal $mod1+Control a spawn "river_sp -n a"
-riverctl map normal $mod1+Control s spawn "river_sp -n s"
-riverctl map normal $mod1+Control d spawn "river_sp -n d"
-riverctl map normal $mod1+Control f spawn "river_sp -n f"
-riverctl map normal $mod1+Control g spawn "river_sp -n g"
-riverctl map normal $mod1+Control q spawn "river_sp -n q"
+BINPATH="${XDG_CONFIG_HOME:-$HOME/.config}/river/sp"
+riverctl map normal $mod1+Control z spawn "$BINPATH/river_sp -n z"
+riverctl map normal $mod1+Control x spawn "$BINPATH/river_sp -n x"
+riverctl map normal $mod1+Control c spawn "$BINPATH/river_sp -n c"
+riverctl map normal $mod1+Control v spawn "$BINPATH/river_sp -n v"
+riverctl map normal $mod1+Control b spawn "$BINPATH/river_sp -n b"
+riverctl map normal $mod1+Control a spawn "$BINPATH/river_sp -n a"
+riverctl map normal $mod1+Control s spawn "$BINPATH/river_sp -n s"
+riverctl map normal $mod1+Control d spawn "$BINPATH/river_sp -n d"
+riverctl map normal $mod1+Control f spawn "$BINPATH/river_sp -n f"
+riverctl map normal $mod1+Control g spawn "$BINPATH/river_sp -n g"
+riverctl map normal $mod1+Control q spawn "$BINPATH/river_sp -n q"
# $mod1+Space to toggle float
riverctl map normal $mod1+Control Space toggle-float
diff --git a/river/sp/river_sp b/river/sp/river_sp
new file mode 100755
index 0000000..e354cc9
--- /dev/null
+++ b/river/sp/river_sp
@@ -0,0 +1,70 @@
+#!/bin/sh
+
+#{{{ binpath
+BINPATH="${XDG_CONFIG_HOME:-$HOME/.config}/river/sp"
+#}}}
+
+#{{{ spawnwindow
+spawnwindow () {
+ case "$1" in
+ 1) pgrep -x sp_z || ${BINPATH}/sp_z ;;
+ 2) pgrep -x sp_x || ${BINPATH}/sp_x ;;
+ 3) pgrep -x sp_c || ${BINPATH}/sp_c ;;
+ 4) pgrep -x sp_v || ${BINPATH}/sp_v ;;
+ 5) pgrep -x sp_b || ${BINPATH}/sp_b ;;
+ 6) pgrep -x sp_a || ${BINPATH}/sp_a ;;
+ 7) pgrep -x sp_s || ${BINPATH}/sp_s ;;
+ 8) pgrep -x sp_d || ${BINPATH}/sp_d ;;
+ 9) pgrep -x sp_f || ${BINPATH}/sp_f ;;
+ 10) pgrep -x sp_g || ${BINPATH}/sp_g ;;
+ 11) pgrep -x sp_q || ${BINPATH}/sp_q ;;
+ *) printf "Unknown scratchpad $1!\n" ; exit 1 ;;
+ esac
+}
+#}}}
+
+#{{{ getopts
+while getopts "n:s:" o; do case "${o}" in
+ n)
+ case "$OPTARG" in
+ z|1) ARG=1 ;;
+ x|2) ARG=2 ;;
+ c|3) ARG=3 ;;
+ v|4) ARG=4 ;;
+ b|5) ARG=5 ;;
+ a|6) ARG=6 ;;
+ s|7) ARG=7 ;;
+ d|8) ARG=8 ;;
+ f|9) ARG=9 ;;
+ g|10) ARG=10 ;;
+ q|11) ARG=11 ;;
+ *) printf "Unknown scratchpad $1!\n" ; exit 1 ;;
+ esac
+ if pgrep -x "sp_$OPTARG"; then
+ riverctl toggle-focused-tags $((1 << ($ARG + 9)))
+ else
+ riverctl toggle-focused-tags $(( 1 << ($ARG + 9)))
+ riverctl spawn-tagmask $(( 1 << ($ARG + 9)))
+ spawnwindow "$ARG"
+ riverctl spawn-tagmask $(( (1 << 9) - 1))
+ fi
+ ;;
+ s)
+ case "$OPTARG" in
+ z|1) ARG=1 ;;
+ x|2) ARG=2 ;;
+ c|3) ARG=3 ;;
+ v|4) ARG=4 ;;
+ b|5) ARG=5 ;;
+ a|6) ARG=6 ;;
+ s|7) ARG=7 ;;
+ d|8) ARG=8 ;;
+ f|9) ARG=9 ;;
+ g|10) ARG=10 ;;
+ q|11) ARG=11 ;;
+ *) printf "Unknown scratchpad $1!\n" ; exit 1 ;;
+ esac
+ riverctl toggle-focused-tags $((1 << ($ARG + 9)))
+ ;;
+esac done
+#}}}
diff --git a/river/sp/sp_a b/river/sp/sp_a
new file mode 100755
index 0000000..d76f78e
--- /dev/null
+++ b/river/sp/sp_a
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+foot -a "spmutt" neomutt
diff --git a/river/sp/sp_b b/river/sp/sp_b
new file mode 100755
index 0000000..208cf4c
--- /dev/null
+++ b/river/sp/sp_b
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+foot -a "spncmp" ncmpcpp
diff --git a/river/sp/sp_c b/river/sp/sp_c
new file mode 100755
index 0000000..0201227
--- /dev/null
+++ b/river/sp/sp_c
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+foot -a "sppmxr" pulsemixer
diff --git a/river/sp/sp_d b/river/sp/sp_d
new file mode 100755
index 0000000..1545c87
--- /dev/null
+++ b/river/sp/sp_d
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+foot -a "spirss" irssi
diff --git a/river/sp/sp_f b/river/sp/sp_f
new file mode 100755
index 0000000..f2468ea
--- /dev/null
+++ b/river/sp/sp_f
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+foot -a "sptodo" todo
diff --git a/river/sp/sp_g b/river/sp/sp_g
new file mode 100755
index 0000000..7b3a393
--- /dev/null
+++ b/river/sp/sp_g
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+foot -a "sptrmc" tremc
diff --git a/river/sp/sp_q b/river/sp/sp_q
new file mode 100755
index 0000000..9202782
--- /dev/null
+++ b/river/sp/sp_q
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+qpwgraph
diff --git a/river/sp/sp_s b/river/sp/sp_s
new file mode 100755
index 0000000..288373c
--- /dev/null
+++ b/river/sp/sp_s
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+foot -a "spprof" profanity
diff --git a/river/sp/sp_v b/river/sp/sp_v
new file mode 100755
index 0000000..009e18d
--- /dev/null
+++ b/river/sp/sp_v
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+foot -a "spblue" bluetoothctl
diff --git a/river/sp/sp_x b/river/sp/sp_x
new file mode 100755
index 0000000..ef07b51
--- /dev/null
+++ b/river/sp/sp_x
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+foot -a "spterm"
diff --git a/river/sp/sp_z b/river/sp/sp_z
new file mode 100755
index 0000000..c6414ed
--- /dev/null
+++ b/river/sp/sp_z
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+foot -a "sphtop" htop