dots/.config/sway/config
2025-01-27 14:29:24 -08:00

306 lines
12 KiB
Text

# 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/*