# # SWAY # # Requirements # foot swaybg wmenu waybar firefox thunar # Environment Fixes #exec export SWAYSOCK="$(ls /run/user/1000/sway-ipc.* | head -n 1)" exec dbus-update-activation-environment WAYLAND_DISPLAY DISPLAY XDG_CURRENT_DESKTOP=sway SWAYSOCK I3SOCK XCURSOR_SIZE XCURSOR_THEME # Variables set $mod Mod4 set $up j set $down k set $left l set $right semicolon set $menu wmenu-run -b -p "Run:" \ -f "Hack Nerd Font 16" \ -M 00ffff -m 000000 \ -N 000000 -n aaaaaa \ -S 00ffff -s 000000 set $filebrowser thunar set $term foot set $igap 40 set $ogap 40 set $focuscol "#aaaaaa" set $inactcol "#444444" # Commands set $exit swaynag -t warning -m 'Exit Sway?' -B 'Exit Sway' 'swaymsg exit' set $audio_play exec playerctl play-pause set $audio_next exec playerctl next set $audio_prev exec playerctl previous set $volup exec wpctl set-volume --limit 1.0 @DEFAULT_SINK@ 5%+ set $voldown exec wpctl set-volume @DEFAULT_SINK@ 5%- set $mute exec wpctl set-mute @DEFAULT_SINK@ toggle set $mutemic exec wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle # Wallpaper exec_always [ -f ~/.cache/wallpaper ] \ || cp /usr/share/backgrounds/sway/*_1920x1080.png ~/.cache/wallpaper exec_always [ -f ~/.cache/lockwallpaper ] \ || cp ~/.cache/wallpaper ~/.cache/lockwallpaper # Output output * bg ~/.cache/wallpaper fill #123456 # Monitor 1 output 'Microstep MAG274QRF-QD CA8A391600566' { resolution 3840x2160@60Hz scale 2 position 0 0 } # Monitor 2 output 'Samsung Electric Company SyncMaster H9XB215463' { resolution 1920x1200@59.950Hz transform 270 scale 1 # position must be x/2 and y/2 of monitor 1 position 1920 0 } # Default workspace workspace 1 output 'Microstep MAG274QRF-QD CA8A391600566' workspace 0 output 'Samsung Electric Company SyncMaster H9XB215463' # Input seat * hide_cursor when-typing enable seat * xcursor_theme Adwaita 30 input type:touchpad { dwt enable tap enable natural_scroll disable middle_emulation enable } input type:keyboard { xkb_layout gb xkb_options caps:ctrl_modifier } # Gaps gaps inner $igap gaps outer $ogap gaps horizontal 60 gaps vertical 60 # Borders smart_borders off default_border pixel 4 client.focused $focuscol $focuscol #000000 $focuscol client.unfocused $inactcol $inactcol #000000 $inactcol client.focused_inactive $inactcol $inactcol #000000 $inactcol # Move windows with mouse tiling_drag enable floating_modifier $mod normal # Waybar bindsym $mod+b exec pkill -10 waybar # Actions bindsym $mod+q kill bindsym $mod+r reload bindsym $mod+Escape exit bindsym $mod+Return exec $term bindsym $mod+Space exec $menu bindsym $mod+Shift+e exec $exit bindsym $mod+i exec $term vim bindsym $mod+n exec makoctl dismiss bindsym $mod+u exec swayimg -g ~/images/wallpaper bindsym $mod+d exec swaymsg 'output "*" power toggle' bindsym $mod+e exec $filebrowser # Layout bindsym $mod+h splith bindsym $mod+v splitv bindsym $mod+equal layout toggle stacking split bindsym $mod+t layout toggle tabbed split bindsym $mod+s layout toggle split bindsym $mod+f fullscreen bindsym $mod+m \ gaps inner current toggle $igap, \ gaps outer current toggle $ogap bindsym $mod+Tab floating toggle bindsym $mod+Control+Tab focus mode_toggle bindsym $mod+y sticky toggle bindsym $mod+Shift+Grave move scratchpad bindsym $mod+Grave scratchpad show # Gaps bindsym $mod+g gaps inner current toggle $igap, gaps outer current toggle $ogap bindsym $mod+Ctrl+g gaps inner current plus 10, gaps outer current plus 10 bindsym $mod+Shift+g gaps inner current minus 10, gaps outer current minus 10 bindsym $mod+Shift+Ctrl+g gaps inner all set $igap, gaps outer all set $ogap # Inner gaps bindsym $mod+Ctrl+i gaps inner current plus 10, gaps vertical current plus 10 bindsym $mod+Shift+i gaps inner current minus 10, gaps vertical current minus 10 bindsym $mod+Shift+Ctrl+i gaps inner all set $igap # Outer gaps bindsym $mod+Ctrl+o gaps outer current plus 10, gaps vertical current plus 10 bindsym $mod+Shift+o gaps outer current minus 10, gaps vertical current minus 10 bindsym $mod+Shift+Ctrl+o gaps outer all set $ogap # Focus bindsym $mod+$up focus up bindsym $mod+$down focus down bindsym $mod+$left focus left bindsym $mod+$right focus right bindsym $mod+a focus parent bindsym $mod+Ctrl+a focus child # Move window bindsym $mod+Shift+$up move up 20px bindsym $mod+Shift+$down move down 20px bindsym $mod+Shift+$left move left 20px bindsym $mod+Shift+$right move right 20px # Resize window bindsym $mod+Shift+Equal resize grow height 20px bindsym $mod+Shift+Minus resize shrink height 20px bindsym $mod+Control+Minus resize shrink width 20px bindsym $mod+Control+Equal resize grow width 20px bindsym $mod+z mode "resize" mode "resize" { bindsym $up resize grow height 10px bindsym $down resize shrink height 10px bindsym $left resize shrink width 10px bindsym $right resize grow width 10px bindsym Return mode "default" bindsym Escape mode "default" } # 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 0 # Move window 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 0 # Function bindsym --locked XF86AudioRaiseVolume $volup bindsym --locked XF86AudioLowerVolume $voldown bindsym --locked XF86AudioMute $mute bindsym --locked XF86AudioMicMute $mutemic bindsym --locked XF86AudioPlay $audio_play bindsym --locked XF86AudioNext $audio_next bindsym --locked XF86AudioPrev $audio_prev #bindsym --locked XF86MonBrightnessUp exec brightnessctl -s set +10% #bindsym --locked XF86MonBrightnessDown exec brightnessctl -s -n10 set 10%- # Window Rules # Float all, manually disable floating for windows #for_window [title="."] floating enable #for_window [app_id="$term"] floating disable #for_window [app_id="firefox|librewolf"] floating disable for_window [app_id="thunar"] floating enable, resize 880px 600px for_window [title="Save Image"] floating enable for_window [title="wiremix"] floating enable for_window [title="iwd"] floating enable for_window [title="calendar"] floating enable # Picture-in-picture window for_window [title="Picture-in-Picture"] \ floating enable, \ sticky enable, \ move position 1470 750, \ border none # Don't lock the screen if program is running in fullscreen for_window [app_id="^.*"] inhibit_idle fullscreen # Start-up apps assign [app_id=$term title="btop|log"] "0" exec $term -Tbtop btop exec $term -Tlog tail -f /var/log/messages # Services exec ~/.config/sway/services