# Default config for sway # # Copy this to ~/.config/sway/config and edit it to your liking. # # Read `man 5 sway` for a complete reference. ### Variables # # Logo key. Use Mod1 for Alt. set $wm_mod Mod4+Control set $launch Mod4+Alt # Home row direction keys, like vim set $left a set $down s set $up w set $right d # Your preferred terminal emulator set $term foot # 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 -- include /etc/sway/config-vars.d/* ### Output configuration # # Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill # # Example configuration: # # output HDMI-A-1 resolution 1920x1080 position 1920,0 # # You can get the names of your outputs by running: swaymsg -t get_outputs ### Idle configuration # exec swayidle -w \ timeout 300 'swaylock -f -c 000000' \ timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \ before-sleep 'swaylock -f -c 000000' # This will lock your screen after 300 seconds of inactivity, then turn off # your displays after another 300 seconds, and turn your screens back on when # resumed. It will also lock your screen before your computer goes to sleep. ### Input configuration # input type:keyboard { xkb_options ctrl:nocaps,shift:both_capslock } input type:touchpad { tap enabled } # You can get the names of your inputs by running: swaymsg -t get_inputs # Read `man 5 sway-input` for more information about this section. ### Key bindings # # Basics: # # Start a terminal bindsym $launch+Return exec $term bindsym $launch+t exec $term # Start Emacs bindsym $launch+e exec emacs # Start a browser bindsym $launch+f exec firefox --private-window # Kill focused window bindsym $wm_mod+q kill # Start your launcher bindsym $launch+space exec $menu # Drag floating windows by holding down Super and left mouse button. # Resize them with right mouse button + Super. # 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 Mod4 normal # Reload the configuration file bindsym $wm_mod+r reload # Lock screen # Black bindsym $wm_mod+l exec swaylock -f -c 000000 # Random color bindsym $wm_mod+Shift+l exec swaylock -f -c $(printf "%02x%02x%02x" $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256))) # Transparent bindsym $wm_mod+semicolon exec swaylock -f -c 00000000 # Exit sway (logs you out of your Wayland session) bindsym $wm_mod+Delete 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' bindsym Alt+Ctrl+Delete 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' bindsym Alt+Ctrl+Backspace exec swaymsg exit # # Moving around: # # Move your focus around bindsym $wm_mod+$left focus left bindsym $wm_mod+$down focus down bindsym $wm_mod+$up focus up bindsym $wm_mod+$right focus right # Or use the arrow keys bindsym $wm_mod+Left focus left bindsym $wm_mod+Down focus down bindsym $wm_mod+Up focus up bindsym $wm_mod+Right focus right # Move the focused window with the same, but add Shift bindsym $wm_mod+Shift+$left move left bindsym $wm_mod+Shift+$down move down bindsym $wm_mod+Shift+$up move up bindsym $wm_mod+Shift+$right move right # Ditto, with arrow keys bindsym $wm_mod+Shift+Left move left bindsym $wm_mod+Shift+Down move down bindsym $wm_mod+Shift+Up move up bindsym $wm_mod+Shift+Right move right # # Workspaces: # # Switch to workspace bindsym $wm_mod+1 workspace number 1 bindsym $wm_mod+2 workspace number 2 bindsym $wm_mod+3 workspace number 3 bindsym $wm_mod+4 workspace number 4 bindsym $wm_mod+5 workspace number 5 bindsym $wm_mod+6 workspace number 6 bindsym $wm_mod+7 workspace number 7 bindsym $wm_mod+8 workspace number 8 bindsym $wm_mod+9 workspace number 9 bindsym $wm_mod+0 workspace number 10 # Move focused container to workspace bindsym $wm_mod+Shift+1 move container to workspace number 1 bindsym $wm_mod+Shift+2 move container to workspace number 2 bindsym $wm_mod+Shift+3 move container to workspace number 3 bindsym $wm_mod+Shift+4 move container to workspace number 4 bindsym $wm_mod+Shift+5 move container to workspace number 5 bindsym $wm_mod+Shift+6 move container to workspace number 6 bindsym $wm_mod+Shift+7 move container to workspace number 7 bindsym $wm_mod+Shift+8 move container to workspace number 8 bindsym $wm_mod+Shift+9 move container to workspace number 9 bindsym $wm_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 horizontally # or vertically. bindsym $wm_mod+h splith bindsym $wm_mod+v splitv # Switch the current container between different layout styles bindsym $wm_mod+z layout tabbed bindsym $wm_mod+x layout stacking bindsym $wm_mod+c layout toggle split # Make the current focus fullscreen bindsym $wm_mod+f fullscreen # Toggle the current focus between tiling and floating mode bindsym $wm_mod+Shift+space floating toggle # Swap focus between the tiling area and the floating area bindsym $wm_mod+space focus mode_toggle # Move focus to the parent container bindsym $wm_mod+bracketleft focus parent bindsym $wm_mod+bracketright focus child # # 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 $wm_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 $wm_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 $wm_mod+Equal mode "resize" # # Setup input method # exec ibus-daemon --daemonize --replace --xim bindsym Mod4+1 exec ibus engine xkb:us::eng bindsym Mod4+2 exec ibus engine xkb:il::heb bindsym Mod4+3 exec ibus engine mozc-jp bindsym Mod4+4 exec ibus engine xkb:fr::fra # # Status Bar: # # Read `man 5 sway-bar` for more information about this section. bar { position top # When the status_command prints a new line to stdout, swaybar updates. # The default just shows the current date and time. status_command while date +'%Y-%m-%d %I:%M:%S %p'; do sleep 1; done colors { statusline #ffffff background #323232 inactive_workspace #32323200 #32323200 #5c5c5c } } include /etc/sway/config.d/*