diff options
| author | Leonardo Bishop <me@leonardobishop.com> | 2024-12-25 14:26:51 +0000 |
|---|---|---|
| committer | Leonardo Bishop <me@leonardobishop.com> | 2024-12-25 14:26:51 +0000 |
| commit | dc41873a79b32ed3d34dd7dac09c081f7472d207 (patch) | |
| tree | ba3c80c8d137263a8f346cf32853d15f75094fab /sway | |
| parent | f4c682dc6bdeebe9f0c6a20deb7092cf893791a1 (diff) | |
Change most things to symlinks instead of hardlinks
Diffstat (limited to 'sway')
| -rw-r--r-- | sway/.install.yml | 18 | ||||
| -rw-r--r-- | sway/conf.d/00-theme-vars.conf | 15 | ||||
| -rw-r--r-- | sway/conf.d/01-system-vars.conf | 12 | ||||
| -rw-r--r-- | sway/conf.d/10-environment.conf | 5 | ||||
| -rw-r--r-- | sway/conf.d/20-binds.conf | 154 | ||||
| -rw-r--r-- | sway/conf.d/21-rules.conf | 25 | ||||
| -rw-r--r-- | sway/conf.d/22-theme.conf | 19 | ||||
| -rw-r--r-- | sway/config | 225 |
8 files changed, 243 insertions, 230 deletions
diff --git a/sway/.install.yml b/sway/.install.yml index 6924383..7a8f3f9 100644 --- a/sway/.install.yml +++ b/sway/.install.yml @@ -3,20 +3,20 @@ steps: - !Link from: "config" to: "~/.config/sway/config" - recursive: false - !Link - from: "scripts/exit-menu.sh" - to: "~/.config/sway/scripts/exit-menu.sh" - recursive: false + from: "conf.d" + to: "~/.config/sway/conf.d" + symbolic: true - !Copy from: "wallpaper.jpg" to: "~/.config/sway/wallpaper.jpg" recursive: false - !Copy - from: "input.cfg" - to: "~/.config/sway/input.cfg" + from: "input.conf" + to: "~/.config/sway/input.conf" recursive: false - !Copy - from: "output.cfg" - to: "~/.config/sway/output.cfg" - recursive: false
\ No newline at end of file + from: "output.conf" + to: "~/.config/sway/output.conf" + recursive: false + diff --git a/sway/conf.d/00-theme-vars.conf b/sway/conf.d/00-theme-vars.conf new file mode 100644 index 0000000..c8139fa --- /dev/null +++ b/sway/conf.d/00-theme-vars.conf @@ -0,0 +1,15 @@ +set $mod Mod4 +set $left h +set $down j +set $up k +set $right l +set $term kitty +set $menu wofi + +# Colours +set $cl_high #434e59 +set $cl_indi #d9d8d8 +set $cl_back #22282e +set $cl_fore #ffffff +set $cl_urge #eb4d4b + diff --git a/sway/conf.d/01-system-vars.conf b/sway/conf.d/01-system-vars.conf new file mode 100644 index 0000000..f93a6ac --- /dev/null +++ b/sway/conf.d/01-system-vars.conf @@ -0,0 +1,12 @@ +set $screenshot_area /usr/bin/grimshot --notify save area - | swappy -f - +set $screenshot_area_clipboard /usr/bin/grimshot --notify copy area +set $screenshot_screen /usr/bin/grimshot --notify save screen - | swappy -f - +set $screenshot_screen_clipboard /usr/bin/grimshot --notify copy screen + +set $sink_volume pactl get-sink-volume @DEFAULT_SINK@ | grep '^Volume:' | cut -d / -f 2 | tr -d ' ' | sed 's/%//' +set $sink_volume_mute pactl get-sink-mute @DEFAULT_SINK@ | sed -En "/no/ s/.*/$($sink_volume)/p; /yes/ s/.*/0/p" + +# Brightness +set $brightness brightnessctl | grep 'Current brightness:' | cut -d "(" -f 2 | cut -d "%" -f 1 + +set $wob_socket $XDG_RUNTIME_DIR/wob.sock diff --git a/sway/conf.d/10-environment.conf b/sway/conf.d/10-environment.conf new file mode 100644 index 0000000..3c97e57 --- /dev/null +++ b/sway/conf.d/10-environment.conf @@ -0,0 +1,5 @@ +exec "systemctl --user import-environment {,WAYLAND_}DISPLAY SWAYSOCK; systemctl --user start sway-session.target" +exec swaymsg -t subscribe '["shutdown"]' && systemctl --user stop sway-session.target + +exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway +#exec --no-startup-id /usr/lib/polkit-kde-authentication-agent-1 diff --git a/sway/conf.d/20-binds.conf b/sway/conf.d/20-binds.conf new file mode 100644 index 0000000..02f032e --- /dev/null +++ b/sway/conf.d/20-binds.conf @@ -0,0 +1,154 @@ +bindsym $mod+Return exec $term +bindsym $mod+Shift+Return exec $term --class="termfloat" +bindsym $mod+d exec pgrep -x wofi >/dev/null 2>&1 && killall wofi || $menu +bindsym $mod+Shift+c reload +bindsym $mod+Shift+e exec ~/bin/exit-menu-sway.sh + +# Politely quit +bindsym $mod+q kill +# Rudely kill +bindsym $mod+Shift+q exec swaymsg -t get_tree | \ + jq '.. | select(.type?) | select(.focused==true).pid' | \ + xargs -L 1 kill -9 + +floating_modifier $mod normal + +# Move around +bindsym $mod+$left focus left +bindsym $mod+$down focus down +bindsym $mod+$up focus up +bindsym $mod+$right focus right +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# Move the focused window +bindsym $mod+Shift+$left move left +bindsym $mod+Shift+$down move down +bindsym $mod+Shift+$up move up +bindsym $mod+Shift+$right 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 + +# Move to workspaces +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 10 + +# Move focused container 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 10 + +# Move workspaces +bindsym $mod+Control+Right move workspace to output right +bindsym $mod+Control+Left move workspace to output left +bindsym $mod+Control+Down move workspace to output down +bindsym $mod+Control+Up move workspace to output up +bindsym $mod+Control+l move workspace to output right +bindsym $mod+Control+h move workspace to output left +bindsym $mod+Control+j move workspace to output down +bindsym $mod+Control+k move workspace to output up + +# Layout +bindsym $mod+b splith +bindsym $mod+v splitv + +# Layout styles +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + +# Fullscreen +bindsym $mod+f fullscreen + +# Toggle to floating windows +bindsym $mod+space focus mode_toggle + +# Toggle current window as floating +bindsym $mod+Shift+space floating toggle + +# Move focus to the parent container +bindsym $mod+a focus parent + +# Scratchpad +bindsym $mod+Shift+minus move scratchpad +bindsym $mod+minus scratchpad show + +# Screenshot +bindsym Print exec $screenshot_area +bindsym Print+Alt exec $screenshot_area_clipboard +bindsym Print+Shift exec $screenshot_screen +bindsym Print+Shift+Alt exec $screenshot_screen_clipboard + +# Audio +# bindsym $mod+bracketleft exec pactl set-sink-volume @DEFAULT_SINK@ -5% +# bindsym $mod+bracketright exec pactl set-sink-volume @DEFAULT_SINK@ +5% +bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle && $sink_volume_mute > $wob_socket +bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5% && $sink_volume > $wob_socket +bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5% && $sink_volume > $wob_socket + +# Playback +# bindsym XF86AudioPrev exec playerctl --player=spotify,%any previous +# bindsym XF86AudioNext exec playerctl --player=spotify,%any next +# bindsym XF86AudioPlay exec playerctl --player=spotify,%any play-pause +# gross workaround +bindsym XF86AudioPrev exec notify-send "$(playerctl --player=spotify,%any previous)" +bindsym XF86AudioNext exec notify-send "$(playerctl --player=spotify,%any next)" +bindsym XF86AudioPlay exec notify-send "$(playerctl --player=spotify,%any play-pause)" + +# Brightness +bindsym XF86MonBrightnessDown exec brightnessctl set 5- && $brightness > $wob_socket +bindsym XF86MonBrightnessUp exec brightnessctl set +5 && $brightness > $wob_socket + +mode "resize" { + bindsym $left resize shrink width 10px + bindsym $down resize grow height 10px + bindsym $up resize shrink height 10px + bindsym $right resize grow width 10px + + bindsym Left resize shrink width 10px + bindsym Down resize grow height 10px + bindsym Up resize shrink height 10px + bindsym Right resize grow width 10px + + bindsym Return mode "default" + bindsym Escape mode "default" + bindsym $mod+r mode "default" +} +bindsym $mod+r mode "resize" + +mode "present" { + # command starts mirroring + bindsym m mode "default"; exec wl-present mirror + # these commands modify an already running mirroring window + bindsym o mode "default"; exec wl-present set-output + bindsym r mode "default"; exec wl-present set-region + bindsym Shift+r mode "default"; exec wl-present unset-region + bindsym s mode "default"; exec wl-present set-scaling + bindsym f mode "default"; exec wl-present toggle-freeze + bindsym c mode "default"; exec wl-present custom + + # return to default mode + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+p mode "present" + diff --git a/sway/conf.d/21-rules.conf b/sway/conf.d/21-rules.conf new file mode 100644 index 0000000..93feec7 --- /dev/null +++ b/sway/conf.d/21-rules.conf @@ -0,0 +1,25 @@ +for_window [app_id="termfloat"] floating enable +for_window [app_id="termfloat"] resize set height 500 +for_window [app_id="termfloat"] resize set width 900 + +for_window [window_role="pop-up"] floating enable +for_window [window_role="Pop-up"] floating enable +for_window [window_role="bubble"] floating enable +for_window [window_role="Bubble"] floating enable +for_window [window_role="dialog"] floating enable +for_window [window_role="Dialog"] floating enable +for_window [window_type="dialog"] floating enable +for_window [window_type="Dialog"] floating enable +for_window [class="dialog"] floating enable +for_window [class="Dialog"] floating enable +for_window [window_role="task_dialog"] floating enable +for_window [window_type="menu"] floating enable +for_window [window_role="About"] floating enable + +for_window [app_id="(?i)Thunderbird" title=".*Reminder"] floating enable + +for_window [app_id="Zoom Workplace" title="^zoom$"] border none, floating enable +for_window [app_id="Zoom Workplace" title="^(Zoom|About)$"] border pixel, floating enable + +for_window [app_id=".*"] border normal +for_window [app_id="^chrome-.*-.*$"] shortcuts_inhibitor disable diff --git a/sway/conf.d/22-theme.conf b/sway/conf.d/22-theme.conf new file mode 100644 index 0000000..ec55641 --- /dev/null +++ b/sway/conf.d/22-theme.conf @@ -0,0 +1,19 @@ +font pango:Iosevka SS08 10 + +titlebar_padding 4 + +gaps inner 0 + +client.focused $cl_high $cl_high $cl_fore $cl_indi $cl_high +client.focused_tab_title $cl_high $cl_high $cl_fore $cl_indi $cl_high +client.focused_inactive $cl_back $cl_back $cl_fore $cl_back $cl_back +client.unfocused $cl_back $cl_back $cl_fore $cl_back $cl_back +client.urgent $cl_urge $cl_urge $cl_fore $cl_urge $cl_urge + +output * background ~/.config/sway/wallpaper.jpg fill + +default_border normal 3 + +hide_edge_borders smart + +default_floating_border normal 3 diff --git a/sway/config b/sway/config index 2789e75..a1b2735 100644 --- a/sway/config +++ b/sway/config @@ -1,223 +1,6 @@ -############# -# Varaibles # -############# +include /etc/sway/config.d/* +include conf.d/*.conf -set $mod Mod4 -set $left h -set $down j -set $up k -set $right l -set $term alacritty -set $menu wofi +include input.conf +include output.conf -# Colours -set $cl_high #434e59 -set $cl_indi #d9d8d8 -set $cl_back #22282e -set $cl_fore #ffffff -set $cl_urge #ee2e24 - -############# -# Display # -############# - -font pango:Iosevka Nerd Font 10 - -titlebar_padding 4 - -gaps inner 15 - -client.focused $cl_high $cl_high $cl_fore $cl_indi $cl_high -client.focused_inactive $cl_back $cl_back $cl_fore $cl_back $cl_back -client.unfocused $cl_back $cl_back $cl_fore $cl_back $cl_back -client.urgent $cl_urge $cl_urge $cl_fore $cl_urge $cl_urge - -output * background ~/.config/sway/wallpaper.jpg fill - -include output.cfg - -############ -# Inputs # -############ - -include input.cfg - -############## -# Workspaces # -############## - -# Bind to specific outputs -workspace 1 output $monitor1 # terminal -workspace 2 output $monitor1 # firefox -workspace 3 output $monitor2 # discord -workspace 4 output $monitor2 # spotify -workspace 5 output $monitor1 # thunderbird - -############# -# Windows # -############# - -for_window [app_id="termfloat"] floating enable -for_window [app_id="termfloat"] resize set height 500 -for_window [app_id="termfloat"] resize set width 900 - -default_border normal 3 - -default_floating_border normal 3 - -############## -# Keybinds # -############## - -bindsym $mod+Return exec $term -bindsym $mod+Shift+Return exec $term --class="termfloat" -bindsym $mod+d exec pgrep -x wofi >/dev/null 2>&1 && killall wofi || $menu -bindsym $mod+Shift+c reload -bindsym $mod+Shift+e exec ~/.config/sway/scripts/exit-menu.sh - -# Politely quit -bindsym $mod+q kill -# Rudely kill -bindsym $mod+Shift+q exec swaymsg -t get_tree | \ - jq '.. | select(.type?) | select(.focused==true).pid' | \ - xargs -L 1 kill -9 - -floating_modifier $mod normal - -# Move around -bindsym $mod+$left focus left -bindsym $mod+$down focus down -bindsym $mod+$up focus up -bindsym $mod+$right focus right -bindsym $mod+Left focus left -bindsym $mod+Down focus down -bindsym $mod+Up focus up -bindsym $mod+Right focus right - -# Move the focused window -bindsym $mod+Shift+$left move left -bindsym $mod+Shift+$down move down -bindsym $mod+Shift+$up move up -bindsym $mod+Shift+$right 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 - -# Move to workspaces -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 10 - -# Move focused container 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 10 - -# Layout -bindsym $mod+b splith -bindsym $mod+v splitv - -# Layout styles -bindsym $mod+s layout stacking -bindsym $mod+w layout tabbed -bindsym $mod+e layout toggle split - -# Fullscreen -bindsym $mod+f fullscreen - -# Toggle to floating windows -bindsym $mod+space focus mode_toggle - -# Toggle current window as floating -bindsym $mod+Shift+space floating toggle - -# Move focus to the parent container -bindsym $mod+a focus parent - -# Scratchpad -bindsym $mod+Shift+minus move scratchpad -bindsym $mod+minus scratchpad show - -# Screenshot -bindsym Print exec /usr/share/sway/scripts/grimshot copy area -bindsym Print+Control exec /usr/share/sway/scripts/grimshot --notify save area -bindsym $mod+Shift+equal exec /usr/share/sway/scripts/grimshot --notify copy area -bindsym $mod+Control+equal exec /usr/share/sway/scripts/grimshot --notify save area - -# Audio -bindsym $mod+bracketleft exec pactl set-sink-volume @DEFAULT_SINK@ -5% -bindsym $mod+bracketright exec pactl set-sink-volume @DEFAULT_SINK@ +5% -bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle -bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5% -bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5% - -# Playback -bindsym XF86AudioPrev exec playerctl previous -bindsym XF86AudioNext exec playerctl next -bindsym XF86AudioPlay exec playerctl play-pause - -# Brightness -bindsym XF86MonBrightnessDown exec brightnessctl set 5- -bindsym XF86MonBrightnessUp exec brightnessctl set +5 - -mode "resize" { - bindsym $left resize shrink width 10px - bindsym $down resize grow height 10px - bindsym $up resize shrink height 10px - bindsym $right resize grow width 10px - - bindsym Left resize shrink width 10px - bindsym Down resize grow height 10px - bindsym Up resize shrink height 10px - bindsym Right resize grow width 10px - - bindsym Return mode "default" - bindsym Escape mode "default" - bindsym $mod+r mode "default" -} -bindsym $mod+r mode "resize" - -# Start notification daemon -exec mako - -# Make sure env vars are imported into D-Bus -exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway - -# Swayidle -exec swayidle -w \ - timeout 300 "notify-send 'Power' 'System will suspend very soon due to inactivity.'" \ - timeout 310 "swaylock" \ - timeout 313 "swaymsg 'output * power off'" resume "swaymsg 'output * power on'" \ - before-sleep "swaylock" - -exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 - -exec aa-notify -p -s 1 -w 60 -f /var/log/audit/audit.log - -# Chromium hotkey fix -for_window [app_id="^chrome-.*-.*$"] shortcuts_inhibitor disable - -############ -# Waybar # -############ - -bar { - swaybar_command waybar -} - -include @sysconfdir@/sway/config.d/* |
