dotfiles/home/.config/sway/conf.d/06-keybinds.conf

229 lines
7.4 KiB
Plaintext

# vim:ft=swayconfig
# start terminal
bindsym $mod+Return exec $term
# start neovide
bindsym $mod+n exec neovide
# kill focused window
bindsym $mod+w kill
# Modes for controlling gaps
set $mode_gaps Gaps: (o) outer, (i) inner
set $mode_gaps_outer Outer Gaps: j|k|0|r|i
set $mode_gaps_inner Inner Gaps: j|k|0|r|o
bindsym $mod+g mode "$mode_gaps"
mode "$mode_gaps" {
bindsym o mode "$mode_gaps_outer"
bindsym i mode "$mode_gaps_inner"
bindsym Escape mode "default"
}
mode "$mode_gaps_inner" {
bindsym j gaps inner all minus 1
bindsym k gaps inner all plus 1
bindsym 0 gaps inner all set 0
bindsym r gaps inner all set 10
bindsym o mode "$mode_gaps_outer"
bindsym Escape mode "default"
}
mode "$mode_gaps_outer" {
bindsym j gaps outer all minus 1
bindsym k gaps outer all plus 1
bindsym 0 gaps outer all set 0
bindsym r gaps outer all set 10
bindsym i mode "$mode_gaps_inner"
bindsym Escape mode "default"
}
# Drag floating windows by holding down $mod and left mouse button.
# Resize them with right mouse button + $mod.
# Despite the name, also works for non-floating windows.
# Change normal to inverse to use left mouse button for resizing and right
# mouse button for dragging.
floating_modifier $mod normal
# reload the configuration file
bindsym $mod+Shift+r reload
# open link from clipboard in default application
bindsym $mod+Shift+o exec mimeo $(wl-paste)
# turn on and off internal screen
bindsym --locked XF86Search output eDP-1 toggle
# exit menu
bindsym $mod+Shift+e exec $term --app-id fzf-launcher --login-shell /bin/sh -c "$scripts/exit.sh"
# launch a program
bindsym $mod+d exec rofi -show drun
bindsym $mod+Shift+d exec rofi -show run
# manage clipboard
bindsym $mod+c exec clipman pick -t wofi
# manage notifications
bindsym $mod+Backspace exec makoctl invoke
bindsym Control+Escape exec makoctl dismiss
# activate lockscreen
bindsym Control+Shift+Backspace exec loginctl lock-session $(loginctl show-user $USER -p Sessions | cut -d'=' -f2)
# Move your focus around
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# Move focused window
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# Split direction
bindsym $mod+y splith
bindsym $mod+x splitv
# Switch the current container between different layout styles
bindsym $mod+s layout stacking
bindsym $mod+e layout tabbed
bindsym $mod+t layout toggle split
# Make the current focus fullscreen
bindsym $mod+f fullscreen
# Toggle the current focus between tiling and floating mode
bindsym $mod+Shift+space floating toggle
# Swap focus between the tiling area and the floating area
bindsym $mod+space focus mode_toggle
# move focus to the parent container
bindsym $mod+a focus parent
# Move the currently focused window to the scratchpad
bindsym $mod+Shift+minus move scratchpad
# Show the next scratchpad window or hide the focused scratchpad window.
# If there are multiple scratchpad windows, this command cycles through them.
bindsym $mod+minus scratchpad show
mode "resize" {
# left will shrink the containers width
# right will grow the containers width
# up will shrink the containers height
# down will grow the containers height
bindsym h resize grow width 10px
bindsym j resize shrink height 10px
bindsym k resize grow height 10px
bindsym l resize shrink width 10px
# ditto, with arrow keys
bindsym Left resize grow width 10px
bindsym Down resize shrink height 10px
bindsym Up resize grow height 10px
bindsym Right resize shrink width 10px
# return to default mode
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
# start browser
bindsym $mod+b exec $browser
# media keys
bindsym --locked XF86AudioRaiseVolume exec pamixer -ui 1 && pamixer --get-volume > $SWAYSOCK.wob
bindsym --locked XF86AudioLowerVolume exec pamixer -ud 1 && pamixer --get-volume > $SWAYSOCK.wob
bindsym --locked XF86AudioMute exec pamixer --toggle-mute && ( pamixer --get-mute && echo 0 > $SWAYSOCK.wob ) || pamixer --get-volume > $SWAYSOCK.wob
bindsym --locked XF86AudioNext exec playerctl next
bindsym --locked XF86AudioPrev exec playerctl previous
bindsym --locked XF86AudioPlay exec playerctl play-pause
bindsym --locked XF86AudioStop exec playerctl stop
bindsym --locked Ctrl+Alt+s exec playerctl stop
# rotate screen
bindsym $mod+Control+Right output eDP-1 transform 90
bindsym $mod+Control+Up output eDP-1 transform 0
bindsym $mod+Control+Down output eDP-1 transform 180
bindsym $mod+Control+Left output eDP-1 transform 270
bindsym $mod+Control+h output eDP-1 transform 270
bindsym $mod+Control+j output eDP-1 transform 180
bindsym $mod+Control+l output eDP-1 transform 90
bindsym $mod+Control+k output eDP-1 transform 0
# display brightness
bindsym --locked XF86MonBrightnessUp exec light -A 5 && light -G | cut -d'.' -f1 > $SWAYSOCK.wob
bindsym --locked XF86MonBrightnessDown exec light -U 5 && light -G | cut -d'.' -f1 > $SWAYSOCK.wob
# Some built-in keyboard keys
bindsym XF86Mail workspace 4
bindsym XF86Messenger workspace 3
bindsym XF86Calculator exec alacritty -e calc
# Switch to urgent workspace
bindsym $mod+u [urgent=latest] focus
# Switch to workspace
bindsym $mod+1 workspace 1
bindsym $mod+2 workspace 2
bindsym $mod+3 workspace 3
bindsym $mod+4 workspace 4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10
# Move container to workspace
bindsym $mod+Shift+1 move container to workspace 1
bindsym $mod+Shift+2 move container to workspace 2
bindsym $mod+Shift+3 move container to workspace 3
bindsym $mod+Shift+4 move container to workspace 4
bindsym $mod+Shift+5 move container to workspace 5
bindsym $mod+Shift+6 move container to workspace 6
bindsym $mod+Shift+7 move container to workspace 7
bindsym $mod+Shift+8 move container to workspace 8
bindsym $mod+Shift+9 move container to workspace 9
bindsym $mod+Shift+0 move container to workspace 10
# Move workspace to monitor in direction
bindsym Control+Shift+h move workspace to output left
bindsym Control+Shift+j move workspace to output down
bindsym Control+Shift+k move workspace to output up
bindsym Control+Shift+l move workspace to output right
bindsym Control+Shift+Left move workspace to output left
bindsym Control+Shift+Down move workspace to output down
bindsym Control+Shift+Up move workspace to output up
bindsym Control+Shift+Right move workspace to output right
# Take a screenshot to clipboard
bindsym Print exec grim -g "$(slurp -d)" - | wl-copy -t image/png
# Copy qr code to clipboard
bindsym Shift+Print exec grim -g "$(slurp -d)" - | zbarimg -q --raw PNG:- | wl-copy
# make Alt+hjkl emulate arrow keys
bindsym Alt+h exec ydotool key left
bindsym Alt+j exec ydotool key down
bindsym Alt+k exec ydotool key up
bindsym Alt+l exec ydotool key right
# Mumble push to talk
bindsym --no-repeat F12 exec gdbus call -e -d net.sourceforge.mumble.mumble -o / -m net.sourceforge.mumble.Mumble.startTalk
bindsym --release F12 exec gdbus call -e -d net.sourceforge.mumble.mumble -o / -m net.sourceforge.mumble.Mumble.stopTalk