# Variables set $mod Mod4 set $left h set $down j set $up k set $right l set $term kitty --single-instance # set $term foot set $menu fuzzel font pango:Fantasque Sans Mono Bold 14 # Output configuration set $screen1 eDP-1 set $screen2 DP-2 set $res1 res 1440x2560 set $res2 res 1080x1920 set $pos1 pos 0,0 set $pos2 pos 0,1440 set $scale1 scale 1.25 set $scale2 scale 1 set $bg1 bg ~/.dots/pics/panda7.jpg fill set $bg2 bg ~/.dots/pics/panda7.jpg fill output $screen1 $res1 $pos1 $scale1 $bg1 output $screen2 $res2 $pos2 $scale2 $bg2 focus output $screen1 set $lockwall "swaylock -e -F -l -i ~/.dots/pics/panda2.png -s fill" #You can get the names of your outputs by running: swaymsg -t get_outputs # Basics: bindsym $mod+Return exec $term bindsym $mod+Shift+q kill # bindsym $mod+Shift+Return exec $menu bindsym --no-repeat --release Super_L exec pkill $menu || $menu bindsym --no-repeat --release Super_R exec pkill $menu || $menu # floating_modifier normal bindsym $mod+Shift+c reload bindsym $mod+Shift+e exec swaynag -t warning -m 'Exit sway?' -B 'Yes, exit sway' 'swaymsg exit' set $mode_system System (l)ock, (e)xit, (s)leep, (h)ibernate, (r)eboot, (CTRL+s)hutdown mode "$mode_system" { bindsym l exec --no-startup-id $lockwall, mode "default" bindsym e exec --no-startup-id swaymsg exit, mode "default" bindsym s exec --no-startup-id $lockwall, exec systemctl suspend, mode "default" bindsym h exec --no-startup-id $lockwall, exec systemctl hibernate, mode "default" bindsym r exec --no-startup-id systemctl reboot, mode "default" bindsym Ctrl+s exec --no-startup-id systemctl poweroff -i, mode "default" bindsym Return mode "default" bindsym Escape mode "default" } bindsym $mod+BackSpace mode "$mode_system" # Moving around: bindsym $mod+$left focus left bindsym $mod+$down focus down bindsym $mod+$up focus up bindsym $mod+$right focus right bindsym $mod+Shift+$left move left bindsym $mod+Shift+$down move down bindsym $mod+Shift+$up move up bindsym $mod+Shift+$right move right # Screenshot bindsym Print exec slurp | grim -g - screenshot.png | wl-copy # Workspaces: set $ws1 1: Term set $ws2 2: Art set $ws3 3: Code set $ws4 4: Web set $ws5 5: Chat set $ws6 6: Media set $ws7 7: Gayming set $ws8 8: Stream set $ws9 9:ExtraOne set $ws0 10:Extratwo bindsym $mod+1 workspace number $ws1 bindsym $mod+2 workspace number $ws2 bindsym $mod+3 workspace number $ws3 bindsym $mod+4 workspace number $ws4 bindsym $mod+5 workspace number $ws5 bindsym $mod+6 workspace number $ws6 bindsym $mod+7 workspace number $ws7 bindsym $mod+8 workspace number $ws8 bindsym $mod+9 workspace number $ws9 bindsym $mod+0 workspace number $ws10 bindsym $mod+Shift+1 move container to workspace number $ws1 bindsym $mod+Shift+2 move container to workspace number $ws2 bindsym $mod+Shift+3 move container to workspace number $ws3 bindsym $mod+Shift+4 move container to workspace number $ws4 bindsym $mod+Shift+5 move container to workspace number $ws5 bindsym $mod+Shift+6 move container to workspace number $ws6 bindsym $mod+Shift+7 move container to workspace number $ws7 bindsym $mod+Shift+8 move container to workspace number $ws8 bindsym $mod+Shift+9 move container to workspace number $ws9 bindsym $mod+Shift+0 move container to workspace number $ws10 workspace $ws1 output $screen1 workspace $ws2 output $screen2 workspace $ws3 output $screen1 workspace $ws4 output $screen1 workspace $ws5 output $screen1 workspace $ws6 output $screen1 workspace $ws7 output $screen1 workspace $ws8 output $screen1 workspace $ws9 output $screen1 workspace $ws0 output $screen1 workspace_auto_back_and_forth yes focus_on_window_activation focus bindsym $mod+Tab move workspace to output next # Layout stuff: # bindsym $mod+b splith # bindsym $mod+v splitv bindsym $mod+t split toggle bindsym $mod+s layout stacking bindsym $mod+w layout tabbed bindsym $mod+e layout toggle split bindsym $mod+f fullscreen bindsym $mod+Shift+space floating toggle bindsym $mod+space focus mode_toggle bindsym $mod+a focus parent bindsym $mod+i border normal 0 bindsym $mod+y border pixel 4 bindsym $mod+u border none default_orientation auto hide_edge_borders smart # Scratchpad: bindsym $mod+Shift+minus move scratchpad bindsym $mod+minus scratchpad show # Resizing containers: bindsym $mod+Ctrl+$left resize shrink width 10px bindsym $mod+Ctrl+$down resize grow height 10px bindsym $mod+Ctrl+$up resize shrink height 10px bindsym $mod+Ctrl+$right resize grow width 10px # Appereance smart_gaps on gaps inner 8 gaps outer 2 default_border pixel 4 default_floating_border normal set $cw #ffffff set $ur #f44336 set $cg #229c56 set $c0 #14040d set $c1 #704668 set $c2 #f38ba8 set $c3 #c982a9 set $c4 #f9e2af set $c5 #9689f9 set $c6 #f5c2e7 set $c7 #94e2d5 # class border backgr. text indicator child_border client.focused $c6 $c6 $cw $c6 $c6 client.focused_inactive $c5 $c5 $cw $c5 $c5 client.unfocused $c3 $c3 $cw $c3 $c3 client.urgent $ur $ur $ur $ur $ur client.placeholder $c2 $c2 $c3 $c2 $c2 client.background $c0 # Status Bar: bar { status_command ~/.dots/.config/sway/bar.sh position top height 28 strip_workspace_numbers yes colors { statusline #ffffff background $c0 #class bg border text inactive_workspace $c5 $c5 #ffffff focused_workspace $c2 $c2 #ffffff } } # App Settings set $music exec kitty --single-instance --name Music --class Music ncmpcpp set $btm exec kitty --single-instance --name SysMo --class SYsMo btm set $ranger exec kitty --single-instance --name Ranger --class Ranger ranger # Application Launcher set $mode_launcher Launch: krit[a] [e]macs [t]elegram [d]iscord [s]team [o]bs [b]lender [q]utebrowser [m]pd [l]utris qbi[T]orrent [g]odot ardo[u]r [O}penToonz [i]nkscape bindsym $mod+o mode "$mode_launcher" mode "$mode_launcher" { bindsym a exec krita, mode "default" bindsym e exec emacs, mode "default" bindsym t exec "flatpak run org.telegram.desktop", mode "default" bindsym d exec "flatpak run com.discordapp.Discord", mode "default" bindsym f exec "flatpak run org.mozilla.firefox", mode "default" bindsym q exec "flatpak run org.qbittorrent.qBittorrent", mode "default" bindsym g exec "flatpak run org.godotengine.Godot, mode "default" bindsym l exec "flatpak run net.lutris.Lutris", mode "default" bindsym s exec "flatpak run com.valvesoftware.Steam", mode "default" bindsym o exec "flatpak run com.obsproject.Studio", mode "default" bindsym u exec "flatpak run org.ardour.Ardour", mode "default" bindsym b exec "flatpak run org.blender.Blender", mode "default" bindsym m exec $music; mode "default" #bindsym v exec $veado, mode "default" bindsym i exec "flatpak run org.inkscape.Inkscape", mode "default" bindsym Escape mode "default" bindsym Return mode "default" } # windows with floating mode by default for_window [app_id="pentablet"] floating enable for_window [app_id="OpenTabletDriver.UX.Gtk"] floating enable for_window [app_id="Gnome-screenshot"] floating enable for_window [app_id="spectacle"] floating enable for_window [app_id="Arandr"] floating enable for_window [app_id="Lxappearance"] floating enable for_window [app_id="gnome-menu-editor-qt"] floating enable for_window [app_id="Pavucontrol"] floating enable for_window [app_id="ProtonUp-Qt"] floating enable for_window [app_id="System-config-printer.py"] floating enable for_window [app_id="GitHub.UI"] floating enable for_window [app_id="Bitwarden"] floating enable # fullscreen by default for_window [app_id="mpv"] fullscreen enable for_window [app_id="Vimiv-qt"] fullscreen enable # border settings for different windows for_window [app_id="krita"] border none for_window [app_id="Emacs"] border none for_window [app_id="Blender"] border none for_window [app_id="qutebrowser"] border none for_window [app_id="Inkscape"] border none for_window [app_id="obs"] border none for_window [app_id="Ardour"] border none for_window [app_id="OpenToonz"] border none for_window [app_id="Discord"] border none for_window [app_id="Music"] border none for_window [app_id="steamwebhelper"] border none # workspace layout for different apps for_window [app_id="obs"] layout tabbed for_window [app_id="veadotube_mini"] layout tabbed for_window [app_id="krita"] layout tabbed for_window [app_id="Blender"] layout tabbed for_window [app_id="Inkscape"] layout tabbed for_window [app_id="Emacs"] layout tabbed for_window [app_id="Godot"] layout tabbed for_window [app_id="qutebrowser"] layout tabbed # move specific apps to specific workspaces assign [app_id="pentablet"] workspace $ws1 assign [app_id="OpenTabletDriver.UX.Gtk"] workspace $ws1 assign [app_id="Lxappearance"] workspace $ws1 assign [app_id="krita"] workspace $ws2 assign [app_id="Inkscape"] workspace $ws2 assign [app_id="Blender"] workspace $ws2 assign [app_id="Ardour"] workspace $ws2 assign [app_id="Emacs"] workspace $ws3 assign [app_id="pico8"] workspace $ws3 assign [app_id="Godot"] workspace $ws3 assign [app_id="firefox"] workspace $ws4 assign [app_id="qBittorrent"] workspace $ws4 assign [app_id="Telegram"] workspace $ws5 assign [app_id="discord"] workspace $ws5 assign [app_id="Vesktop"] workspace $ws5 assign [app_id="Music"] workspace $ws6 assign [app_id="calibre"] workspace $ws6 assign [app_id="Zathura"] workspace $ws6 assign [app_id="Lutris"] workspace $ws7 assign [app_id="Steam"] workspace $ws7 assign [app_id="steamwebhelper"] workspace $ws7 assign [app_id="heroic"] workspace $ws7 assign [app_id="ProtonUp-Qt"] workspace $ws7 assign [app_id="PrismLauncher"] workspace $ws7 assign [app_id="dolphin-emu"] workspace $ws7 assign [app_id="obs"] workspace $ws8 assign [app_id="veadotube_mini"] workspace $ws8 # Autostart exec_always --no-startup-id dunst # exec_always --no-startup-id nm-applet # exec_always --no-startup-id autotiling # Idle configuration #Locks screen after 300s, turns off display after another 300s, turns screens back on when resumed. Locks screen before computer sleeps. exec swayidle -w \ timeout 300 $lockwall \ timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \ timeout 601 'systemctl suspend' \ before-sleep $lockwall exec swayidle -w \ timeout 900 'systemctl suspend' \ before-sleep $lockwall # Input configuration input "1739:52759:SYNA32A5:00_06CB:CE17_Touchpad" { dwt enabled tap enabled natural_scroll enabled middle_emulation 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. # Media Keys bindsym XF86AudioRaiseVolume exec pamixer -u -i 5 bindsym XF86AudioLowerVolume exec pamixer -d 5 bindsym XF86AudioMute exec pamixer -t bindsym XF86MonBrightnessUp exec brightnessctl s +5% bindsym XF86MonBrightnessDown exec brightnessctl s 5%- bindsym XF86AudioPlay exec playerctl play-pause bindsym XF86AudioNext exec playerctl next bindsym XF86AudioPrev exec playerctl previous include /etc/sway/config.d/*