This repository has been archived on 2024-03-28. You can view files and clone it, but cannot push or open issues or pull requests.
dotfiles/os/linux/sway/config
Daniel Flanagan 0478f47694
Fix graphical issues from kanshi, other updates and fixes from recent
re-install

Kanshi seemed to have been the root cause of weird graphical glitches
starting sometime earlier this year. Weird flickering green and
occasional drm crashes where I lost sway for minutes at a time and it
would partially recover. Games would stutter very badly intermittently.
It is likely due to refresh rate synchronization somehow, but in my case
it's been simpler to turn it off. I'll maybe look into it again in the
future.
2022-08-09 09:08:11 -05:00

195 lines
6 KiB
Plaintext

# TODO:
#
# + Super+r should rotate the selected group of windows.
# + Super+Control+{1-9} should control the size of the preselect space.
# + Super+Shift+b should balance the size of all selected nodes.
set $mod Mod4
set $default_gap 0
xwayland enable
focus_wrapping no
gaps inner $default_gap
smart_borders on|no_gaps
hide_edge_borders smart_no_gaps
default_border pixel 5
focus_follows_mouse no
mouse_warping none
input type:touchscreen {
events disabled
}
input type:keyboard {
repeat_delay 200
repeat_rate 60
# I have a keyboard that takes care of this on my workstation, so we only enable
# this on laptops
# xkb_options ctrl:nocaps
}
input type:pointer {
accel_profile flat
pointer_accel 0
}
input type:touchpad {
dwt enabled
tap enabled
natural_scroll enabled
middle_emulation enabled
pointer_accel 0.33
}
bindsym $mod+control+space exec makoctl dismiss
# bindsym $mod+shift+space exec makoctl invoke
bindsym $mod+return exec kitty --single-instance
bindsym $mod+shift+return exec floating-term
bindsym $mod+shift+alt+return exec kitty
bindsym $mod+c kill
bindsym $mod+shift+c kill # TODO: kill -9?
bindsym $mod+shift+space exec wofi --show drun
bindsym $mod+space exec wofi --show drun
bindsym $mod+shift+s exec clipshot
bindsym $mod+e exec thunar
bindsym $mod+shift+r reload
bindsym $mod+control+Escape exit
bindsym $mod+shift+e exit
bindsym $mod+shift+p exec pass-chooser
bindsym $mod+control+j split v
bindsym $mod+control+l split h
bindsym $mod+control+f focus mode_toggle
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
bindsym $mod+left focus left
bindsym $mod+down focus down
bindsym $mod+up focus up
bindsym $mod+right focus right
bindsym $mod+shift+h move left
bindsym $mod+shift+j move down
bindsym $mod+shift+k move up
bindsym $mod+shift+l move 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
floating_modifier $mod normal
bindsym $mod+1 workspace 1
bindsym $mod+2 workspace 2
bindsym $mod+3 workspace 3
bindsym $mod+4 workspace 4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10
bindsym $mod+shift+1 move container to workspace 1
bindsym $mod+shift+2 move container to workspace 2
bindsym $mod+shift+3 move container to workspace 3
bindsym $mod+shift+4 move container to workspace 4
bindsym $mod+shift+5 move container to workspace 5
bindsym $mod+shift+6 move container to workspace 6
bindsym $mod+shift+7 move container to workspace 7
bindsym $mod+shift+8 move container to workspace 8
bindsym $mod+shift+9 move container to workspace 9
bindsym $mod+shift+0 move container to workspace 10
bindsym $mod+b splith
bindsym $mod+v splitv
bindsym $mod+shift+f fullscreen
bindsym $mod+f floating toggle
bindsym $mod+s floating disable
bindsym $mod+alt+f focus mode_toggle
bindsym $mod+p focus parent
bindsym $mod+period focus child
bindsym $mod+comma focus child
bindsym $mod+tab workspace back_and_forth
bindsym $mod+minus gaps inner current minus 5
bindsym $mod+plus gaps inner current plus 5
bindsym $mod+control+alt+h gaps horizontal current minus 5
bindsym $mod+control+alt+l gaps horizontal current plus 5
bindsym $mod+control+alt+j gaps vertical current minus 5
bindsym $mod+control+alt+k gaps vertical current plus 5
# TODO: this should also reset the horizontal and vertical gaps?
bindsym $mod+control+equal gaps inner current set $default_gap
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
bindsym XF86MonBrightnessDown exec brightnessctl set 10%-
bindsym XF86MonBrightnessUp exec brightnessctl set +10%
bindsym shift+XF86MonBrightnessDown exec brightnessctl set 1%
bindsym shift+XF86MonBrightnessUp exec brightnessctl set 100%
bindsym control+XF86MonBrightnessDown exec brightnessctl set 1%-
bindsym control+XF86MonBrightnessUp exec brightnessctl set +1%
bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
bindsym $mod+shift+v exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
bindsym $mod+control+shift+l exec swaylock
# TODO: toggle-able swayidle? does the idle thing in waybar handle this?
# TODO: one-time swayidle/monitor-off
# bindsym $mod+Control+Shift+s exec lock-and-disable-monitors
mode "resize" {
bindsym h resize shrink width 10 px or 10 ppt
bindsym j resize grow height 10 px or 10 ppt
bindsym k resize shrink height 10 px or 10 ppt
bindsym l resize grow width 10 px or 10 ppt
bindsym left resize shrink width 10 px or 10 ppt
bindsym down resize grow height 10 px or 10 ppt
bindsym up resize shrink height 10 px or 10 ppt
bindsym right resize grow width 10 px or 10 ppt
bindsym return mode "default"
bindsym escape mode "default"
}
for_window [app_id="floating_terminal"] floating enable
for_window [class="floating_terminal"] floating enable
for_window [app_id="zoom"] border none, floating enable
for_window [title="^zoom$"] border none, floating enable
bindsym $mod+shift+alt+f for_window [class=".*"] floating toggle
for_window [class=".*"] layout floating enable
for_window [class=".*"] layout splith
client.focused #66d9ef #66d9ef #66d9ef #66d9ef #66d9ef
client.focused_inactive #111111 #111111 #ffffff #111111 #111111
client.unfocused #111111 #111111 #ffffff #111111 #111111
bar {
swaybar_command waybar
}
exec mako
# exec gammastep -t 6500:3500 -l 39.0:-94.5
# exec_always 'killall kanshi; kanshi'
# exec /usr/lib/kdeconnectd
# exec sway-init-tmux
# exec $term
# exec_always notify-send -a "sway" -i ~/.wallpaper "sway configuration loaded"
# prevents all windows from stealing focus
no_focus [class=".*"]
output * background $HOME/.wallpaper fill
include /etc/sway/config.d/*
include $XDG_CONFIG_HOME/lytedev-env/*/sway/config