From 5dabf914c026270abf8b1bfef276418140f041d7 Mon Sep 17 00:00:00 2001 From: the_4n0nym0u53 Date: Thu, 30 Dec 2021 15:06:32 +0100 Subject: [PATCH] Revamp Sway config (split into different files). --- sway/.config/sway/config | 204 +----------------- .../config.d/{appearance => 00_appearance} | 11 +- sway/.config/sway/config.d/01_keybinds | 130 +++++++++++ .../sway/config.d/{behavior => 02_behavior} | 22 +- sway/.config/sway/config.d/03_input | 27 +++ sway/.config/sway/config.d/10_autoexec | 20 ++ sway/.config/sway/config.d/input | 45 ---- 7 files changed, 194 insertions(+), 265 deletions(-) rename sway/.config/sway/config.d/{appearance => 00_appearance} (72%) create mode 100644 sway/.config/sway/config.d/01_keybinds rename sway/.config/sway/config.d/{behavior => 02_behavior} (67%) create mode 100644 sway/.config/sway/config.d/03_input create mode 100644 sway/.config/sway/config.d/10_autoexec delete mode 100644 sway/.config/sway/config.d/input diff --git a/sway/.config/sway/config b/sway/.config/sway/config index 5d2c6c2..ad6b4e7 100644 --- a/sway/.config/sway/config +++ b/sway/.config/sway/config @@ -1,209 +1,27 @@ -# Default config for sway -# -# Copy this to ~/.config/sway/config and edit it to your liking. -# -# Read `man 5 sway` for a complete reference. +# vim: ft=swayconfig -### Variables -# -# Logo key. Use Mod1 for Alt. +# Set super key as mod key set $mod Mod4 -# Home row direction keys, like vim (changed to arrow keys on 2021-08-28) + +# Arrow keys as direction keys set $left Left set $down Down set $up Up set $right Right -# Your preferred terminal emulator + +# Terminal emulator set $term alacritty -# Your preferred application launcher -# Note: pass the final command to swaymsg so that the resulting window can be opened -# on the original workspace that the command was run on. + +# Application launcher set $menu exec $term --class launcher -t "Application Launcher" -e env HIST_FILE="" /usr/bin/sway-launcher-desktop -### Output configuration -# -# Default wallpaper +# Wallpaper output * bg /usr/share/backgrounds/Artix_dna_spiral_dark.jpg fill -# -# Example configuration: -# -# output HDMI-A-1 resolution 1920x1080 position 1920,0 -# -# You can get the names of your outputs by running: swaymsg -t get_outputs -### Idle configuration -# -# Example configuration: -# -exec swayidle -w \ - timeout 600 'swaylock' \ - timeout 1200 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \ - before-sleep 'swaylock' -# -# This will lock your screen after 300 seconds of inactivity, then turn off -# your displays after another 300 seconds, and turn your screens back on when -# resumed. It will also lock your screen before your computer goes to sleep. - -### Input configuration -# -# Example configuration: -# -# input "2:14:SynPS/2_Synaptics_TouchPad" { -# dwt enabled -# tap enabled -# natural_scroll enabled -# middle_emulation enabled -# } -# -# You can get the names of your inputs by running: swaymsg -t get_inputs -# Read `man 5 sway-input` for more information about this section. - -### Key bindings -# -# Basics: -# - # Start a terminal - bindsym $mod+Return exec $term - - # Kill focused window - bindsym $mod+q kill - - # Start your launcher - bindsym $mod+d exec $menu - - # Clear the clipboard (make sure to have $HOME/.local/bin in your $PATH) - bindsym $mod+c exec clear-clipboard.sh - - # Drag floating windows by holding down $mod and left mouse button. - # Resize them with right mouse button + $mod. - # Despite the name, also works for non-floating windows. - # Change normal to inverse to use left mouse button for resizing and right - # mouse button for dragging. - floating_modifier $mod normal - - # Reload the configuration file - bindsym $mod+Shift+c reload - - # Lock the screen - bindsym $mod+l exec swaylock - - # Exit sway (logs you out of your Wayland session) - bindsym $mod+Shift+e exec swaynag -t warning -m 'Log out?' -b 'Yes' 'swaymsg exit' - - # Reboot - bindsym $mod+Shift+r exec swaynag -t error -m 'Reboot?' -b 'Yes' 'doas reboot' - - # Power off - bindsym $mod+Shift+q exec swaynag -t error -m 'Shut down?' -b 'Yes' 'doas poweroff' - -# -# Screenshotting: -# - bindsym Print exec grimshot --notify save output - bindsym Shift+Print exec grimshot --notify save area - bindsym Ctrl+Print exec grimshot --notify copy output - bindsym Shift+Ctrl+Print exec grimshot --notify copy area - -# -# Moving around: -# - # Move your focus around - bindsym $mod+$left focus left - bindsym $mod+$down focus down - bindsym $mod+$up focus up - bindsym $mod+$right focus right - - # Move the focused window with the same, but add Shift - bindsym $mod+Shift+$left move left - bindsym $mod+Shift+$down move down - bindsym $mod+Shift+$up move up - bindsym $mod+Shift+$right move right -# -# Workspaces: -# - # Switch to 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 10 - # Move focused container to workspace - bindsym $mod+Shift+1 move container to workspace number 1; workspace number 1 - bindsym $mod+Shift+2 move container to workspace number 2; workspace number 2 - bindsym $mod+Shift+3 move container to workspace number 3; workspace number 3 - bindsym $mod+Shift+4 move container to workspace number 4; workspace number 4 - bindsym $mod+Shift+5 move container to workspace number 5; workspace number 5 - bindsym $mod+Shift+6 move container to workspace number 6; workspace number 6 - bindsym $mod+Shift+7 move container to workspace number 7; workspace number 7 - bindsym $mod+Shift+8 move container to workspace number 8; workspace number 8 - bindsym $mod+Shift+9 move container to workspace number 9; workspace number 9 - bindsym $mod+Shift+0 move container to workspace number 10; workspace number 10 - # Note: workspaces can have any name you want, not just numbers. - # We just use 1-10 as the default. -# -# Layout stuff: -# - # You can "split" the current object of your focus with - # $mod+b or $mod+v, for horizontal and vertical splits - # respectively. - bindsym $mod+b splith - bindsym $mod+v splitv - - # Switch the current container between different layout styles - bindsym $mod+s layout stacking - bindsym $mod+w layout tabbed - bindsym $mod+e layout toggle split - - # Make the current focus fullscreen - bindsym $mod+f fullscreen - - # Toggle the current focus between tiling and floating mode - bindsym $mod+Shift+space floating toggle - - # Swap focus between the tiling area and the floating area - bindsym $mod+space focus mode_toggle - - # Move focus to the parent container - bindsym $mod+a focus parent -# -# Scratchpad: -# - # Sway has a "scratchpad", which is a bag of holding for windows. - # You can send windows there and get them back later. - - # Move the currently focused window to the scratchpad - bindsym $mod+Shift+minus move scratchpad - - # Show the next scratchpad window or hide the focused scratchpad window. - # If there are multiple scratchpad windows, this command cycles through them. - bindsym $mod+minus scratchpad show -# -# Resizing containers: -# -mode "resize" { - # left will shrink the containers width - # right will grow the containers width - # up will shrink the containers height - # down will grow the containers height - bindsym $left resize shrink width 10px - bindsym $down resize grow height 10px - bindsym $up resize shrink height 10px - bindsym $right resize grow width 10px - - # Return to default mode - bindsym Return mode "default" - bindsym Escape mode "default" -} -bindsym $mod+r mode "resize" - -# Status Bar: +# Waybar as status bar bar { swaybar_command waybar } +# Read the rest of the config files include ~/.config/sway/config.d/* diff --git a/sway/.config/sway/config.d/appearance b/sway/.config/sway/config.d/00_appearance similarity index 72% rename from sway/.config/sway/config.d/appearance rename to sway/.config/sway/config.d/00_appearance index 3c7ff0a..a925954 100644 --- a/sway/.config/sway/config.d/appearance +++ b/sway/.config/sway/config.d/00_appearance @@ -1,8 +1,4 @@ -############################### -# # -# APPEARANCE # -# # -############################### +# vim: ft=swayconfig # Borders default_border pixel 3 @@ -18,15 +14,12 @@ gaps outer 4 # Font font pango:Fira Sans Condensed SemiBold 10 -### COLORS ### - -# border, bground and text only apply to window titlebars +# Colors (border, bground and text only apply to window titlebars) # class border bground text indicator child_border client.focused #268bd2 #268bd2 #eee8d5 #839496 #268bd2 client.focused_inactive #002b36 #002b36 #eee8d5 #002b36 #002b36 client.unfocused #002b36 #002b36 #eee8d5 #002b36 #002b36 client.urgent #dc322f #dc322f #eee8d5 #cb4b16 #dc322f client.placeholder #002b36 #002b36 #eee8d5 #002b36 #002b36 - client.background #fdf6e3 diff --git a/sway/.config/sway/config.d/01_keybinds b/sway/.config/sway/config.d/01_keybinds new file mode 100644 index 0000000..88c62d8 --- /dev/null +++ b/sway/.config/sway/config.d/01_keybinds @@ -0,0 +1,130 @@ +# vim: ft=swayconfig + +### GENERAL ### + +# Start a terminal +bindsym $mod+Return exec $term + +# Kill focused container +bindsym $mod+q kill + +# Start application launcher +bindsym $mod+d exec $menu + +# Clear the clipboard +bindsym $mod+c exec clear-clipboard.sh + +# Floating modifier +floating_modifier $mod normal + +# Reload Sway +bindsym $mod+Shift+c reload + +# Lock the screen +bindsym $mod+l exec swaylock + +# Session and power management +bindsym $mod+Shift+e exec swaynag -t warning -m 'Log out?' -b 'Yes' 'swaymsg exit' +bindsym $mod+Shift+r exec swaynag -t error -m 'Reboot?' -b 'Yes' 'doas reboot' +bindsym $mod+Shift+q exec swaynag -t error -m 'Shut down?' -b 'Yes' 'doas poweroff' + +# Screenshotting +bindsym Print exec grimshot --notify save output +bindsym Shift+Print exec grimshot --notify save area +bindsym Ctrl+Print exec grimshot --notify copy output +bindsym Shift+Ctrl+Print exec grimshot --notify copy area + +# Move focus to different container +bindsym $mod+$left focus left +bindsym $mod+$down focus down +bindsym $mod+$up focus up +bindsym $mod+$right focus right + +# Move focused container +bindsym $mod+Shift+$left move left +bindsym $mod+Shift+$down move down +bindsym $mod+Shift+$up move up +bindsym $mod+Shift+$right move right + +# Switch to 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 10 + +# Switch to workspace and bring along focused container +bindsym $mod+Shift+1 move container to workspace number 1; workspace number 1 +bindsym $mod+Shift+2 move container to workspace number 2; workspace number 2 +bindsym $mod+Shift+3 move container to workspace number 3; workspace number 3 +bindsym $mod+Shift+4 move container to workspace number 4; workspace number 4 +bindsym $mod+Shift+5 move container to workspace number 5; workspace number 5 +bindsym $mod+Shift+6 move container to workspace number 6; workspace number 6 +bindsym $mod+Shift+7 move container to workspace number 7; workspace number 7 +bindsym $mod+Shift+8 move container to workspace number 8; workspace number 8 +bindsym $mod+Shift+9 move container to workspace number 9; workspace number 9 +bindsym $mod+Shift+0 move container to workspace number 10; workspace number 10 + +# Split modes ([B]ertical split?) +bindsym $mod+b splith +bindsym $mod+v splitv +bindsym $mod+e layout toggle split + +# Switch window between different layout styles +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed + +# Make container fullscreen +bindsym $mod+f fullscreen + +# Toggle container between tiling and floating mode +bindsym $mod+Shift+space floating toggle + +# Toggle focus between the tiling area and the floating area +bindsym $mod+space focus mode_toggle + +# Move focus to the parent container +bindsym $mod+a focus parent + +# Move window to scratchpad +bindsym $mod+Shift+minus move scratchpad + +# Show or cycle through scratchpad +bindsym $mod+minus scratchpad show + +# PipeWire controls +bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +2% +bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -2% +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle +bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute 0 toggle + +# Media player controls +bindsym XF86AudioPlay exec playerctl play-pause +bindsym XF86AudioStop exec playerctl stop +bindsym XF86AudioNext exec playerctl next +bindsym XF86AudioPrev exec playerctl previous + +# Sreen brightness controls +bindsym XF86MonBrightnessUp exec light -A 5 +bindsym XF86MonBrightnessDown exec light -U 5 + + +### MODES ### + +# Resize mode +mode "resize" { + bindsym $left resize grow width 10px + bindsym $down resize shrink height 10px + bindsym $up resize grow height 10px + bindsym $right resize shrink width 10px + bindsym Return mode "default" + bindsym Escape mode "default" +} + +# Keybind for resize mode +bindsym $mod+r mode "resize" diff --git a/sway/.config/sway/config.d/behavior b/sway/.config/sway/config.d/02_behavior similarity index 67% rename from sway/.config/sway/config.d/behavior rename to sway/.config/sway/config.d/02_behavior index 1db258a..9b9c18c 100644 --- a/sway/.config/sway/config.d/behavior +++ b/sway/.config/sway/config.d/02_behavior @@ -1,21 +1,6 @@ -############################### -# # -# BEHAVIOR # -# # -############################### +# vim: ft=swayconfig -# Start IVPN service -exec doas ivpn-service # replace with doas with sudo if you don't have doas - -# Make xdg-desktop-portal-wlr work properly -exec dbus-update-activation-environment WAYLAND_DISPLAY - -# Application autostart -exec mako -exec pipewire -exec pipewire-pulse -exec wireplumber -exec ~/.config/sway/autostart.sh +### GENERAL ### # Window focus doesn't follow mouse focus_follows_mouse no @@ -29,9 +14,10 @@ workspace_auto_back_and_forth yes # Workspace 10 always on second monitor (I use this for Spotify, feel free to change) workspace 10 output "DP-2" + ### APPLICATION SPECIFIC ### -# Config for sway-launcher-desktop +# Config for application launcher for_window [app_id="^launcher$"] floating enable, resize set 30 ppt 60 ppt, border pixel 4 # Floating window for KeePassXC-Browser popup diff --git a/sway/.config/sway/config.d/03_input b/sway/.config/sway/config.d/03_input new file mode 100644 index 0000000..7e45ed6 --- /dev/null +++ b/sway/.config/sway/config.d/03_input @@ -0,0 +1,27 @@ +# vim: ft=swayconfig + +### GENERAL ### + +input type:keyboard { + xkb_layout dk +} + +input type:touchpad { + drag enabled + natural_scroll enabled + scroll_factor 0.5 + tap enabled +} + +input type:pointer { + accel_profile flat # I hate mouse acceleration + natural_scroll disabled +} + + +### DEVICE SPECIFIC ### + +input 6940:6958:Corsair_Corsair_Gaming_M65_Pro_RGB_Mouse { + pointer_accel -0.5 +} + diff --git a/sway/.config/sway/config.d/10_autoexec b/sway/.config/sway/config.d/10_autoexec new file mode 100644 index 0000000..b482689 --- /dev/null +++ b/sway/.config/sway/config.d/10_autoexec @@ -0,0 +1,20 @@ +# vim: ft=swayconfig + +# Start background services +exec doas ivpn-service +exec mako +exec pipewire +exec pipewire-pulse +exec wireplumber + +# Make xdg-desktop-portal-wlr work properly +exec dbus-update-activation-environment WAYLAND_DISPLAY + +# Idle configuration +exec swayidle -w \ + timeout 600 'swaylock' \ + timeout 1200 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \ + before-sleep 'swaylock' + +# Custom script for VPN connection before XDG autostart applications +exec ~/.config/sway/autostart.sh diff --git a/sway/.config/sway/config.d/input b/sway/.config/sway/config.d/input deleted file mode 100644 index ebfa70b..0000000 --- a/sway/.config/sway/config.d/input +++ /dev/null @@ -1,45 +0,0 @@ -############################### -# # -# INPUT DEVICES # -# # -############################### - -input type:keyboard { - xkb_layout dk -} - -input type:touchpad { - drag enabled - natural_scroll enabled - scroll_factor 0.5 - tap enabled -} - -input type:pointer { - accel_profile flat # I hate mouse acceleration - natural_scroll disabled -} - -### DEVICE SPECIFIC ### - -input 6940:6958:Corsair_Corsair_Gaming_M65_Pro_RGB_Mouse { - pointer_accel -0.5 -} - -### KEYBINDS ### - -# PipeWire controls -bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +2% -bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -2% -bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle -bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute 0 toggle - -# Media player controls -bindsym XF86AudioPlay exec playerctl play-pause -bindsym XF86AudioStop exec playerctl stop -bindsym XF86AudioNext exec playerctl next -bindsym XF86AudioPrev exec playerctl previous - -# Sreen brightness controls -bindsym XF86MonBrightnessUp exec light -A 5 -bindsym XF86MonBrightnessDown exec light -U 5