From d825d2377445545f68827fa6b0981d6c9f90070b Mon Sep 17 00:00:00 2001 From: David Runge Date: Sun, 3 Dec 2023 13:27:06 +0100 Subject: sway: Consolidate configuration for more hosts Flatten config structure. Add includes for all sub-configuration. Remove unnecessary comments. Signed-off-by: David Runge --- .config/sway/config | 329 +++++++++++++++++++++++----------------------------- 1 file changed, 146 insertions(+), 183 deletions(-) diff --git a/.config/sway/config b/.config/sway/config index 337f5c5..e0142d8 100644 --- a/.config/sway/config +++ b/.config/sway/config @@ -1,11 +1,11 @@ -# Default config for sway -# -# Copy this to ~/.config/sway/config and edit it to your liking. -# -# Read `man 5 sway` for a complete reference. +### General + +gaps inner 4 +smart_gaps on +default_border pixel 2 ### Variables -# + # Logo key. Use Mod1 for Alt. set $mod Mod4 # Home row direction keys, like vim @@ -13,49 +13,13 @@ set $left h set $down j set $up k set $right l -# Your preferred terminal emulator -set $term alacritty -# Your preferred application launcher -set $menu wofi -G -S drun -set $select_screenshot grim -g "$(slurp)" ~/cloud/photos/screenshots/screenshot-"$(date +'%Y-%m-%d_%H-%M-%S')".png -set $screenshot grim ~/cloud/photos/screenshots/screenshot-"$(date +'%Y-%m-%d_%H-%M-%S')".png -set $notify_mpd ~/bin/notify_mpd -set $set_volume ~/bin/set_volume - -# lock -set $lock setsid -f waylock - -# brightness -set $brightness_up backlight -i "5" -set $brightness_down backlight -i "-5" - -default_border pixel 2 ### Output configuration -# -# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) -# output * bg ~/.config/sway/background.png 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 -### 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. +# load per hostname output configuration +include "~/.config/sway/config.d/$(hostnamectl hostname)-output" +### Input configuration input type:keyboard { xkb_layout us,de @@ -69,147 +33,137 @@ input type:touchpad { tap_button_map lrm } -# gaps -gaps inner 5 -smart_gaps on +# load per hostname input configuration +include "~/.config/sway/config.d/$(hostnamectl hostname)-input" ### Key bindings -# -# Basics: -# - # start a terminal - bindsym $mod+Return exec $term - - # kill focused window - bindsym $mod+q kill - - # start your launcher - bindsym $mod+p exec $menu - - # 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+Ctrl+r reload - - # lock sway - bindsym $mod+Ctrl+s exec $lock - - # screenshot - bindsym $mod+Ctrl+u exec $screenshot - # selection screenshot - bindsym $mod+Ctrl+i exec $select_screenshot - - # exit sway (logs you out of your wayland session) - bindsym $mod+Ctrl+e exit - # brightness - bindsym XF86MonBrightnessDown exec $brightness_down - bindsym XF86MonBrightnessUp exec $brightness_up - # sound - bindsym --locked XF86AudioRaiseVolume exec $set_volume increase - bindsym --locked XF86AudioLowerVolume exec $set_volume decrease - bindsym --locked XF86AudioMute exec $set_volume toggle - bindsym --locked XF86AudioPrev exec $notify_mpd prev - bindsym --locked XF86AudioNext exec $notify_mpd next - bindsym --locked XF86AudioPlay exec $notify_mpd toggle - bindsym --locked XF86AudioStop exec $notify_mpd stop - -# -# 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 - # or use $mod+[up|down|left|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 with the same, but add Shift - bindsym $mod+Ctrl+$left move left - bindsym $mod+Ctrl+$down move down - bindsym $mod+Ctrl+$up move up - bindsym $mod+Ctrl+$right move right - # ditto, with arrow keys - bindsym $mod+Ctrl+Left move left - bindsym $mod+Ctrl+Down move down - bindsym $mod+Ctrl+Up move up - bindsym $mod+Ctrl+Right move right -# -# Workspaces: -# - # switch to workspace - bindsym $mod+1 workspace 1 - bindsym $mod+2 workspace 2 - bindsym $mod+3 workspace 3 - bindsym $mod+4 workspace 4 - bindsym $mod+5 workspace 5 - bindsym $mod+6 workspace 6 - bindsym $mod+7 workspace 7 - bindsym $mod+8 workspace 8 - bindsym $mod+9 workspace 9 - bindsym $mod+0 workspace 10 - # move focused container to workspace - bindsym $mod+Shift+1 move container to workspace 1 - bindsym $mod+Shift+2 move container to workspace 2 - bindsym $mod+Shift+3 move container to workspace 3 - bindsym $mod+Shift+4 move container to workspace 4 - bindsym $mod+Shift+5 move container to workspace 5 - bindsym $mod+Shift+6 move container to workspace 6 - bindsym $mod+Shift+7 move container to workspace 7 - bindsym $mod+Shift+8 move container to workspace 8 - bindsym $mod+Shift+9 move container to workspace 9 - bindsym $mod+Shift+0 move container to workspace 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 - bindsym $mod+space layout toggle all - - # 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 + +# start a terminal +bindsym $mod+Return exec "alacritty" + +# kill focused window +bindsym $mod+q kill + +# start launcher +bindsym $mod+p exec "wofi -G -S drun" + +# 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+Ctrl+r reload + +# lock sway +bindsym $mod+Ctrl+s exec "setsid -f waylock" + +# screenshot +bindsym $mod+Ctrl+u exec "grim ~/cloud/photos/screenshots/screenshot-"$(date +'%Y-%m-%d_%H-%M-%S')".png" + +# selection screenshot +bindsym $mod+Ctrl+i exec "grim -g "$(slurp)" ~/cloud/photos/screenshots/screenshot-"$(date +'%Y-%m-%d_%H-%M-%S')".png" + +# exit sway +bindsym $mod+Ctrl+e exit + +# MPD +bindsym --locked XF86AudioPrev exec "mpc prev" +bindsym --locked XF86AudioNext exec "mpc next" +bindsym --locked XF86AudioPlay exec "mpc toggle" +bindsym --locked XF86AudioStop exec "mpc stop" + +#### 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 +# or use $mod+[up|down|left|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 with the same, but add Shift +bindsym $mod+Ctrl+$left move left +bindsym $mod+Ctrl+$down move down +bindsym $mod+Ctrl+$up move up +bindsym $mod+Ctrl+$right move right +# ditto, with arrow keys +bindsym $mod+Ctrl+Left move left +bindsym $mod+Ctrl+Down move down +bindsym $mod+Ctrl+Up move up +bindsym $mod+Ctrl+Right move right + +#### Workspaces: + +# switch to workspace +bindsym $mod+1 workspace 1 +bindsym $mod+2 workspace 2 +bindsym $mod+3 workspace 3 +bindsym $mod+4 workspace 4 +bindsym $mod+5 workspace 5 +bindsym $mod+6 workspace 6 +bindsym $mod+7 workspace 7 +bindsym $mod+8 workspace 8 +bindsym $mod+9 workspace 9 +bindsym $mod+0 workspace 10 +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace 1 +bindsym $mod+Shift+2 move container to workspace 2 +bindsym $mod+Shift+3 move container to workspace 3 +bindsym $mod+Shift+4 move container to workspace 4 +bindsym $mod+Shift+5 move container to workspace 5 +bindsym $mod+Shift+6 move container to workspace 6 +bindsym $mod+Shift+7 move container to workspace 7 +bindsym $mod+Shift+8 move container to workspace 8 +bindsym $mod+Shift+9 move container to workspace 9 +bindsym $mod+Shift+0 move container to workspace 10 + +#### Layout: + +# 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 +bindsym $mod+space layout toggle all + +# 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: -# +# 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 @@ -233,6 +187,10 @@ mode "resize" { } bindsym $mod+r mode "resize" +# load per hostname key bindings +include "~/.config/sway/config.d/$(hostnamectl hostname)-bindsym" + +#### Windows: for_window [class="Nextcloud"] move container to workspace 10 for_window [app_id="com.nextcloud.desktopclient.nextcloud"] move container to workspace 10 @@ -267,6 +225,11 @@ for_window [app_id="nheko"] move container to workspace 9 for_window [class="Element"] move container to workspace 9 for_window [app_id="org.gnome.Fractal"] move container to workspace 9 -include "~/.config/sway/config.d/$(hostname)" +# load per hostname window settings +include "~/.config/sway/config.d/$(hostnamectl hostname)-window" + +# include system-wide configuration include /etc/sway/config.d/* + +# start target which pulls in other applications exec_always "systemctl --user start sway-session.target" -- cgit v1.2.3-70-g09d2