refactor: splitted sway config

This commit is contained in:
oxypomme
2026-01-04 13:50:29 +01:00
parent db748c7714
commit da10125fb2
23 changed files with 426 additions and 270 deletions

View File

@@ -48,7 +48,7 @@ profile Nomad {
output $INTERNAL enable
exec ~/.config/kanshi/lid.sh
exec tuned-adm profile balanced-battery
exec tuned-adm profile powersave
}
profile Home {
@@ -65,7 +65,7 @@ profile Home {
# Workspace 3 on right
exec swaymsg workspace 3, move workspace to "'Iiyama North America PL2470H 0x30363735'"
exec tuned-adm profile throughput-performance
exec tuned-adm profile balanced
}
profile Office {
@@ -80,5 +80,5 @@ profile Office {
# Workspace 3 on right
exec swaymsg workspace 3, move workspace to "'Hewlett Packard LA2405 CN41150LLN'"
exec tuned-adm profile throughput-performance
exec tuned-adm profile balanced
}

View File

@@ -1,265 +1,3 @@
# Default config for sway
#
# Copy this to ~/.config/sway/config and edit it to your liking.
#
# Read `man 5 sway` for a complete reference.
### Variables
#
# Logo key. Use Mod1 for Alt.
set $mod Mod4
# Home row direction keys, like vim
set $left h
set $down j
set $up k
set $right l
# Your preferred terminal emulator
# Recommends: foot
set $term foot
# 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.
# Recommends: rofi-wayland
set $rofi_cmd rofi -terminal '$term'
# Shows a combined list of the applications with desktop files and
# executables from PATH.
# TODO: add window with the next release of rofi-wayland
set $menu $rofi_cmd -show combi -combi-modes drun#emoji -modes combi#calc#window
### Notification Daemon
exec swaync
# Toggle control center
bindsym $mod+Shift+n exec swaync-client -t -swa
### Clipboard history
exec wl-paste --watch cliphist store
### Output configuration
#
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
# Requires: desktop-backgrounds-compat, swaybg, jxl-pixbuf-loader
output * bg ~/Images/Perso/Wallpapers/wave.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
# -> Managed by Kanshi (~/.config/kanshi/config)
# Watch lid changes
bindswitch --reload --locked lid:on output eDP-1 disable
bindswitch --reload --locked lid:off output eDP-1 enable
### Idle configuration
# -> Managed by swayidle (/usr/share/sway/config.d/90-swayidle.conf)
### Lock configuration
# -> Managed by swaylock (~/.config/swaylock/config)
bindsym $mod+Escape exec loginctl lock-session
# 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.
focus_follows_mouse no
input "type:keyboard" {
xkb_layout fr
xkb_numlock enabled
}
### Key bindings
#
# Basics:
#
# Start a terminal
bindsym $mod+Return exec $term
# Kill focused window
bindsym $mod+Shift+q kill
# Start your launcher
bindsym $mod+Space exec $menu
bindsym $mod+Shift+v exec $rofi_cmd -modi clipboard:~/.config/rofi/cliphist-rofi-img -show clipboard
# Start explorer
bindsym $mod+e exec thunar
# 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
# Exit sway (logs you out of your Wayland session)
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
#
# 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+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right
# Ditto, with arrow keys
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+ampersand workspace number 1
bindsym $mod+eacute workspace number 2
bindsym $mod+quotedbl workspace number 3
bindsym $mod+apostrophe workspace number 4
bindsym $mod+parenleft workspace number 5
bindsym $mod+minus workspace number 6
bindsym $mod+egrave workspace number 7
bindsym $mod+underscore workspace number 8
bindsym $mod+ccedilla workspace number 9
bindsym $mod+agrave workspace number 10
# Move focused container to workspace
bindsym $mod+Shift+ampersand move container to workspace number 1
bindsym $mod+Shift+eacute move container to workspace number 2
bindsym $mod+Shift+quotedbl move container to workspace number 3
bindsym $mod+Shift+apostrophe move container to workspace number 4
bindsym $mod+Shift+parenleft move container to workspace number 5
bindsym $mod+Shift+minus move container to workspace number 6
bindsym $mod+Shift+egrave move container to workspace number 7
bindsym $mod+Shift+underscore move container to workspace number 8
bindsym $mod+Shift+ccedilla move container to workspace number 9
bindsym $mod+Shift+agrave move container to 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+h 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+v floating toggle
# Swap focus between the tiling area and the floating area
bindsym $mod+Ctrl+v 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
# Ditto, with arrow keys
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"
##### Theme config
# Polar Night
set $nord0 #2e3440
set $nord1 #3b4252
set $nord2 #434c5e
set $nord3 #4c566a
# Snow Storm
set $nord4 #d8dee9
set $nord5 #e5e9f0
set $nord6 #eceff4
# Frost
set $nord7 #8fbcbb
set $nord8 #88c0d0
set $nord9 #81a1c1
set $nord10 #5e81ac
# Aurora
set $nord11 #bf616a
set $nord12 #d08770
set $nord13 #ebcb8b
set $nord14 #a3be8c
set $nord15 #b48ead
client.focused $nord0 $nord1 $nord4
client.focused_inactive $nord0 $nord0 $nord4
client.unfocused $nord0 $nord0 $nord4
client.urgent $nord0 $nord11 $nord4
client.background $nord0
# Include configs from 3 locations:
# - /usr/share/sway/config.d
# - /etc/sway/config.d
@@ -280,5 +18,5 @@ client.background $nord0
# Note the quoting, the $() and the arguments quoting. All the parts are equally
# important to make the magic work. And if you want to learn the secret behind
# the trick, it's all in the `wordexp(3)`.
#
include '$(/usr/libexec/sway/layered-include "/usr/share/sway/config.d/*.conf" "/etc/sway/config.d/*.conf" "${XDG_CONFIG_HOME:-$HOME/.config}/sway/config.d/*.conf")'

View File

@@ -0,0 +1,12 @@
# Logo key. Use Mod1 for Alt.
set $mod Mod4
# Terminal
set $term foot
# Menu command
set $rofi_cmd rofi -terminal '$term'
# TODO: add window with the next release of rofi-wayland
set $menu $rofi_cmd -show combi -combi-modes drun#emoji -modes combi#calc#window
# Clipboard manager
set $clip_menu $rofi_cmd -modi clipboard:~/.config/rofi/cliphist-rofi-img -show clipboard
# Browser
set $browser ~/AppImages/zen_browser.appimage

View File

@@ -0,0 +1,172 @@
# 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
bindsym {
# Toggle control center
$mod+Shift+n exec swaync-client -t -swa
# Lock configuration -> Managed by swaylock (~/.config/swaylock/config)
$mod+Escape exec loginctl lock-session
### Basic
# Start a terminal
$mod+Return exec $term
# Start explorer
$mod+e exec thunar
# Start browser
$mod+Shift+Return exec $browser
# Kill focused window
$mod+Shift+q kill
# Start your launcher
$mod+Space exec $menu
# Clipboard history
$mod+Shift+v exec $clip_menu
# Reload the configuration file
$mod+Shift+c reload
# Exit sway (logs you out of your Wayland session)
# $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
### Moving around
# Move your focus around
$mod+h focus left
$mod+j focus down
$mod+k focus up
$mod+l focus right
# Or use $mod+[up|down|left|right]
$mod+Left focus left
$mod+Down focus down
$mod+Up focus up
$mod+Right focus right
# Move the focused window with the same, but add Shift
$mod+Shift+h move left
$mod+Shift+j move down
$mod+Shift+k move up
$mod+Shift+l move right
# Ditto, with arrow keys
$mod+Shift+Left move left
$mod+Shift+Down move down
$mod+Shift+Up move up
$mod+Shift+Right move right
### Workspaces
# Note: workspaces can have any name you want, not just numbers.
# We just use 1-10 as the default.
# Switch to workspace
$mod+ampersand workspace number 1
$mod+1 workspace number 1
$mod+eacute workspace number 2
$mod+2 workspace number 2
$mod+quotedbl workspace number 3
$mod+3 workspace number 3
$mod+apostrophe workspace number 4
$mod+4 workspace number 4
$mod+parenleft workspace number 5
$mod+5 workspace number 5
$mod+minus workspace number 6
$mod+6 workspace number 6
$mod+egrave workspace number 7
$mod+7 workspace number 7
$mod+underscore workspace number 8
$mod+8 workspace number 8
$mod+ccedilla workspace number 9
$mod+9 workspace number 9
$mod+agrave workspace number 10
$mod+0 workspace number 10
# Move focused container to workspace
$mod+Shift+ampersand move container to workspace number 1
$mod+Shift+1 move container to workspace number 1
$mod+Shift+eacute move container to workspace number 2
$mod+Shift+2 move container to workspace number 2
$mod+Shift+quotedbl move container to workspace number 3
$mod+Shift+3 move container to workspace number 3
$mod+Shift+apostrophe move container to workspace number 4
$mod+Shift+4 move container to workspace number 4
$mod+Shift+parenleft move container to workspace number 5
$mod+Shift+5 move container to workspace number 5
$mod+Shift+minus move container to workspace number 6
$mod+Shift+6 move container to workspace number 6
$mod+Shift+egrave move container to workspace number 7
$mod+Shift+7 move container to workspace number 7
$mod+Shift+underscore move container to workspace number 8
$mod+Shift+8 move container to workspace number 8
$mod+Shift+ccedilla move container to workspace number 9
$mod+Shift+9 move container to workspace number 9
$mod+Shift+agrave move container to workspace number 10
$mod+Shift+0 move container to workspace number 10
### Layout stuff
# You can "split" the current object of your focus with
# $mod+b or $mod+v, for horizontal and vertical splits
# respectively.
# $mod+h splith
# $mod+v splitv
# Switch the current container between different layout styles
# $mod+s layout stacking
$mod+w layout tabbed
# $mod+e layout toggle split
# Make the current focus fullscreen
$mod+f fullscreen
# Toggle the current focus between tiling and floating mode
$mod+v floating toggle
# Swap focus between the tiling area and the floating area
$mod+Ctrl+v focus mode_toggle
# Move focus to the parent container
$mod+a focus parent
}
## 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 h resize shrink width 10px
bindsym j resize grow height 10px
bindsym k resize shrink height 10px
bindsym l resize grow width 10px
# Ditto, with arrow keys
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"

View File

@@ -0,0 +1,30 @@
# Polar Night
set $nord0 #2e3440
set $nord1 #3b4252
set $nord2 #434c5e
set $nord3 #4c566a
# Snow Storm
set $nord4 #d8dee9
set $nord5 #e5e9f0
set $nord6 #eceff4
# Frost
set $nord7 #8fbcbb
set $nord8 #88c0d0
set $nord9 #81a1c1
set $nord10 #5e81ac
# Aurora
set $nord11 #bf616a
set $nord12 #d08770
set $nord13 #ebcb8b
set $nord14 #a3be8c
set $nord15 #b48ead
client.focused $nord0 $nord1 $nord4
client.focused_inactive $nord0 $nord0 $nord4
client.unfocused $nord0 $nord0 $nord4
client.urgent $nord0 $nord11 $nord4
client.background $nord0
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
# Requires: desktop-backgrounds-compat, swaybg, jxl-pixbuf-loader
output * bg ~/Images/Perso/Wallpapers/cyberpunk-vaporwave-1.png fill

View File

@@ -0,0 +1,11 @@
#
# 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
# -> Managed by Kanshi (~/.config/kanshi/config)
# Display manager
exec_always kanshi

View File

@@ -0,0 +1,29 @@
#
# 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.
focus_follows_mouse no
input "type:keyboard" {
xkb_layout fr
xkb_numlock enabled
}
input "13364:2384:Keychron_Keychron_V5_Max" {
xkb_layout us
xkb_options "compose:rctrl"
}
input "13364:53296:Keychron__Keychron_Link__Keyboard" {
xkb_layout us
xkb_options "compose:rctrl"
}

View File

@@ -0,0 +1,3 @@
# Watch lid changes
bindswitch --reload --locked lid:on output eDP-1 disable
bindswitch --reload --locked lid:off output eDP-1 enable

View File

@@ -0,0 +1,6 @@
# Notification daemon
exec swaync
# Clipboard history
exec wl-paste --watch cliphist store
# NextCloud
exec ~/AppImages/client_de_synchronisation_nextcloud.appimage

View File

@@ -0,0 +1,12 @@
# Display PulseAudio volume control application (both GTK and Qt varieties)
# as a floating window.
for_window [app_id="pavucontrol"] {
floating enable
move position center
}
for_window [app_id="pavucontrol-qt"] {
floating enable
move position center
}

View File

@@ -0,0 +1,4 @@
for_window [app_id="lxqt-policykit-agent"] {
floating enable
move position center
}

View File

@@ -0,0 +1,3 @@
for_window [app_id="hyprland-share-picker"] {
floating enable
}

View File

@@ -0,0 +1,18 @@
# Key bindings for brightness control using `brightnessctl`.
# Displays a notification with the current value if /usr/bin/notify-send is available
#
# Brightness increase/decrease step can be customized by setting the `$brightness_step`
# variable to a numeric value before including the file.
#
# Requires: brightnessctl >= 0.5.1-11
# Recommends: libnotify
set $brightness_notification_cmd command -v notify-send >/dev/null && \
VALUE=$(brightnessctl --percentage get) && \
notify-send -e -h string:x-canonical-private-synchronous:brightness \
-h "int:value:$VALUE" -t 800 "Brightness: ${VALUE}%"
bindsym XF86MonBrightnessDown exec \
'STEP="$brightness_step" && brightnessctl -q set ${STEP:-5}%- && $brightness_notification_cmd'
bindsym XF86MonBrightnessUp exec \
'STEP="$brightness_step" && brightnessctl -q set +${STEP:-5}% && $brightness_notification_cmd'

View File

@@ -0,0 +1,17 @@
# Key bindings for media player control via MPRIS D-Bus interface
#
# Requires: playerctl
# Allow Play and Stop bindings even if the screen is locked
bindsym --locked {
XF86AudioPlay exec playerctl play-pause
XF86AudioStop exec playerctl stop
}
bindsym {
XF86AudioForward exec playerctl position +10
XF86AudioNext exec playerctl next
XF86AudioPause exec playerctl pause
XF86AudioPrev exec playerctl previous
XF86AudioRewind exec playerctl position -10
}

View File

@@ -12,9 +12,12 @@
bindsym {
# Capture the currently active output
Print exec grimshot copy output
Alt+Print exec grimshot copy output
$mod+Alt+Home exec grimshot copy output
# Capture the currently active window
Ctrl+Print exec grimshot save active
Ctrl+Print exec grimshot save active
$mod+Ctrl+Home exec grimshot save active
# Select and capture a custom rectangular area
Ctrl+Shift+Print exec grimshot copy area
Shift+Print exec grimshot copy area
$mod+Shift+Home exec grimshot copy area
}

View File

@@ -0,0 +1,21 @@
# Key bindings to control pipewire or pulseaudio volume with pactl.
# Displays a notification with the current state if /usr/bin/notify-send is available
#
# Volume increase/decrease step can be customized by setting the `$volume_step`
# variable to a numeric value before including the file.
# Maximum volume boost level can be set with the `$volume_limit` variable.
#
# Requires: pulseaudio-utils
# Recommends: libnotify
set $volume_helper_cmd /usr/libexec/sway/volume-helper
# Allow volume controls even if the screen is locked
bindsym --locked {
XF86AudioRaiseVolume exec \
$volume_helper_cmd --limit "$volume_limit" --increase "$volume_step"
XF86AudioLowerVolume exec \
$volume_helper_cmd --limit "$volume_limit" --decrease "$volume_step"
XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle && $volume_helper_cmd
XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
}

View File

@@ -0,0 +1,6 @@
# A special mode for passing any keybindings to the focused application
mode "passthrough" {
bindsym $mod+Pause mode default
}
bindsym $mod+Pause mode "passthrough"

View File

@@ -0,0 +1,10 @@
# Status Bar: waybar
#
# Read `man 5 sway-bar` for more information about this section.
# Read `man 5 waybar` for more information about the waybar instance style and layout configuration
#
# Requires: waybar
bar {
swaybar_command waybar
}

View File

@@ -0,0 +1,30 @@
# Idle and lock configuration
#
# This will lock your screen after 300 seconds of inactivity, then turn off
# your displays after another 60 seconds, and turn your screens back on when
# resumed. It will also lock your screen before your computer goes to sleep.
# The timeouts can be customized via `$lock_timeout` and `$screen_timeout`
# variables. For a predictable behavior, keep the `$screen_timeout` value
# lesser than the `$lock_timeout`.
#
# You can also lock the screen manually by running `loginctl lock-session` or
# add a binding for the command. Example:
# bindsym $mod+Shift+Escape exec loginctl lock-session
#
# Note that all swaylock customizations are handled via /etc/swaylock/config and
# can be overridden via $XDG_CONFIG_HOME/swaylock/config (~/.config/swaylock/config).
#
# Requires: swayidle
# Requires: swaylock
# Requires: /usr/bin/pkill, /usr/bin/pgrep
exec LT="$lock_timeout" ST="$screen_timeout" LT=${LT:-300} ST=${ST:-60} && \
swayidle -w \
timeout $LT 'swaylock -f' \
timeout $((LT + ST)) 'swaymsg "output * power off"' \
resume 'swaymsg "output * power on"' \
timeout $ST 'pgrep -xu "$USER" swaylock >/dev/null && swaymsg "output * power off"' \
resume 'pgrep -xu "$USER" swaylock >/dev/null && swaymsg "output * power on"' \
before-sleep 'swaylock -f' \
lock 'swaylock -f' \
unlock 'pkill -xu "$USER" -SIGUSR1 swaylock'

View File

@@ -0,0 +1,8 @@
# Start graphical authentication agent for PolicyKit.
#
# Certain applications may require this to request elevated privileges:
# GParted, virt-manager, anything that uses pkexec
#
# Requires: lxqt-policykit
exec /usr/libexec/lxqt-policykit-agent

View File

@@ -0,0 +1,14 @@
# Wait until a StatusNotifierItem tray implementation is available and
# process XDG autostart entries.
#
# This horror has to exist because
#
# - SNI spec mandates that if `IsStatusNotifierHostRegistered` is not set,
# the client should fall back to the Freedesktop System Tray specification
# (XEmbed).
# - There are actual implementations that take this seriously and implement
# a fallback *even if* StatusNotifierWatcher is already DBus-activated.
# - https://github.com/systemd/systemd/issues/3750
#
exec /usr/libexec/sway-systemd/wait-sni-ready && \
systemctl --user start sway-xdg-autostart.target

View File

@@ -0,0 +1,9 @@
# Create or update XDG user dir configuration
#
# See also:
# - /etc/xdg/autostart/xdg-user-dirs.desktop
# - https://github.com/systemd/systemd/issues/18791
#
# Recommends: xdg-user-dirs
exec /usr/bin/xdg-user-dirs-update

View File

@@ -1,4 +1,4 @@
image=~/Images/Perso/Wallpapers/wave.jpg
image=~/Images/Perso/Wallpapers/ed.jpg
scaling=fill
show-keyboard-layout