diff --git a/sway/.config/sway/config b/sway/.config/sway/config index ad90336..0b971d3 100644 --- a/sway/.config/sway/config +++ b/sway/.config/sway/config @@ -1,320 +1,11 @@ +# Include system defaults include /etc/sway/config.d/* -# Sway Window Manager Configuration -# ================================ - -# 1. Variables and General Settings -# -------------------------------- -set { - $mod Mod4 - # $term kitty - $term kitty - $menu fuzzel - $left h - $down j - $up k - $right l - - # Monitor outputs - $out1 DP-1 - $out2 HDMI-A-1 - - # Original Colors - $focused_border #19141D - $focused_text #CACACA -} - -# Font configuration -font pango:monospace 12 - -# Use Mouse+$mod to drag floating windows -floating_modifier $mod - -# 2. Appearance -# ------------ -# Window Decoration -default_border pixel 1 -default_floating_border pixel 1 -smart_borders on - -# Window Colors (Preserved from original config) -client.focused #19141D #19141D #CACACA #19141D #CACACA - -# Gaps Configuration -gaps inner 5 -gaps outer 5 - -xwayland enable - -# Optional SwayFX Settings -smart_corner_radius on -corner_radius 10 - -default_dim_inactive 0.05 -blur enable -blur_passes 1 -blur_radius 1 -layer_effects "waybar" "blur enable"; shadows enable -shadows on -shadow_blur_radius 20 - -# 3. Workspaces -# ------------ -set { - $ws1 "1" - $ws2 "2" - $ws3 "3" - $ws4 "4" - $ws5 "5" - $ws6 "6" - $ws7 "7" - $ws8 "8" - $ws9 "9" - $ws10 "10" -} - -# Workspace Monitor Assignments -workspace { - 1 output $out1 - 3 output $out1 - 5 output $out1 - 7 output $out1 - 9 output $out1 - 2 output $out2 - 4 output $out2 - 6 output $out2 - 8 output $out2 - 10 output $out2 -} - -# 4. Key Bindings -# -------------- -# System Controls -bindsym { - $mod+Shift+r exec swaymsg reload && notify-send "Reloaded sway config" - $mod+Shift+e exec --no-startup-id wlogout -} - -bindgesture swipe:right focus right -bindgesture swipe:left focus left -bindgesture swipe:up workspace next -bindgesture swipe:down workspace prev - -# Application Launchers -bindsym { - $mod+Return exec $term - # $mod+d exec fuzzel - $mod+d exec rofi -show combi -combi-modi "window,drun" -modi combi - $mod+t exec ~/.bin/code.sh -s ~/.bin/fuzzel.lua - $mod+shift+t exec ~/.bin/present - $mod+n exec ~/.bin/sdm-ui.sh dmenu - # $mod+o exec ~/.bin/obsidian-launcher - # luanch kitty + neovim at ~/Documents/Vault - $mod+o exec bash -c "cd /home/forbi/Documents/Vault && $term nvim" - $mod+e exec nemo -} - -# Window Management -bindsym { - $mod+c kill - $mod+f fullscreen toggle - $mod+space floating toggle - - # Layout - $mod+s layout stacking - $mod+w layout toggle tabbed split - $mod+semicolon split h - - # Focus - $mod+$left focus left - $mod+$down focus down - $mod+$up focus up - $mod+$right focus right - - $mod+Left focus left - $mod+Down focus down - $mod+Up focus up - $mod+Right focus right - - # Move - $mod+Shift+$left move left - $mod+Shift+$down move down - $mod+Shift+$up move up - $mod+Shift+$right move right - - $mod+Shift+Left move left - $mod+Shift+Down move down - $mod+Shift+Up move up - $mod+Shift+Right move right -} - -# Workspace Management -bindsym { - $mod+1 workspace $ws1 - $mod+2 workspace $ws2 - $mod+3 workspace $ws3 - $mod+4 workspace $ws4 - $mod+5 workspace $ws5 - $mod+6 workspace $ws6 - $mod+7 workspace $ws7 - $mod+8 workspace $ws8 - $mod+9 workspace $ws9 - $mod+0 workspace $ws10 - - $mod+Shift+1 move container to workspace $ws1 - $mod+Shift+2 move container to workspace $ws2 - $mod+Shift+3 move container to workspace $ws3 - $mod+Shift+4 move container to workspace $ws4 - $mod+Shift+5 move container to workspace $ws5 - $mod+Shift+6 move container to workspace $ws6 - $mod+Shift+7 move container to workspace $ws7 - $mod+Shift+8 move container to workspace $ws8 - $mod+Shift+9 move container to workspace $ws9 - $mod+Shift+0 move container to workspace $ws10 - - $mod+bracketright move workspace to output right - $mod+bracketleft move workspace to output left -} - -# Scratchpad -bindsym { - $mod+Shift+minus move scratchpad - $mod+minus scratchpad show - $mod+u [app_id="uy.com.mzunino"] scratchpad show, move position center, fullscreen disable, resize set 1366 768 -} - -# Floating Terminal -bindsym $mod+Shift+u exec --no-startup-id $term --class="uy.com.mzunino" - -# Other Special Bindings -bindsym { - F4 exec switch-windows - $mod+r exec --no-startup-id ~/.bin/wlrecord.sh - $mod+p exec --no-startup-id grim -g "$(slurp -d)" - | swappy -f - - $mod+shift+p exec --no-startup-id ~/.bin/screenshot-upload - $mod+F5 exec --no-startup-id ~/.bin/pause-notifications - $mod+Escape exec ~/.bin/lock.sh - $mod+shift+d exec ~/.local/bin/satty-window -} - -# 5. Multimedia Keys -bindsym { - XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +2% - XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -2% - XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle - XF86MonBrightnessUp exec --no-startup-id brightnessctl set +5% - XF86MonBrightnessDown exec --no-startup-id brightnessctl set 5%- -} - -# Mouse Bindings -bindsym { - --border button2 kill - --whole-window $mod+button2 kill - button3 floating toggle - $mod+button3 floating toggle -} - -# 6. Window Rules (Preserving original detailed rules) -for_window [app_id="uy.com.mzunino"] floating enable, move scratchpad -for_window [app_id="Evolution-alarm-notify"] floating enable -for_window [app_id="sm"] move to workspace 4, workspace --no-auto-back-and-forth 4 -for_window [title="JetBrains Toolbox"] floating enable -for_window [app_id="Spotify"] move to workspace 5, workspace --no-auto-back-and-forth 5 -for_window [title="Espanso Sync Tool"] floating enable, move to workspace 10 -for_window [app_id="yad"] floating enable -for_window [class="Pinentry-gtk"] floating enable -for_window [app_id="com.github.hluk.copyq"] floating enable -for_window [app_id="com.github.hluk.copyq"] resize set 1366 768 -for_window [app_id="authenticator"] floating enable -for_window [app_id="authenticator"] resize set 400 800 -for_window [title="File Operation Progress"] floating enable -for_window [title="Do Not Panic"] floating enable -for_window [title="Unlock Keyring"] floating enable -for_window [title="Confirm to replace files"] floating enable -for_window [title="Extension: (Bitwarden Password Manager) - Bitwarden — Mozilla Firefox"] floating enable -for_window [title="Bitwarden - Vivaldi"] floating enable - -for_window [title="Write: .*" app_id="eu.betterbird.Betterbird"] floating enable -for_window [app_id="eu.betterbird.Betterbird"] floating disable - -for_window [title="win0"] floating enable border none -for_window [class=".*"] border pixel 0 -for_window [app_id="org.pulseaudio.pavucontrol"] floating enable, resize set 700 800 -for_window [app_id="pdf_float"] floating enable, resize set width 1366 px height 900 px - -# 7. Workspace Assignments (Preserving original detailed assignments) -assign [class="^discord$"] 10 -assign [app_id="^de.shorsh.discord-screenaudio$"] 10 -assign [class="^WebCord$"] 10 -assign [class="^vesktop$"] 10 -assign [app_id="vesktop"] 10 -assign [app_id="thunderbird"] 7 -assign [app_id="eu.betterbird.Betterbird"] 7 -assign [class="DBeaver"] 4 -assign [app_id="sublime_merge"] 4 -assign [app_id="^jetbrains-idea$"] 3 -assign [title="^win0$"] 3 -assign [title=".*Visual Studio Code*."] 3 -assign [app_id="^nvim ~ "] 3 -assign [title="^nvim ~ "] 3 -assign [app_id="firefox-nightly"] 2 -assign [app_id="firefox"] 2 -assign [app_id="zen"] 2 -assign [instance="vivaldi-stable"] 2 -assign [class="Vivaldi-stable"] 2 -assign [class="Slack"] 1 -assign [app_id="^Chromium"] 1 - -# 8. Workspace Layouts -for_window [workspace=$ws1] layout tabbed - -# 9. Input Configuration -input type:keyboard { - xkb_layout us - xkb_variant altgr-intl - xkb_options caps:escape -} - -input type:touchpad { - dwt enabled - tap enabled - accel_profile adaptive - pointer_accel 0.5 -} - -input "2:10:TPPS/2_Elan_TrackPoint" { - accel_profile "flat" - pointer_accel 0.7 -} - -# # 10. Output Configuration -output $out1 { - resolution 1920x1080 - position 0 0 -} - -output $out2 { - resolution 1920x1080 - position 1920 0 -} - -output * adaptive_sync off - -# 11. Autostart Applications -exec { - ~/.bin/randwall - ~/.bin/waybar.sh - $term --class="uy.com.mzunino" - slack - davmail - betterbird - zen-browser - - /usr/lib/mate-polkit/polkit-mate-authentication-agent-1 - blueman-applet - nm-applet - swaync - wlsunset -l -34.9 -L -56.2 -t 4500 -g 0.9 - easyeffects --gapplication-service -} - +# Include custom configuration modules +include ~/.config/sway/config.d/variables +include ~/.config/sway/config.d/appearance +include ~/.config/sway/config.d/workspaces +include ~/.config/sway/config.d/keybindings +include ~/.config/sway/config.d/window-rules +include ~/.config/sway/config.d/input-output +include ~/.config/sway/config.d/autostart diff --git a/sway/.config/sway/config.d/appearance b/sway/.config/sway/config.d/appearance new file mode 100644 index 0000000..237c49a --- /dev/null +++ b/sway/.config/sway/config.d/appearance @@ -0,0 +1,27 @@ +# vim: ft=swayconfig +# Window Decoration +default_border pixel 1 +default_floating_border pixel 1 +smart_borders on + +# Window Colors +client.focused #19141D #19141D #CACACA #19141D #CACACA + +# Gaps Configuration +gaps inner 5 +gaps outer 5 + +# Enable XWayland +xwayland enable + +# SwayFX Settings +smart_corner_radius on +corner_radius 10 + +default_dim_inactive 0.05 +blur enable +blur_passes 1 +blur_radius 1 +layer_effects "waybar" "blur enable"; shadows enable +shadows on +shadow_blur_radius 20 diff --git a/sway/.config/sway/config.d/autostart b/sway/.config/sway/config.d/autostart new file mode 100644 index 0000000..a6c91ac --- /dev/null +++ b/sway/.config/sway/config.d/autostart @@ -0,0 +1,26 @@ +# vim: ft=swayconfig +# System Services +exec { + /usr/lib/mate-polkit/polkit-mate-authentication-agent-1 + blueman-applet + nm-applet + swaync + wlsunset -l -34.9 -L -56.2 -t 4500 -g 0.9 + easyeffects --gapplication-service +} + +# User Interface +exec { + ~/.bin/randwall + ~/.bin/waybar.sh +} + +# Applications +exec { + $term --class="uy.com.mzunino" + slack + davmail + betterbird + zen-browser + obsidian +} diff --git a/sway/.config/sway/config.d/input-output b/sway/.config/sway/config.d/input-output new file mode 100644 index 0000000..5783689 --- /dev/null +++ b/sway/.config/sway/config.d/input-output @@ -0,0 +1,35 @@ +# vim: ft=swayconfig +# Keyboard Input +input type:keyboard { + xkb_layout us + xkb_variant altgr-intl + xkb_options caps:escape +} + +# Touchpad Input +input type:touchpad { + dwt enabled + tap enabled + accel_profile adaptive + pointer_accel 0.5 +} + +# TrackPoint Input +input "2:10:TPPS/2_Elan_TrackPoint" { + accel_profile "flat" + pointer_accel 0.7 +} + +# Output Configuration +output $out1 { + resolution 1920x1080 + position 0 0 +} + +output $out2 { + resolution 1920x1080 + position 1920 0 +} + +# Disable adaptive sync for all outputs +output * adaptive_sync off diff --git a/sway/.config/sway/config.d/keybindings b/sway/.config/sway/config.d/keybindings new file mode 100644 index 0000000..1685666 --- /dev/null +++ b/sway/.config/sway/config.d/keybindings @@ -0,0 +1,121 @@ +# vim: ft=swayconfig +# System Controls +bindsym { + $mod+Shift+r exec swaymsg reload && notify-send "Reloaded sway config" + $mod+Shift+e exec --no-startup-id wlogout + $mod+Escape exec ~/.bin/lock.sh +} + +# Gestures +bindgesture swipe:right focus right +bindgesture swipe:left focus left +bindgesture swipe:up workspace next +bindgesture swipe:down workspace prev + +# Application Launchers +bindsym { + $mod+Return exec $term + $mod+d exec rofi -show combi -combi-modi "window,drun" -modi combi + $mod+t exec ~/.bin/code.sh -s ~/.bin/fuzzel.lua + $mod+shift+t exec ~/.bin/present + $mod+n exec ~/.bin/sdm-ui.sh dmenu + $mod+o exec ~/.local/bin/launch-or-focus obsidian "cd /home/forbi/Documents/Vault && $term --class obsidian nvim" + $mod+e exec nemo +} + +# Window Management +bindsym { + $mod+c kill + $mod+f fullscreen toggle + $mod+space floating toggle + + # Layout + $mod+s layout stacking + $mod+w layout toggle tabbed split + $mod+semicolon split h + + # Focus + $mod+$left focus left + $mod+$down focus down + $mod+$up focus up + $mod+$right focus right + + $mod+Left focus left + $mod+Down focus down + $mod+Up focus up + $mod+Right focus right + + # Move + $mod+Shift+$left move left + $mod+Shift+$down move down + $mod+Shift+$up move up + $mod+Shift+$right move right + + $mod+Shift+Left move left + $mod+Shift+Down move down + $mod+Shift+Up move up + $mod+Shift+Right move right +} + +# Workspace Management +bindsym { + $mod+1 workspace $ws1 + $mod+2 workspace $ws2 + $mod+3 workspace $ws3 + $mod+4 workspace $ws4 + $mod+5 workspace $ws5 + $mod+6 workspace $ws6 + $mod+7 workspace $ws7 + $mod+8 workspace $ws8 + $mod+9 workspace $ws9 + $mod+0 workspace $ws10 + + $mod+Shift+1 move container to workspace $ws1 + $mod+Shift+2 move container to workspace $ws2 + $mod+Shift+3 move container to workspace $ws3 + $mod+Shift+4 move container to workspace $ws4 + $mod+Shift+5 move container to workspace $ws5 + $mod+Shift+6 move container to workspace $ws6 + $mod+Shift+7 move container to workspace $ws7 + $mod+Shift+8 move container to workspace $ws8 + $mod+Shift+9 move container to workspace $ws9 + $mod+Shift+0 move container to workspace $ws10 + + $mod+bracketright move workspace to output right + $mod+bracketleft move workspace to output left +} + +# Scratchpad +bindsym { + $mod+Shift+minus move scratchpad + $mod+minus scratchpad show + $mod+u [app_id="uy.com.mzunino"] scratchpad show, move position center, fullscreen disable, resize set 1366 768 + $mod+Shift+u exec --no-startup-id $term --class="uy.com.mzunino" +} + +# Special Functions +bindsym { + F4 exec switch-windows + $mod+r exec --no-startup-id ~/.bin/wlrecord.sh + $mod+p exec --no-startup-id grim -g "$(slurp -d)" - | swappy -f - + $mod+shift+p exec --no-startup-id ~/.bin/screenshot-upload + $mod+F5 exec --no-startup-id ~/.bin/pause-notifications + $mod+shift+d exec ~/.local/bin/satty-window +} + +# Multimedia Keys +bindsym { + XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +2% + XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -2% + XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle + XF86MonBrightnessUp exec --no-startup-id brightnessctl set +5% + XF86MonBrightnessDown exec --no-startup-id brightnessctl set 5%- +} + +# Mouse Bindings +bindsym { + --border button2 kill + --whole-window $mod+button2 kill + button3 floating toggle + $mod+button3 floating toggle +} diff --git a/sway/.config/sway/config.d/variables b/sway/.config/sway/config.d/variables new file mode 100644 index 0000000..db99d2b --- /dev/null +++ b/sway/.config/sway/config.d/variables @@ -0,0 +1,36 @@ +# vim: ft=swayconfig +set { + $mod Mod4 + $term kitty + $menu fuzzel + $left h + $down j + $up k + $right l + + # Monitor outputs + $out1 DP-1 + $out2 HDMI-A-1 + + # Color scheme + $focused_border #19141D + $focused_text #CACACA + + # Workspace definitions + $ws1 "1" + $ws2 "2" + $ws3 "3" + $ws4 "4" + $ws5 "5" + $ws6 "6" + $ws7 "7" + $ws8 "8" + $ws9 "9" + $ws10 "10" +} + +# Font configuration +font pango:monospace 12 + +# Use Mouse+$mod to drag floating windows +floating_modifier $mod diff --git a/sway/.config/sway/config.d/window-rules b/sway/.config/sway/config.d/window-rules new file mode 100644 index 0000000..48c2fae --- /dev/null +++ b/sway/.config/sway/config.d/window-rules @@ -0,0 +1,36 @@ +# vim: ft=swayconfig +# Scratchpad Windows +for_window [app_id="uy.com.mzunino"] floating enable, move scratchpad + +# Floating Windows +for_window [app_id="Evolution-alarm-notify"] floating enable +for_window [title="JetBrains Toolbox"] floating enable +for_window [title="Espanso Sync Tool"] floating enable, move to workspace 10 +for_window [app_id="yad"] floating enable +for_window [class="Pinentry-gtk"] floating enable +for_window [app_id="com.github.hluk.copyq"] floating enable +for_window [app_id="authenticator"] floating enable +for_window [title="File Operation Progress"] floating enable +for_window [title="Do Not Panic"] floating enable +for_window [title="Unlock Keyring"] floating enable +for_window [title="Confirm to replace files"] floating enable +for_window [title="Extension: (Bitwarden Password Manager) - Bitwarden — Mozilla Firefox"] floating enable +for_window [title="Bitwarden - Vivaldi"] floating enable +for_window [title="win0"] floating enable border none +for_window [app_id="org.pulseaudio.pavucontrol"] floating enable, resize set 700 800 +for_window [app_id="pdf_float"] floating enable, resize set width 1366 px height 900 px + +# Floating with Specific Sizing +for_window [app_id="com.github.hluk.copyq"] resize set 1366 768 +for_window [app_id="authenticator"] resize set 400 800 + +# Email Client Rules +for_window [title="Write: .*" app_id="eu.betterbird.Betterbird"] floating enable +for_window [app_id="eu.betterbird.Betterbird"] floating disable + +# Border Rules +for_window [class=".*"] border pixel 0 + +# Workspace Specific Rules +for_window [app_id="sm"] move to workspace 4, workspace --no-auto-back-and-forth 4 +for_window [app_id="Spotify"] move to workspace 5, workspace --no-auto-back-and-forth 5 diff --git a/sway/.config/sway/config.d/workspaces b/sway/.config/sway/config.d/workspaces new file mode 100644 index 0000000..60b3ffe --- /dev/null +++ b/sway/.config/sway/config.d/workspaces @@ -0,0 +1,41 @@ +# vim: ft=swayconfig +# Workspace Monitor Assignments +workspace { + 1 output $out1 + 3 output $out1 + 5 output $out1 + 7 output $out1 + 9 output $out1 + 2 output $out2 + 4 output $out2 + 6 output $out2 + 8 output $out2 + 10 output $out2 +} + +# Workspace Layouts +for_window [workspace=$ws1] layout tabbed + +# Workspace Assignments +assign [class="^discord$"] 10 +assign [app_id="^de.shorsh.discord-screenaudio$"] 10 +assign [class="^WebCord$"] 10 +assign [class="^vesktop$"] 10 +assign [app_id="vesktop"] 10 +assign [app_id="thunderbird"] 7 +assign [app_id="eu.betterbird.Betterbird"] 7 +assign [class="DBeaver"] 4 +assign [app_id="sublime_merge"] 4 +assign [app_id="^jetbrains-idea$"] 3 +assign [title="^win0$"] 3 +assign [title=".*Visual Studio Code*."] 3 +assign [app_id="^nvim ~ "] 3 +assign [title="^nvim ~ "] 3 +assign [app_id="firefox-nightly"] 2 +assign [app_id="firefox"] 2 +assign [app_id="zen"] 2 +assign [instance="vivaldi-stable"] 2 +assign [class="Vivaldi-stable"] 2 +assign [class="Slack"] 1 +assign [app_id="^Chromium"] 1 +assign [instance="obsidian"] 10