### Variables # super set $mod Mod4 # alt set $mod2 Mod1 set $left h set $down j set $up k set $right l set $term urxvt set $menu rofi -show run -display-run '> ' -display-window ' 🗔 ' ### Output configuration # # Default wallpaper (more resolutions are available in __DATADIR__/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 # output DP-1 res 2560x1440 pos 1366,0 # # 672 = 1440 - 768 # output LVDS-1 pos 0,760 output DP-1 res 2560x1440 pos 0,0 # 672 = 1440 - 768 output LVDS-1 pos 2560,760 ### Idle configuration exec swayidle \ timeout 120 '[ -f ~/.nosleep ] || swaymsg "output * dpms off"' \ resume '[ -f ~/.nosleep ] || swaymsg "output * dpms on"' \ ### Key bindings # # Basics: # set $floating_term $term -name floating for_window [class="URxvt" instance="floating"] floating enable set $mode_launch (⏎)urxvt | (e)macs | iceweasel (a)minb (c)hr (p)riv | ice(C)at mode "$mode_launch" { bindsym Return exec $floating_term, mode "default" bindsym e exec emacs, mode "default" bindsym a exec iceweasel -P aminb, mode "default" bindsym c exec iceweasel -P chr, mode "default" bindsym p exec iceweasel -P chr -private, mode "default" bindsym Shift+c exec icecat, mode "default" # back to normal: Escape, or q bindsym Escape mode "default" bindsym q mode "default" } bindsym XF86Launch1 mode "$mode_launch" # start a terminal bindsym $mod+Return exec $term bindsym $mod+Shift+Return exec $floating_term # kill focused window bindsym $mod+Shift+q kill # start your launcher bindsym $mod+d exec $menu # password manager bindsym $mod2+space exec rofi-pass # 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 exit bindsym $mod+apostrophe exec rofi-light # rofi-based brightness chooser bindsym XF86MonBrightnessUp exec light -A 5 # increase screen brightness bindsym XF86MonBrightnessDown exec light -U 5 # decrease screen brightness bindsym XF86AudioRaiseVolume exec pamixer --allow-boost --increase 5 bindsym XF86AudioLowerVolume exec pamixer --allow-boost --decrease 5 bindsym XF86AudioMute exec pamixer --toggle-mute bindsym XF86AudioMicMute exec pactl set-source-mute 1 toggle bindsym $mod+Shift+apostrophe exec rofi-remmina.py # choose remmina connection # original sway workspace switch and window move bindsym $mod+bracketleft workspace prev bindsym $mod+bracketright workspace next bindsym $mod+braceleft move container to workspace prev bindsym $mod+braceright move container to workspace next # bspwm-esque workspace switch and window move bindsym $mod2+bracketleft exec sway-ws-util switch prev bindsym $mod2+bracketright exec sway-ws-util switch next bindsym $mod2+braceleft exec sway-ws-util move prev follow bindsym $mod2+braceright exec sway-ws-util move next follow # # 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 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 focused 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 # 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 sticky-ness of the current (floating) window bindsym $mod+$mod2+space sticky toggle # 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 bindsym $mod+Shift+a 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 $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+Shift+r mode "resize" # # Power button # set $mode_system System (l)ock | (e)xit sway | (s)uspend | (h)ibernate | (r)eboot | (S)hutdown mode "$mode_system" { bindsym l exec swaylock, mode "default" bindsym e exec swaymsg exit, mode "default" bindsym s exec systemctl suspend, mode "default" bindsym h exec systemctl hibernate, mode "default" bindsym r exec systemctl reboot, mode "default" bindsym Shift+s exec systemctl poweroff -i, mode "default" # back to normal: Enter, Escape, or q bindsym Return mode "default" bindsym Escape mode "default" bindsym q mode "default" } # bindsym XF86PowerOff mode "$mode_system" bindsym $mod+Shift+e mode "$mode_system" bindsym XF86ScreenSaver exec swaylock # # Presentation mode # bindsym $mod+$mod2+p exec ([ ! -e ~/.nosleep ] && touch ~/.nosleep || rm ~/.nosleep) && killall -USR1 i3status # # Notifications # bindsym $mod+Shift+n mode notifications mode notifications { bindsym Return exec makoctl invoke; exec makoctl dismiss; mode default bindsym d exec makoctl dismiss; mode default bindsym Shift+d exec makoctl dismiss -a; mode default bindsym Escape mode default bindsym q mode default } # # Screenshotting # set $mode_screenshot (a)ll | (r)egion mode "$mode_screenshot" { bindsym a exec grim $(xdg-user-dir PICTURES)/shots/$(date +'%Y-%m-%d-%H%M%S.png'); mode default bindsym r exec grim -g "$(slurp)" $(xdg-user-dir PICTURES)/shots/$(date +'%Y-%m-%d-%H%M%S.png'); mode default bindsym Escape mode default bindsym q mode default } bindsym Print mode "$mode_screenshot" # # Window configurations # for_window [class="mpv"] floating enable for_window [class="TelegramDesktop"] floating enable for_window [app_id="pavucontrol"] floating enable for_window [app_id="meld"] floating enable for_window [app_id="nm-connection-editor"] floating enable set $blue #285577 set $gray #1e1f21 set $red #900000 # # Status Bar: # # Read `man 5 sway-bar` for more information about this section. bar { position bottom colors { background $gray inactive_workspace $gray $gray #888888 active_workspace $gray $gray #ffffff urgent_workspace $red $red #ffffff focused_workspace $blue $blue #ffffff } status_command i3status | my-i3status.py } client.focused $blue $blue #ffffff $blue $blue client.unfocused $gray $gray #ffffff $gray $gray client.focused_inactive $gray $gray #ffffff $gray $gray # font pango: benis uushi 9 # font pango: Ubuntu Mono 11 # font pango: Inconsolata 11 font pango: DejaVu Sans Mono 9 # font pango: Liberation Mono 9 # get rid of title bars default_border pixel 4 exec xrdb .Xresources # exec pgrep -x "systemd-inhibit" || \ # systemd-inhibit --what=handle-power-key --who=aminb \ # --why="Handle power button in sway" sleep infinity exec mako 2>&1 >/tmp/mako.log exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 include /etc/sway/config.d/* include ~/.config/sway/`hostname` exec systemd-notify --ready || true