diff options
author | Matt Singleton <matt@xcolour.net> | 2023-04-02 14:21:49 -0500 |
---|---|---|
committer | Matt Singleton <matt@xcolour.net> | 2023-04-02 14:21:49 -0500 |
commit | b483c295c082207dd7e8063949c2ff5b1ed14daf (patch) | |
tree | 96af8f2cdd86e25f8a0967b0a55209aa3fc47fc1 /sway-de/local | |
parent | a19790b7f5e606c3082dd0c8664e4fd460e7df91 (diff) |
new stow-based configuration management for graphical environment
Diffstat (limited to 'sway-de/local')
-rwxr-xr-x | sway-de/local/bin/dmenu-wl | 5 | ||||
-rwxr-xr-x | sway-de/local/bin/dnf-needs-restarting | 26 | ||||
-rwxr-xr-x | sway-de/local/bin/setbright | 30 | ||||
-rwxr-xr-x | sway-de/local/bin/setvol | 30 | ||||
-rw-r--r-- | sway-de/local/share/systemd/user/lxpolkit.service | 15 | ||||
-rw-r--r-- | sway-de/local/share/systemd/user/mako.service | 19 | ||||
-rw-r--r-- | sway-de/local/share/systemd/user/udiskie.service | 15 | ||||
-rw-r--r-- | sway-de/local/share/systemd/user/wob.service | 13 | ||||
-rw-r--r-- | sway-de/local/share/systemd/user/wob.socket | 9 |
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 |