From 6b29fe2b16f2bc66f4921321644e87ec89c4b344 Mon Sep 17 00:00:00 2001 From: sommerfeld Date: Wed, 13 May 2026 13:43:34 +0100 Subject: feat(sway): non-XF86 alternatives for media/hardware keybinds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- dot_config/sway/config | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'dot_config/sway/config') 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. -- cgit v1.3.1