aboutsummaryrefslogtreecommitdiff
path: root/sway-de/local
diff options
context:
space:
mode:
authorMatt Singleton <matt@xcolour.net>2023-04-02 14:21:49 -0500
committerMatt Singleton <matt@xcolour.net>2023-04-02 14:21:49 -0500
commitb483c295c082207dd7e8063949c2ff5b1ed14daf (patch)
tree96af8f2cdd86e25f8a0967b0a55209aa3fc47fc1 /sway-de/local
parenta19790b7f5e606c3082dd0c8664e4fd460e7df91 (diff)
new stow-based configuration management for graphical environment
Diffstat (limited to 'sway-de/local')
-rwxr-xr-xsway-de/local/bin/dmenu-wl5
-rwxr-xr-xsway-de/local/bin/dnf-needs-restarting26
-rwxr-xr-xsway-de/local/bin/setbright30
-rwxr-xr-xsway-de/local/bin/setvol30
-rw-r--r--sway-de/local/share/systemd/user/lxpolkit.service15
-rw-r--r--sway-de/local/share/systemd/user/mako.service19
-rw-r--r--sway-de/local/share/systemd/user/udiskie.service15
-rw-r--r--sway-de/local/share/systemd/user/wob.service13
-rw-r--r--sway-de/local/share/systemd/user/wob.socket9
9 files changed, 162 insertions, 0 deletions
diff --git a/sway-de/local/bin/dmenu-wl b/sway-de/local/bin/dmenu-wl
new file mode 100755
index 0000000..7ac2273
--- /dev/null
+++ b/sway-de/local/bin/dmenu-wl
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+set -euo pipefail
+
+wofi -d "$@"
diff --git a/sway-de/local/bin/dnf-needs-restarting b/sway-de/local/bin/dnf-needs-restarting
new file mode 100755
index 0000000..a080649
--- /dev/null
+++ b/sway-de/local/bin/dnf-needs-restarting
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+set -eo pipefail
+
+if command -v dnf > /dev/null; then
+ DNFCMD="dnf"
+fi
+if command -v jq > /dev/null; then
+ JQCMD="jq"
+fi
+if [ -z "$DNFCMD" ] || [ -z "$JQCMD" ]; then
+ echo "{\"tooltip\": \"requires 'jq' and 'dnf'\", \"text\": \"\"}"
+ exit 1
+fi
+
+set -u
+
+if ! output="$($DNFCMD needs-restarting -r)"; then
+ icon=""
+else
+ icon=""
+fi
+
+# this is a literal expression for `jq`
+# shellcheck disable=SC2016
+$JQCMD --unbuffered -n -c '{tooltip: $ARGS.positional[0], text: $ARGS.positional[1]}' --args "$output" "$icon"
diff --git a/sway-de/local/bin/setbright b/sway-de/local/bin/setbright
new file mode 100755
index 0000000..7d2784a
--- /dev/null
+++ b/sway-de/local/bin/setbright
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+set -euo pipefail
+
+wobsock="$XDG_RUNTIME_DIR/wob.sock"
+if [ ! -p "$wobsock" ]; then
+ echo $wobsock
+ echo "communication socket not found"
+ exit 2
+fi
+
+current=$(brightnessctl -m info | cut -d, -f4 | tr --delete '%')
+case $1 in
+ up)
+ increment=$(( 5 - ( current % 5 ) ))
+ new=$(( current + increment ))
+ if [ $new -gt 100 ]; then
+ new=100
+ fi
+ brightnessctl set $new% > /dev/null 2>&1
+ echo $new > $wobsock;;
+ down)
+ increment=$(( ( ( current - 1 ) % 5 ) + 1 ))
+ new=$(( current - increment ))
+ if [ $new -lt 0 ]; then
+ new=0
+ fi
+ brightnessctl set $new% > /dev/null 2>&1
+ echo $new > $wobsock;;
+esac
diff --git a/sway-de/local/bin/setvol b/sway-de/local/bin/setvol
new file mode 100755
index 0000000..f8bb4df
--- /dev/null
+++ b/sway-de/local/bin/setvol
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+set -euo pipefail
+
+wobsock="$XDG_RUNTIME_DIR/wob.sock"
+if [ ! -p "$wobsock" ]; then
+ echo $wobsock
+ echo "communication socket not found"
+ exit 2
+fi
+
+current_volume=$(pactl get-sink-volume @DEFAULT_SINK@ | grep Volume | sed -e 's/.* \([0-9][0-9]*\)%.*/\1/')
+case $1 in
+ up)
+ increment=$(( 5 - ( current_volume % 5 ) ))
+ newvol=$(( current_volume + increment ))
+ if [ $newvol -gt 100 ]; then
+ newvol=100
+ fi
+ pactl set-sink-volume @DEFAULT_SINK@ $newvol%
+ echo $newvol > $wobsock;;
+ down)
+ increment=$(( ( ( current_volume - 1 ) % 5 ) + 1 ))
+ newvol=$(( current_volume - increment ))
+ if [ $newvol -lt 0 ]; then
+ newvol=0
+ fi
+ pactl set-sink-volume @DEFAULT_SINK@ $newvol%
+ echo $newvol > $wobsock;;
+esac
diff --git a/sway-de/local/share/systemd/user/lxpolkit.service b/sway-de/local/share/systemd/user/lxpolkit.service
new file mode 100644
index 0000000..98697d7
--- /dev/null
+++ b/sway-de/local/share/systemd/user/lxpolkit.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Simple PolicyKit authentication agent developed for LXDE
+PartOf=sway-session.target
+After=sway-session.target
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/lxpolkit
+ExecStop=/bin/kill -2 $MAINPID
+Restart=on-failure
+RestartSec=1
+TimeoutStopSec=10
+
+[Install]
+WantedBy=sway-session.target
diff --git a/sway-de/local/share/systemd/user/mako.service b/sway-de/local/share/systemd/user/mako.service
new file mode 100644
index 0000000..c05b06b
--- /dev/null
+++ b/sway-de/local/share/systemd/user/mako.service
@@ -0,0 +1,19 @@
+[Unit]
+Description=Lightweight Wayland notification daemon
+Documentation=man:mako(1)
+PartOf=sway-session.target
+After=sway-session.target
+
+[Service]
+Type=dbus
+BusName=org.freedesktop.Notifications
+ExecCondition=/bin/sh -c '[ -n "$WAYLAND_DISPLAY" ]'
+ExecStart=/usr/bin/mako
+ExecReload=/usr/bin/makoctl reload
+ExecStop=/bin/kill -2 $MAINPID
+Restart=on-failure
+RestartSec=1
+TimeoutStopSec=10
+
+[Install]
+WantedBy=sway-session.target
diff --git a/sway-de/local/share/systemd/user/udiskie.service b/sway-de/local/share/systemd/user/udiskie.service
new file mode 100644
index 0000000..ba7e7f0
--- /dev/null
+++ b/sway-de/local/share/systemd/user/udiskie.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Handle automounting of usb devices
+Documentation=man:udiskie(1)
+PartOf=sway-session.target
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/udiskie -s
+ExecStop=/bin/kill -2 $MAINPID
+Restart=on-failure
+RestartSec=1
+TimeoutStopSec=10
+
+[Install]
+WantedBy=sway-session.target
diff --git a/sway-de/local/share/systemd/user/wob.service b/sway-de/local/share/systemd/user/wob.service
new file mode 100644
index 0000000..1193b30
--- /dev/null
+++ b/sway-de/local/share/systemd/user/wob.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=A lightweight overlay volume/backlight/progress/anything bar for Wayland
+Documentation=man:wob(1)
+PartOf=sway-session.target
+After=sway-session.target
+ConditionEnvironment=WAYLAND_DISPLAY
+
+[Service]
+StandardInput=socket
+ExecStart=/usr/bin/wob
+
+[Install]
+WantedBy=sway-session.target
diff --git a/sway-de/local/share/systemd/user/wob.socket b/sway-de/local/share/systemd/user/wob.socket
new file mode 100644
index 0000000..01296d8
--- /dev/null
+++ b/sway-de/local/share/systemd/user/wob.socket
@@ -0,0 +1,9 @@
+[Socket]
+ListenFIFO=%t/wob.sock
+SocketMode=0600
+RemoveOnStop=on
+# If wob exits on invalid input, systemd should NOT shove following input right back into it after it restarts
+FlushPending=yes
+
+[Install]
+WantedBy=sockets.target