# set ########################################################################## # keys set $mod mod4 set $left h set $down j set $up k set $right l # colors set $black #000000 set $white #e2e2e2 set $blue #856cff set $magenta #ff1170 set $red #fa3500 set $orange #d06600 set $green #009843 # workspaces set $wsq 0:q:cmd set $wsw 1:w:www set $wse 2:e:txt set $wsr 3:r:doc set $wst 4:t:cmd set $wsy 5:y:cmd set $wsu 6:u:cmd set $wsi 7:i:cmd set $wso 8:o:cmd set $wsp 9:p:rdp # modes set $session_mode "session: (r)eload (l)ock (q)uit (s)uspend (h)ibernate re(b)oot (p)oweroff" set $layout_mode "layout: split(h) split(v) (s)tacking (t)abbed" # commands set $swaylock swaylock -f \ --color=$black \ --indicator-radius 1200 \ --inside-color=$blue \ --inside-clear-color=$green \ --inside-caps-lock-color=$orange \ --inside-ver-color=$magenta \ --inside-wrong-color=$red \ --text-color=#00000000 \ --text-clear-color=#00000000 \ --text-ver-color=#00000000 \ --text-wrong-color=#00000000 # bar ########################################################################## bar { separator_symbol " | " status_command status.sh strip_workspace_numbers yes wrap_scroll yes colors { background $black statusline $blue separator $blue # border background text focused_workspace $black $black $magenta active_workspace $black $black $white inactive_workspace $black $black $blue urgent_workspace $black $black $red } } # workspace_layout ############################################################# workspace_layout tabbed # xwayland ##################################################################### # xwayland disable # bindsym ###################################################################### # floating bindsym $mod+shift+f floating toggle # focus bindsym { $mod+$up focus up $mod+$down focus down $mod+$left focus left $mod+$right focus right $mod+a focus parent $mod+s focus child $mod+g focus mode_toggle } # fullscreen bindsym $mod+f fullscreen toggle # mode bindsym { $mod+d mode $layout_mode, fullscreen disable $mod+escape mode $session_mode, fullscreen disable } # move bindsym --to-code { $mod+shift+$up move up $mod+shift+$down move down $mod+shift+$left move left $mod+shift+$right move right $mod+shift+tab move workspace back_and_forth, workspace back_and_forth $mod+shift+q move workspace $wsq, workspace $wsq $mod+shift+w move workspace $wsw, workspace $wsw $mod+shift+e move workspace $wse, workspace $wse $mod+shift+r move workspace $wsr, workspace $wsr $mod+shift+t move workspace $wst, workspace $wst $mod+shift+y move workspace $wsy, workspace $wsy $mod+shift+u move workspace $wsu, workspace $wsu $mod+shift+i move workspace $wsi, workspace $wsi $mod+shift+o move workspace $wso, workspace $wso $mod+shift+p move workspace $wsp, workspace $wsp $mod+shift+bracketleft move workspace prev, workspace prev $mod+shift+bracketright move workspace next, workspace next $mod+colon move scratchpad } # scratchpad bindsym $mod+semicolon scratchpad show # sticky bindsym $mod+shift+g sticky toggle # exec bindsym --to-code { $mod+return exec footclient $mod+shift+return exec foot $mod+space exec fuzzel $mod+slash exec xdg-open "$(find * -type f | fuzzel -dp'open > ')" $mod+home exec footclient nmtui connect $mod+shift+home exec footclient nmtui $mod+end exec devmon -c $mod+n exec makoctl dismiss $mod+shift+n exec makoctl restore print exec grim - | wl-copy } # exec (laptop) bindsym { XF86AudioRaiseVolume exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%+, exec notify-send -e -t 2000 -h string:x-canonical-private-synchronous:audio "$(wpctl get-volume @DEFAULT_AUDIO_SINK@)" XF86AudioLowerVolume exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%-, exec notify-send -e -t 2000 -h string:x-canonical-private-synchronous:audio "$(wpctl get-volume @DEFAULT_AUDIO_SINK@)" XF86AudioMute exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle, exec notify-send -e -t 2000 -h string:x-canonical-private-synchronous:audio "$(wpctl get-volume @DEFAULT_AUDIO_SINK@)" XF86AudioMicMute exec wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle, exec notify-send -e -t 2000 -h string:x-canonical-private-synchronous:audio "$(wpctl get-volume @DEFAULT_AUDIO_SOURCE@)" XF86MonBrightnessUp exec brightnessctl set "+1%", exec notify-send -e -t 2000 -h string:x-canonical-private-synchronous:brightness "Brightness: $(brightnessctl get)" XF86MonBrightnessDown exec brightnessctl set "1%-", exec notify-send -e -t 2000 -h string:x-canonical-private-synchronous:brightness "Brightness: $(brightnessctl get)" shift+XF86MonBrightnessUp exec brightnessctl set "+10%", exec notify-send -e -t 2000 -h string:x-canonical-private-synchronous:brightness "Brightness: $(brightnessctl get)" shift+XF86MonBrightnessDown exec brightnessctl set "10%-", exec notify-send -e -t 2000 -h string:x-canonical-private-synchronous:brightness "Brightness: $(brightnessctl get)" } # resize bindsym { $mod+control+$left resize shrink width $mod+control+$down resize grow height $mod+control+$up resize shrink height $mod+control+$right resize grow width } # workspace bindsym --to-code { $mod+tab workspace back_and_forth $mod+q workspace $wsq $mod+w workspace $wsw $mod+e workspace $wse $mod+r workspace $wsr $mod+t workspace $wst $mod+y workspace $wsy $mod+u workspace $wsu $mod+i workspace $wsi $mod+o workspace $wso $mod+p workspace $wsp $mod+bracketleft workspace prev $mod+bracketright workspace next } # client.* ##################################################################### # class border background text indicator child_border client.focused $magenta $magenta $black $red $black client.focused_inactive $blue $blue $black $black $black client.unfocused $blue $blue $black $black $black client.urgent $red $red $black $black $black # default_border ############################################################### default_border normal 0 # default_floating_border ###################################################### default_floating_border normal 0 # exec ######################################################################### exec { # systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK # dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK swayidle -w \ timeout 300 'brightnessctl -s set 1%' resume 'brightnessctl -r' \ timeout 600 '$swaylock' \ timeout 900 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \ timeout 1800 'systemctl suspend-then-hibernate' \ before-sleep '$swaylock' wlsunset -l 45 -L 15 mako devmon \ --exec-on-drive "notify-send 'Mounted %f at %d'" \ --exec-on-unmount "notify-send 'Unmounted %s'" foot -s } # focus_wrapping ############################################################### focus_wrapping yes # font ######################################################################### font monospace 13 # input ######################################################################## # keyboard input "type:keyboard" { xkb_layout us,si xkb_options caps:escape,grp:alt_shift_toggle repeat_delay 200 repeat_rate 30 } # touchpad input "type:touchpad" { tap enabled } # mode ######################################################################### # session mode $session_mode { bindsym { r reload, mode default l exec $swaylock, mode default q exit, mode default s exec systemctl suspend, mode default h exec systemctl hibernate, mode default b exec systemctl reboot, mode default p exec systemctl poweroff, mode default escape mode default } } # layout mode $layout_mode { bindsym { h layout splith, mode default v layout splitv, mode default s layout stacking, mode default t layout tabbed, mode default escape mode default } } # seat ######################################################################### seat * hide_cursor 1000 # output ####################################################################### output * background $black solid_color