|
### Variables |
|
# |
|
# Logo key. Use Mod1 for Alt. |
|
# set $mod Mod4 |
|
# Yes! Alt! |
|
set $mod Mod1 |
|
|
|
# Home row direction keys, like vim |
|
set $left h |
|
set $down j |
|
set $up k |
|
set $right l |
|
# Your preferred terminal emulator |
|
set $term kitty |
|
# Your preferred application launcher |
|
# Note: pass the final command to swaymsg so that the resulting window can be opened |
|
# on the original workspace that the command was run on. |
|
set $menu dmenu_path | dmenu | xargs swaymsg exec -- |
|
|
|
### Key bindings |
|
# |
|
# Basics: |
|
# |
|
# Start a terminal |
|
bindsym $mod+Return exec $term |
|
bindsym $mod+KP_Enter exec $term |
|
|
|
# Kill focused window |
|
bindsym $mod+Shift+q kill |
|
|
|
# Start your launcher |
|
bindsym $mod+d exec $menu |
|
|
|
# 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+c reload |
|
|
|
# Exit sway (logs you out of your Wayland session) |
|
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit' |
|
# |
|
# Moving around: |
|
# |
|
# Move your focus around |
|
bindsym $mod+$left focus left |
|
bindsym $mod+$down focus down |
|
bindsym $mod+$up focus up |
|
bindsym $mod+$right focus right |
|
# Or use $mod+[up|down|left|right] |
|
bindsym $mod+Left focus left |
|
bindsym $mod+Down focus down |
|
bindsym $mod+Up focus up |
|
bindsym $mod+Right focus right |
|
|
|
# Move the focused window with the same, but add Shift |
|
bindsym $mod+Shift+$left move left |
|
bindsym $mod+Shift+$down move down |
|
bindsym $mod+Shift+$up move up |
|
bindsym $mod+Shift+$right move right |
|
# Ditto, with arrow keys |
|
bindsym $mod+Shift+Left move left |
|
bindsym $mod+Shift+Down move down |
|
bindsym $mod+Shift+Up move up |
|
bindsym $mod+Shift+Right move right |
|
# |
|
# Workspaces: |
|
# |
|
# Switch to workspace |
|
bindsym $mod+1 workspace number 1 |
|
bindsym $mod+2 workspace number 2 |
|
bindsym $mod+3 workspace number 3 |
|
bindsym $mod+4 workspace number 4 |
|
bindsym $mod+5 workspace number 5 |
|
bindsym $mod+6 workspace number 6 |
|
bindsym $mod+7 workspace number 7 |
|
bindsym $mod+8 workspace number 8 |
|
bindsym $mod+9 workspace number 9 |
|
bindsym $mod+0 workspace number 10 |
|
# Move focused container to workspace |
|
bindsym $mod+Shift+1 move container to workspace number 1 |
|
bindsym $mod+Shift+2 move container to workspace number 2 |
|
bindsym $mod+Shift+3 move container to workspace number 3 |
|
bindsym $mod+Shift+4 move container to workspace number 4 |
|
bindsym $mod+Shift+5 move container to workspace number 5 |
|
bindsym $mod+Shift+6 move container to workspace number 6 |
|
bindsym $mod+Shift+7 move container to workspace number 7 |
|
bindsym $mod+Shift+8 move container to workspace number 8 |
|
bindsym $mod+Shift+9 move container to workspace number 9 |
|
bindsym $mod+Shift+0 move container to workspace number 10 |
|
# Note: workspaces can have any name you want, not just numbers. |
|
# We just use 1-10 as the default. |
|
# |
|
# Layout stuff: |
|
# |
|
# You can "split" the current object of your focus with |
|
# $mod+b or $mod+v, for horizontal and vertical splits |
|
# respectively. |
|
bindsym $mod+b splith |
|
bindsym $mod+v splitv |
|
|
|
# Switch the current container between different layout styles |
|
bindsym $mod+s layout stacking |
|
bindsym $mod+w layout tabbed |
|
bindsym $mod+e 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 |
|
# |
|
# Scratchpad: |
|
# |
|
# Sway has a "scratchpad", which is a bag of holding for windows. |
|
# You can send windows there and get them back later. |
|
|
|
# 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 |
|
# |
|
# Resizing containers: |
|
# |
|
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 $left resize shrink width 10px |
|
bindsym $down resize grow height 10px |
|
bindsym $up resize shrink height 10px |
|
bindsym $right resize grow width 10px |
|
|
|
# Ditto, with arrow keys |
|
bindsym Left resize shrink width 10px |
|
bindsym Down resize grow height 10px |
|
bindsym Up resize shrink height 10px |
|
bindsym Right resize grow width 10px |
|
|
|
# Return to default mode |
|
bindsym Return mode "default" |
|
bindsym Escape mode "default" |
|
} |
|
bindsym $mod+r mode "resize" |
|
|
|
bar { |
|
swaybar_command waybar |
|
} |
|
|
|
output "HEADLESS-1" resolution 1600x960 |
|
|
|
exec WAYLAND_DISPLAY=wayland-1 wayvnc --config wayvnc.cfg & |
|
exec kitty & |
|
|
|
bindsym --to-code { |
|
$mod+Next input "type:keyboard" xkb_layout us |
|
$mod+Prior input "type:keyboard" xkb_layout ru |
|
$mod+Ctrl+Next input "type:keyboard" xkb_layout us |
|
$mod+Ctrl+Prior input "type:keyboard" xkb_layout ru |
|
# Ctrl+Alt+3 exec swaymsg 'input "type:keyboard" xkb_layout "us,ru"'; swaymsg 'input "type:keyboard" xkb_options "grp:alt_space_toggle"' |
|
} |
|
|
|
include /etc/sway/config.d/* |