diff options
| author | Blake Romero <blake@developercraft.com> | 2025-10-26 21:31:47 +0000 |
|---|---|---|
| committer | Blake Romero <blake@developercraft.com> | 2025-10-26 21:31:47 +0000 |
| commit | e3200d59c3d31e7765c8fa9dce830f9c397d380c (patch) | |
| tree | 4a7119a553e77e0b3a17f75200fd4560699db285 | |
Add sway config & services script
| -rw-r--r-- | config | 242 | ||||
| -rwxr-xr-x | services | 15 |
2 files changed, 257 insertions, 0 deletions
@@ -0,0 +1,242 @@ +# +# SWAY +# + +# Requirements +# swaybg wmenu foot waybar + +# Environment Fixes +#exec export SWAYSOCK="$(ls /run/user/1000/sway-ipc.* | head -n 1)" +exec dbus-update-activation-environment WAYLAND_DISPLAY DISPLAY XDG_CURRENT_DESKTOP=sway SWAYSOCK I3SOCK XCURSOR_SIZE XCURSOR_THEME + +# Variables +set $mod Mod4 + +set $up j +set $down k +set $left l +set $right semicolon + +set $term foot +set $menu wmenu-run + +set $igap 40 +set $ogap 40 +set $focuscol "#aaaaaa" +set $inactcol "#444444" + +# Commands +set $exit swaynag -t warning -m 'Exit Sway?' -B 'Exit Sway' 'swaymsg exit' + +set $audio_play exec playerctl play-pause +set $audio_next exec playerctl next +set $audio_prev exec playerctl previous + +set $volup exec wpctl set-volume --limit 1.0 @DEFAULT_SINK@ 5%+ +set $voldown exec wpctl set-volume @DEFAULT_SINK@ 5%- +set $mute exec wpctl set-mute @DEFAULT_SINK@ toggle +set $mutemic exec wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle + +# Wallpaper +exec_always [ -f ~/.cache/wallpaper ] \ +|| cp /usr/share/backgrounds/sway/*_1920x1080.png ~/.cache/wallpaper + +exec_always [ -f ~/.cache/lockwallpaper ] \ +|| cp ~/.cache/wallpaper ~/.cache/lockwallpaper + +# Output +output * bg ~/.cache/wallpaper fill #123456 + +# Monitor 1 +output 'Microstep MAG274QRF-QD CA8A391600566' { + resolution 3840x2160@60Hz + scale 2 + position 0 0 +} + +# Monitor 2 +output 'Samsung Electric Company SyncMaster H9XB215463' { + resolution 1920x1200@59.950Hz + transform 270 + scale 1 + # position must be x/2 and y/2 of monitor 1 + position 1920 0 +} + +# Workspace assignment +workspace 1 output DP-3 +workspace 0 output HDMI-A-1 + +# Input +seat * hide_cursor when-typing enable +seat * xcursor_theme Adwaita 30 + +input type:touchpad { + dwt enable + tap enable + natural_scroll disable + middle_emulation enable +} + +input type:keyboard { + xkb_layout gb + xkb_options caps:ctrl_modifier +} + +# Gaps +gaps inner $igap +gaps outer $ogap +gaps horizontal 60 +gaps vertical 60 + +# Borders +smart_borders off +default_border pixel 2 +client.focused $focuscol $focuscol #000000 $focuscol +client.unfocused $inactcol $inactcol #000000 $inactcol +client.focused_inactive $inactcol $inactcol #000000 $inactcol + +# Waybar +bindsym $mod+b exec pkill -10 waybar + +# Actions +bindsym $mod+q kill +bindsym $mod+r reload +bindsym $mod+Escape exit + +bindsym $mod+Return exec $term +bindsym $mod+Space exec $menu +bindsym $mod+Shift+e exec $exit +bindsym $mod+i exec $term vim +bindsym $mod+n exec makoctl dismiss +bindsym $mod+u exec swayimg -g ~/images/wallpaper +bindsym $mod+d exec swaymsg 'output "*" power toggle' + +# Layout +bindsym $mod+h splith +bindsym $mod+v splitv + +bindsym $mod+equal layout toggle stacking split +bindsym $mod+t layout toggle tabbed split +bindsym $mod+s layout toggle split +bindsym $mod+f fullscreen +bindsym $mod+m \ + gaps inner current toggle $igap, \ + gaps outer current toggle $ogap + +bindsym $mod+Tab floating toggle +bindsym $mod+Control+Tab focus mode_toggle +bindsym $mod+y sticky toggle + +bindsym $mod+Shift+Grave move scratchpad +bindsym $mod+Grave scratchpad show + +# Gaps +bindsym $mod+g gaps inner current toggle $igap, gaps outer current toggle $ogap +bindsym $mod+Ctrl+g gaps inner current plus 10, gaps outer current plus 10 +bindsym $mod+Shift+g gaps inner current minus 10, gaps outer current minus 10 +bindsym $mod+Shift+Ctrl+g gaps inner all set $igap, gaps outer all set $ogap + +# Inner gaps +bindsym $mod+Ctrl+i gaps inner current plus 10, gaps vertical current plus 10 +bindsym $mod+Shift+i gaps inner current minus 10, gaps vertical current minus 10 +bindsym $mod+Shift+Ctrl+i gaps inner all set $igap + +# Outer gaps +bindsym $mod+Ctrl+o gaps outer current plus 10, gaps vertical current plus 10 +bindsym $mod+Shift+o gaps outer current minus 10, gaps vertical current minus 10 +bindsym $mod+Shift+Ctrl+o gaps outer all set $ogap + +# Focus +bindsym $mod+$up focus up +bindsym $mod+$down focus down +bindsym $mod+$left focus left +bindsym $mod+$right focus right +bindsym $mod+a focus parent +bindsym $mod+Ctrl+a focus child + +# Move window +bindsym $mod+Shift+$up move up 20px +bindsym $mod+Shift+$down move down 20px +bindsym $mod+Shift+$left move left 20px +bindsym $mod+Shift+$right move right 20px + +# Resize window +bindsym $mod+Shift+Equal resize grow height 20px +bindsym $mod+Shift+Minus resize shrink height 20px +bindsym $mod+Control+Minus resize shrink width 20px +bindsym $mod+Control+Equal resize grow width 20px + +bindsym $mod+z mode "resize" + +mode "resize" { + bindsym $up resize grow height 10px + bindsym $down resize shrink height 10px + bindsym $left resize shrink width 10px + bindsym $right resize grow width 10px + bindsym Return mode "default" + bindsym Escape mode "default" +} + +# Workspace +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 0 + +# Move window 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 0 + +# Function +bindsym --locked XF86AudioRaiseVolume $volup +bindsym --locked XF86AudioLowerVolume $voldown +bindsym --locked XF86AudioMute $mute +bindsym --locked XF86AudioMicMute $mutemic + +bindsym --locked XF86AudioPlay $audio_play +bindsym --locked XF86AudioNext $audio_next +bindsym --locked XF86AudioPrev $audio_prev + +#bindsym --locked XF86MonBrightnessUp exec brightnessctl -s set +10% +#bindsym --locked XF86MonBrightnessDown exec brightnessctl -s -n10 set 10%- + +# Window Rules +# Float all, manually disable floating for windows +#for_window [title="."] floating enable +#for_window [app_id="$term"] floating disable +#for_window [app_id="firefox|librewolf"] floating disable +for_window [title="Save Image"] float enable + +# Picture-in-picture window +for_window [title="Picture-in-Picture"] \ + floating enable, \ + sticky enable, \ + move position 1470 750, \ + border none + +# Don't lock the screen if program is running in fullscreen +for_window [app_id="^.*"] inhibit_idle fullscreen + +# Start-up apps +assign [app_id=$term title="btop|log"] "0" +exec $term -Tbtop btop +exec $term -Tlog tail -f /var/log/messages + +# Services +exec ~/.config/sway/services + diff --git a/services b/services new file mode 100755 index 0000000..ce1866a --- /dev/null +++ b/services @@ -0,0 +1,15 @@ +#!/bin/sh +distro="$(sed '/NAME/q' /etc/os-release | cut -d'"' -f2)" + +if command -v rc-service >/dev/null 2>&1; then + # run openrc user services + openrc -U gui +else + # run user services manually + pipewire& + pipewire-pulse& + wireplumber& + mako& + wlsunset -l 51.5 -L -0.1 -t 2800 -T 6000& + waybar& +fi |
