# The files we include below will be created / overwritten by nwg-shell tools # include variables include outputs include autostart include workspaces include keyboard include pointer include touchpad # nwg-shell sway config # Read `man 5 sway` for reference. # border & title for_window [title="^.*"] border none, title_format " %class >> %title " for_window [floating] border 1 default_border none # gaps gaps inner 5 gaps outer 0 smart_gaps off # font font pango:monospace 11 # mod key used for most binds # Mod1 = Alt # Mod4 = Super set $Mod Mod4 # direction keys set $up l set $down k set $left j set $right semicolon ############### wob ################## set $WOBSOCK $XDG_RUNTIME_DIR/wob.sock exec rm -f $WOBSOCK && mkfifo $WOBSOCK && tail -f $WOBSOCK | wob ############### Autostart ################## exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK exec hash dbus-update-activation-environment 2>/dev/null && \ dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 exec ~/.azotebg exec blueman-applet exec udiskie ### Turn off screen on lid closed # set $laptop eDP-1 # bindswitch lid:on output $laptop disable # bindswitch lid:off output $laptop enable ############# Bindings ################## # kill focused window bindsym $Mod+Shift+q kill bindsym Mod1+F4 kill # core applications bindsym $Mod+Return exec $term bindsym $Mod+s exec nwg-shell-config bindsym $Mod+w exec $browser bindsym $Mod+f exec $filemanager bindsym $Mod+c exec swaync-client -t bindsym Mod1+l exec nwg-lock bindsym $Mod+F1 exec nwg-shell-help bindsym $Mod+d exec wofi --show=drun #bindsym $Mod+d exec rofi -lines 12 -padding 18 -width 60 -location 0 -show drun -sidebar-mode -columns 3 -font 'Noto Sans 8' # Exit menu bindsym $Mod+p exec $exit # Exit sway (default way to log 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' # screenshot bindsym Print exec screenshot fullscreen bindsym Control+Print exec screenshot display bindsym Shift+Control+Print exec grim -g "$(slurp)" - | swappy -f - bindsym $Mod+Shift+Control+Print exec screenshot focused # audio bindsym XF86AudioRaiseVolume exec amixer sset Master 5%+ | sed -En 's/.*\[([0-9]+)%\].*/\1/p' | head -1 > $WOBSOCK bindsym XF86AudioLowerVolume exec amixer sset Master 5%- | sed -En 's/.*\[([0-9]+)%\].*/\1/p' | head -1 > $WOBSOCK bindsym XF86AudioMute exec amixer sset Master toggle | sed -En '/\[on\]/ s/.*\[([0-9]+)%\].*/\1/ p; /\[off\]/ s/.*/0/p' | head -1 > $WOBSOCK bindsym XF86AudioMicMute exec amixer set Capture toggle # backlight bindsym XF86MonBrightnessDown exec brightnessctl set 5%- | sed -En 's/.*\(([0-9]+)%\).*/\1/p' > $WOBSOCK bindsym XF86MonBrightnessUp exec brightnessctl set +5% | sed -En 's/.*\(([0-9]+)%\).*/\1/p' > $WOBSOCK # Open wdisplays bindsym XF86Display exec --no-startup-id "wdisplays" # Reload the configuration file bindsym $Mod+Shift+c reload # Shortcut to tt gui bindsym $Mod+Shift+Return exec /home/jakob/.local/bin/tt-g # Keyboard layout bindsym $Mod+Shift+Space input "1:1:AT_Translated_Set_2_keyboard" xkb_switch_layout next ########### Workspace Bindings ############### # 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 # switch to workspace - numpad alternatives bindsym $Mod+Mod2+KP_1 workspace number 1 bindsym $Mod+Mod2+KP_2 workspace number 2 bindsym $Mod+Mod2+KP_3 workspace number 3 bindsym $Mod+Mod2+KP_4 workspace number 4 bindsym $Mod+Mod2+KP_5 workspace number 5 bindsym $Mod+Mod2+KP_6 workspace number 6 bindsym $Mod+Mod2+KP_7 workspace number 7 bindsym $Mod+Mod2+KP_8 workspace number 8 bindsym $Mod+Mod2+KP_9 workspace number 9 # switch to next or previous workspace bindsym $Mod+Mod1+Left workspace prev bindsym $Mod+Mod1+Right workspace next # move focused container to workspace bindsym $Mod+Shift+1 move container to workspace number 1; workspace number 1 bindsym $Mod+Shift+2 move container to workspace number 2; workspace number 2 bindsym $Mod+Shift+3 move container to workspace number 3; workspace number 3 bindsym $Mod+Shift+4 move container to workspace number 4; workspace number 4 bindsym $Mod+Shift+5 move container to workspace number 5; workspace number 5 bindsym $Mod+Shift+6 move container to workspace number 6; workspace number 6 bindsym $Mod+Shift+7 move container to workspace number 7; workspace number 7 bindsym $Mod+Shift+8 move container to workspace number 8; workspace number 8 bindsym $Mod+Shift+9 move container to workspace number 9; workspace number 9 # move focused container to workspace - numpad alternatives bindsym $Mod+Shift+Mod2+KP_End move container to workspace number 1; workspace number 1 bindsym $Mod+Shift+Mod2+KP_Down move container to workspace number 2; workspace number 2 bindsym $Mod+Shift+Mod2+KP_Next move container to workspace number 3; workspace number 3 bindsym $Mod+Shift+Mod2+KP_Left move container to workspace number 4; workspace number 4 bindsym $Mod+Shift+Mod2+KP_Begin move container to workspace number 5; workspace number 5 bindsym $Mod+Shift+Mod2+KP_Right move container to workspace number 6; workspace number 7 bindsym $Mod+Shift+Mod2+KP_Home move container to workspace number 7; workspace number 7 bindsym $Mod+Shift+Mod2+KP_Up move container to workspace number 8; workspace number 8 ############ Container/Window control ############ # Scratchpad, Floating bindsym $Mod+space floating toggle floating_modifier $Mod normal bindsym $Mod+Shift+t sticky toggle # 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+z 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+z scratchpad show # change focus bindsym $Mod+$left focus left bindsym $Mod+$down focus down bindsym $Mod+$up focus up bindsym $Mod+$right focus right # alternatively, you can use the cursor keys: 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+$left move left bindsym $Mod+Shift+$down move down bindsym $Mod+Shift+$up move up bindsym $Mod+Shift+$right move right # alternatively, you can use the cursor keys: bindsym $Mod+Shift+Up move up bindsym $Mod+Shift+Down move down bindsym $Mod+Shift+Left move left bindsym $Mod+Shift+Right move right # Resizing containers mode "resize" { 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" # Size # bindsym Mod1+Up resize shrink height 10 px or 1 ppt # bindsym Mod1+Down resize grow height 10 px or 1 ppt # bindsym Mod1+Left resize shrink width 10 px or 1 ppt # bindsym Mod1+Right resize grow width 10 px or 1 ppt # layout toggle bindsym Mod1+Tab layout toggle tabbed stacking split bindsym $Mod+Tab layout toggle splitv splith # switch to workspace with urgent window for_window [urgent="latest"] focus focus_on_window_activation focus # container layout bindsym $Mod+h split h bindsym $Mod+v split v #bindsym $Mod+Shift+t layout tabbed #bindsym $Mod+Shift+s layout stacking #bindsym $Mod+Shift+h layout toggle split default_orientation horizontal # make the current focus fullscreen bindsym $Mod+Shift+f fullscreen ############### Border & Gaps ############### # changing border style bindsym $Mod+b border toggle # change gaps bindsym $Mod+plus gaps inner current plus 5 bindsym $Mod+minus gaps inner current minus 5 bindsym Mod1+plus gaps outer current plus 5 bindsym Mod1+minus gaps outer current minus 5 bindsym $Mod+KP_Add gaps inner current plus 5 bindsym $Mod+KP_Subtract gaps inner current minus 5 bindsym Mod1+KP_Add gaps outer current plus 5 bindsym Mod1+KP_Subtract gaps outer current minus 5 ############ bar settings ############ bar { swaybar_command "waybar" } ############ application settings ############ # focus, floating, & sticky for_window [app_id="(?i)(?:blueman-manager|azote|gnome-disks|Thunar|wdisplays)"] floating enable for_window [app_id="(?i)(?:pavucontrol|nm-connection-editor|gsimplecal|galculator|gnome-calculator|calculator)"] floating enable for_window [app_id="(?i)(?:firefox|chromium)"] border none for_window [title="(?i)(?:copying|deleting|moving)"] floating enable for_window [title="(?i)(?:Cssh|cssh)"] border none floating enable for_window [app_id="(?i)(?:Cssh|cssh)"] floating enable for_window [title="CSSH"] floating enable popup_during_fullscreen smart