aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/dot_config/sway
diff options
context:
space:
mode:
authorLibravatar sommerfeld <sommerfeld@sommerfeld.dev>2026-05-13 13:43:34 +0100
committerLibravatar sommerfeld <sommerfeld@sommerfeld.dev>2026-05-13 13:43:34 +0100
commit6b29fe2b16f2bc66f4921321644e87ec89c4b344 (patch)
treeedc6e2d6e383ab12f400d1b18559b6ce442e4bd4 /dot_config/sway
parent7bcd28569189858a493227696e5479c577d72368 (diff)
downloaddotfiles-6b29fe2b16f2bc66f4921321644e87ec89c4b344.tar.gz
dotfiles-6b29fe2b16f2bc66f4921321644e87ec89c4b344.tar.bz2
dotfiles-6b29fe2b16f2bc66f4921321644e87ec89c4b344.zip
feat(sway): non-XF86 alternatives for media/hardware keybinds
Every sway action that was reachable only via an XF86 keysym now has a Super-based alternative, so all bindings work on keyboards without a multimedia row. Frequent (direct binds, vim-direction layout on Super+Ctrl): Super+Ctrl+k/j = volume +/- Super+Ctrl+space = play/pause Super+Ctrl+l/h = next/previous track Super+Ctrl+]/[ = brightness +/- Rare (submode 'system' via Super+x; one letter runs and exits): b bluetooth · w wifi · r rfkill · s suspend · d display v pulsemixer · k KEYBINDS viewer · m mako history Escape/Return exits Existing Super+m / Super+Shift+m / Super+Shift+s already covered mic-mute / sink-mute / lock; XF86 binds untouched so the laptop's Fn-row keeps working. KEYBINDS.md updated.
Diffstat (limited to 'dot_config/sway')
-rw-r--r--dot_config/sway/config25
1 files changed, 25 insertions, 0 deletions
diff --git a/dot_config/sway/config b/dot_config/sway/config
index 9b72031..109a25e 100644
--- a/dot_config/sway/config
+++ b/dot_config/sway/config
@@ -139,6 +139,8 @@ bindsym $mod+Shift+Tab workspace prev_on_output
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
+bindsym $mod+Ctrl+k exec pactl set-sink-volume @DEFAULT_SINK@ +5%
+bindsym $mod+Ctrl+j exec pactl set-sink-volume @DEFAULT_SINK@ -5%
bindsym $mod+Shift+m exec pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym $mod+m exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
@@ -146,10 +148,15 @@ bindsym $mod+m exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
+bindsym $mod+Ctrl+space exec playerctl play-pause
+bindsym $mod+Ctrl+l exec playerctl next
+bindsym $mod+Ctrl+h exec playerctl previous
# Brightness
bindsym XF86MonBrightnessUp exec brightnessctl set +5%
bindsym XF86MonBrightnessDown exec brightnessctl set 5%-
+bindsym $mod+Ctrl+bracketright exec brightnessctl set +5%
+bindsym $mod+Ctrl+bracketleft exec brightnessctl set 5%-
# ThinkPad multimedia keys
bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
@@ -205,6 +212,24 @@ mode "qr" {
}
bindsym $mod+z mode "qr"
+# System / hardware submode — non-XF86 alternatives for the rarely used
+# hardware toggles and TUI launchers above. Enter with Super+x; mnemonic
+# letters (b=bluetooth, w=wifi, r=rfkill, s=sleep, d=display,
+# v=volume-mixer, k=keybinds, m=mako-history).
+mode "system" {
+ bindsym b exec ~/.config/sway/bt-toggle.sh, mode "default"
+ bindsym w exec ~/.config/waybar/wifi-toggle.sh, mode "default"
+ bindsym r exec rfkill toggle all, mode "default"
+ bindsym s exec systemctl suspend, mode "default"
+ bindsym d exec ~/.config/sway/display-toggle.sh, mode "default"
+ bindsym v exec $term --class=floating -e pulsemixer, mode "default"
+ bindsym k exec $term --class=floating -e glow -p ~/dotfiles/KEYBINDS.md, mode "default"
+ bindsym m exec ~/.config/waybar/mako-history.py, mode "default"
+ bindsym Escape mode "default"
+ bindsym Return mode "default"
+}
+bindsym $mod+x mode "system"
+
# Thunderbird toggle: main window stashed in the scratchpad; this pulls it to
# the current workspace (tiled) or sends it back. Child windows (compose,
# viewer, calendar, prefs) tile normally wherever Thunderbird spawns them.