aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Runge <dave@sleepmap.de>2023-12-03 13:27:06 +0100
committerDavid Runge <dave@sleepmap.de>2023-12-03 13:27:06 +0100
commitd825d2377445545f68827fa6b0981d6c9f90070b (patch)
tree2882f7873baa461ddb56f39727f086444eb9fd98
parentc56bf8c4bf567727e2177691407bbd306f6cb36f (diff)
downloaddotfiles-d825d2377445545f68827fa6b0981d6c9f90070b.tar.gz
dotfiles-d825d2377445545f68827fa6b0981d6c9f90070b.tar.bz2
dotfiles-d825d2377445545f68827fa6b0981d6c9f90070b.tar.xz
dotfiles-d825d2377445545f68827fa6b0981d6c9f90070b.zip
sway: Consolidate configuration for more hosts
Flatten config structure. Add includes for all sub-configuration. Remove unnecessary comments. Signed-off-by: David Runge <dave@sleepmap.de>
-rw-r--r--.config/sway/config329
1 files 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"