aboutsummaryrefslogtreecommitdiffstats
path: root/sway
diff options
context:
space:
mode:
authorLeonardo Bishop <me@leonardobishop.com>2024-12-25 14:26:51 +0000
committerLeonardo Bishop <me@leonardobishop.com>2024-12-25 14:26:51 +0000
commitdc41873a79b32ed3d34dd7dac09c081f7472d207 (patch)
treeba3c80c8d137263a8f346cf32853d15f75094fab /sway
parentf4c682dc6bdeebe9f0c6a20deb7092cf893791a1 (diff)
Change most things to symlinks instead of hardlinks
Diffstat (limited to 'sway')
-rw-r--r--sway/.install.yml18
-rw-r--r--sway/conf.d/00-theme-vars.conf15
-rw-r--r--sway/conf.d/01-system-vars.conf12
-rw-r--r--sway/conf.d/10-environment.conf5
-rw-r--r--sway/conf.d/20-binds.conf154
-rw-r--r--sway/conf.d/21-rules.conf25
-rw-r--r--sway/conf.d/22-theme.conf19
-rw-r--r--sway/config225
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/*