aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorLibravatar sommerfeld <sommerfeld@sommerfeld.dev>2026-05-13 13:43:19 +0100
committerLibravatar sommerfeld <sommerfeld@sommerfeld.dev>2026-05-13 13:43:19 +0100
commit1d5ea18ba2e2d98394c992e747df20a75682ec42 (patch)
treeec5930b20c91c78a2ae0dc3c67b5efd1814b6087
parentabf9846c1b40ed0cc915e47c3daca94022c74d29 (diff)
downloaddotfiles-1d5ea18ba2e2d98394c992e747df20a75682ec42.tar.gz
dotfiles-1d5ea18ba2e2d98394c992e747df20a75682ec42.tar.bz2
dotfiles-1d5ea18ba2e2d98394c992e747df20a75682ec42.zip
feat(sway): bind brightness and ThinkPad XF86 multimedia keys
Install brightnessctl and bind all seven ThinkPad multimedia keys: - XF86MonBrightnessUp/Down → brightnessctl ±5% - XF86AudioMicMute → pactl source mute - XF86Bluetooth → bt-toggle.sh (bluetoothctl + notify-send) - XF86ScreenSaver (Fn+F2) → same as $mod+Shift+s (pause + swaylock) - XF86Sleep → systemctl suspend - XF86WLAN / XF86RFKill → rfkill toggle Note: rfkill may need a passwordless doas rule (permit nopass :wheel cmd rfkill) or group membership to write /dev/rfkill without privileges; not wired speculatively.
-rw-r--r--KEYBINDS.md8
-rw-r--r--dot_config/sway/config12
-rw-r--r--dot_config/sway/executable_bt-toggle.sh16
-rw-r--r--meta/wayland.txt1
4 files changed, 37 insertions, 0 deletions
diff --git a/KEYBINDS.md b/KEYBINDS.md
index 69ba8de..3970a49 100644
--- a/KEYBINDS.md
+++ b/KEYBINDS.md
@@ -312,6 +312,14 @@ Mod key: `Super` (Mod4). Only personal additions beyond sway defaults listed.
| `XF86AudioPlay` | Play/pause |
| `XF86AudioNext` | Next track |
| `XF86AudioPrev` | Previous track |
+| `XF86MonBrightnessUp` | Brightness +5% (brightnessctl) |
+| `XF86MonBrightnessDown`| Brightness -5% (brightnessctl) |
+| `XF86AudioMicMute` | Mic mute toggle |
+| `XF86Bluetooth` | Bluetooth power toggle (bluetoothctl) |
+| `XF86ScreenSaver` | Lock screen + pause media (same as Super+Shift+s)|
+| `XF86Sleep` | Suspend system (systemctl suspend) |
+| `XF86WLAN` | Toggle Wi-Fi (rfkill) |
+| `XF86RFKill` | Toggle all radios (rfkill) |
| `Print` | Region screenshot (grim+slurp) |
| `Shift+Print` | Full screenshot (grim) |
| `Super+Shift+s` | Lock screen + pause media |
diff --git a/dot_config/sway/config b/dot_config/sway/config
index f88875b..7f95a62 100644
--- a/dot_config/sway/config
+++ b/dot_config/sway/config
@@ -135,6 +135,18 @@ bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
+# Brightness
+bindsym XF86MonBrightnessUp exec brightnessctl set +5%
+bindsym XF86MonBrightnessDown exec brightnessctl set 5%-
+
+# ThinkPad multimedia keys
+bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
+bindsym XF86Bluetooth exec ~/.config/sway/bt-toggle.sh
+bindsym XF86ScreenSaver exec "playerctl -a pause; swaylock -f -e -c 282828"
+bindsym XF86Sleep exec systemctl suspend
+bindsym XF86WLAN exec rfkill toggle wifi
+bindsym XF86RFKill exec rfkill toggle all
+
# Screenshots
bindsym Print exec sh -c 'grim -g "$(slurp)" - | tee ~/pics/screenshots/$(date +%Y-%m-%d-%H-%M-%S).png | wl-copy'
bindsym Shift+Print exec sh -c 'grim - | tee ~/pics/screenshots/$(date +%Y-%m-%d-%H-%M-%S).png | wl-copy'
diff --git a/dot_config/sway/executable_bt-toggle.sh b/dot_config/sway/executable_bt-toggle.sh
new file mode 100644
index 0000000..95958f9
--- /dev/null
+++ b/dot_config/sway/executable_bt-toggle.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+# Toggle Bluetooth power via bluetoothctl. Uses notify-send's synchronous
+# hint so repeated toggles replace the previous notification instead of
+# stacking.
+set -eu
+
+state=$(bluetoothctl show | awk '/Powered:/ {print $2}')
+if [ "$state" = "yes" ]; then
+ bluetoothctl power off >/dev/null
+ notify-send -t 1500 -h string:x-canonical-private-synchronous:bt \
+ 'Bluetooth' 'off'
+else
+ bluetoothctl power on >/dev/null
+ notify-send -t 1500 -h string:x-canonical-private-synchronous:bt \
+ 'Bluetooth' 'on'
+fi
diff --git a/meta/wayland.txt b/meta/wayland.txt
index e451cbb..fa0f26f 100644
--- a/meta/wayland.txt
+++ b/meta/wayland.txt
@@ -42,6 +42,7 @@ zathura
zathura-pdf-mupdf
# Misc
+brightnessctl
libfido2
perl-file-mimeinfo
qt5ct