From da10125fb2e3cf0a4aae71c76913e4737a00e532 Mon Sep 17 00:00:00 2001 From: oxypomme Date: Sun, 4 Jan 2026 13:50:29 +0100 Subject: [PATCH] refactor: splitted sway config --- .config/kanshi/config | 6 +- .config/sway/config | 264 +----------------- .config/sway/config.d/00-vars.conf | 12 + .config/sway/config.d/01-keybinds.conf | 172 ++++++++++++ .config/sway/config.d/01-theme.conf | 30 ++ .config/sway/config.d/02-display.conf | 11 + .config/sway/config.d/02-input.conf | 29 ++ .config/sway/config.d/02-lid.conf | 3 + .config/sway/config.d/02-startup.conf | 6 + .../sway/config.d/50-rules-pavucontrol.conf | 12 + .../config.d/50-rules-policykit-agent.conf | 4 + .../sway/config.d/50-rules-screenpicker.conf | 3 + .../sway/config.d/60-bindings-brightness.conf | 18 ++ .config/sway/config.d/60-bindings-media.conf | 17 ++ .../sway/config.d/60-bindings-screenshot.conf | 9 +- .config/sway/config.d/60-bindings-volume.conf | 21 ++ .../sway/config.d/65-mode-passthrough.conf | 6 + .config/sway/config.d/90-bar.conf | 10 + .config/sway/config.d/90-swayidle.conf | 30 ++ .../95-autostart-policykit-agent.conf | 8 + .../config.d/95-xdg-desktop-autostart.conf | 14 + .config/sway/config.d/95-xdg-user-dirs.conf | 9 + .config/swaylock/config | 2 +- 23 files changed, 426 insertions(+), 270 deletions(-) create mode 100644 .config/sway/config.d/00-vars.conf create mode 100644 .config/sway/config.d/01-keybinds.conf create mode 100644 .config/sway/config.d/01-theme.conf create mode 100644 .config/sway/config.d/02-display.conf create mode 100644 .config/sway/config.d/02-input.conf create mode 100644 .config/sway/config.d/02-lid.conf create mode 100644 .config/sway/config.d/02-startup.conf create mode 100644 .config/sway/config.d/50-rules-pavucontrol.conf create mode 100644 .config/sway/config.d/50-rules-policykit-agent.conf create mode 100644 .config/sway/config.d/50-rules-screenpicker.conf create mode 100644 .config/sway/config.d/60-bindings-brightness.conf create mode 100644 .config/sway/config.d/60-bindings-media.conf create mode 100644 .config/sway/config.d/60-bindings-volume.conf create mode 100644 .config/sway/config.d/65-mode-passthrough.conf create mode 100644 .config/sway/config.d/90-bar.conf create mode 100644 .config/sway/config.d/90-swayidle.conf create mode 100644 .config/sway/config.d/95-autostart-policykit-agent.conf create mode 100644 .config/sway/config.d/95-xdg-desktop-autostart.conf create mode 100644 .config/sway/config.d/95-xdg-user-dirs.conf diff --git a/.config/kanshi/config b/.config/kanshi/config index 154227f..a3d0534 100644 --- a/.config/kanshi/config +++ b/.config/kanshi/config @@ -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 } diff --git a/.config/sway/config b/.config/sway/config index f8ac8f5..a02b310 100644 --- a/.config/sway/config +++ b/.config/sway/config @@ -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")' diff --git a/.config/sway/config.d/00-vars.conf b/.config/sway/config.d/00-vars.conf new file mode 100644 index 0000000..c1e93ba --- /dev/null +++ b/.config/sway/config.d/00-vars.conf @@ -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 \ No newline at end of file diff --git a/.config/sway/config.d/01-keybinds.conf b/.config/sway/config.d/01-keybinds.conf new file mode 100644 index 0000000..96c7411 --- /dev/null +++ b/.config/sway/config.d/01-keybinds.conf @@ -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" \ No newline at end of file diff --git a/.config/sway/config.d/01-theme.conf b/.config/sway/config.d/01-theme.conf new file mode 100644 index 0000000..ad825a9 --- /dev/null +++ b/.config/sway/config.d/01-theme.conf @@ -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 \ No newline at end of file diff --git a/.config/sway/config.d/02-display.conf b/.config/sway/config.d/02-display.conf new file mode 100644 index 0000000..aaa96f5 --- /dev/null +++ b/.config/sway/config.d/02-display.conf @@ -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 \ No newline at end of file diff --git a/.config/sway/config.d/02-input.conf b/.config/sway/config.d/02-input.conf new file mode 100644 index 0000000..19a0081 --- /dev/null +++ b/.config/sway/config.d/02-input.conf @@ -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" +} \ No newline at end of file diff --git a/.config/sway/config.d/02-lid.conf b/.config/sway/config.d/02-lid.conf new file mode 100644 index 0000000..cabd4e7 --- /dev/null +++ b/.config/sway/config.d/02-lid.conf @@ -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 \ No newline at end of file diff --git a/.config/sway/config.d/02-startup.conf b/.config/sway/config.d/02-startup.conf new file mode 100644 index 0000000..e981c81 --- /dev/null +++ b/.config/sway/config.d/02-startup.conf @@ -0,0 +1,6 @@ +# Notification daemon +exec swaync +# Clipboard history +exec wl-paste --watch cliphist store +# NextCloud +exec ~/AppImages/client_de_synchronisation_nextcloud.appimage \ No newline at end of file diff --git a/.config/sway/config.d/50-rules-pavucontrol.conf b/.config/sway/config.d/50-rules-pavucontrol.conf new file mode 100644 index 0000000..cb2ea43 --- /dev/null +++ b/.config/sway/config.d/50-rules-pavucontrol.conf @@ -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 +} diff --git a/.config/sway/config.d/50-rules-policykit-agent.conf b/.config/sway/config.d/50-rules-policykit-agent.conf new file mode 100644 index 0000000..88ff754 --- /dev/null +++ b/.config/sway/config.d/50-rules-policykit-agent.conf @@ -0,0 +1,4 @@ +for_window [app_id="lxqt-policykit-agent"] { + floating enable + move position center +} diff --git a/.config/sway/config.d/50-rules-screenpicker.conf b/.config/sway/config.d/50-rules-screenpicker.conf new file mode 100644 index 0000000..fea162f --- /dev/null +++ b/.config/sway/config.d/50-rules-screenpicker.conf @@ -0,0 +1,3 @@ +for_window [app_id="hyprland-share-picker"] { + floating enable +} diff --git a/.config/sway/config.d/60-bindings-brightness.conf b/.config/sway/config.d/60-bindings-brightness.conf new file mode 100644 index 0000000..5c1e808 --- /dev/null +++ b/.config/sway/config.d/60-bindings-brightness.conf @@ -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' diff --git a/.config/sway/config.d/60-bindings-media.conf b/.config/sway/config.d/60-bindings-media.conf new file mode 100644 index 0000000..1e2f59f --- /dev/null +++ b/.config/sway/config.d/60-bindings-media.conf @@ -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 +} diff --git a/.config/sway/config.d/60-bindings-screenshot.conf b/.config/sway/config.d/60-bindings-screenshot.conf index 18d970b..1b88466 100644 --- a/.config/sway/config.d/60-bindings-screenshot.conf +++ b/.config/sway/config.d/60-bindings-screenshot.conf @@ -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 } diff --git a/.config/sway/config.d/60-bindings-volume.conf b/.config/sway/config.d/60-bindings-volume.conf new file mode 100644 index 0000000..85575f2 --- /dev/null +++ b/.config/sway/config.d/60-bindings-volume.conf @@ -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 +} diff --git a/.config/sway/config.d/65-mode-passthrough.conf b/.config/sway/config.d/65-mode-passthrough.conf new file mode 100644 index 0000000..ce298f8 --- /dev/null +++ b/.config/sway/config.d/65-mode-passthrough.conf @@ -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" diff --git a/.config/sway/config.d/90-bar.conf b/.config/sway/config.d/90-bar.conf new file mode 100644 index 0000000..b22145c --- /dev/null +++ b/.config/sway/config.d/90-bar.conf @@ -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 +} diff --git a/.config/sway/config.d/90-swayidle.conf b/.config/sway/config.d/90-swayidle.conf new file mode 100644 index 0000000..2f37112 --- /dev/null +++ b/.config/sway/config.d/90-swayidle.conf @@ -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' diff --git a/.config/sway/config.d/95-autostart-policykit-agent.conf b/.config/sway/config.d/95-autostart-policykit-agent.conf new file mode 100644 index 0000000..10b529b --- /dev/null +++ b/.config/sway/config.d/95-autostart-policykit-agent.conf @@ -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 diff --git a/.config/sway/config.d/95-xdg-desktop-autostart.conf b/.config/sway/config.d/95-xdg-desktop-autostart.conf new file mode 100644 index 0000000..56cc4fb --- /dev/null +++ b/.config/sway/config.d/95-xdg-desktop-autostart.conf @@ -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 diff --git a/.config/sway/config.d/95-xdg-user-dirs.conf b/.config/sway/config.d/95-xdg-user-dirs.conf new file mode 100644 index 0000000..e7d5beb --- /dev/null +++ b/.config/sway/config.d/95-xdg-user-dirs.conf @@ -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 diff --git a/.config/swaylock/config b/.config/swaylock/config index 52c2aaa..ab6e1e9 100644 --- a/.config/swaylock/config +++ b/.config/swaylock/config @@ -1,4 +1,4 @@ -image=~/Images/Perso/Wallpapers/wave.jpg +image=~/Images/Perso/Wallpapers/ed.jpg scaling=fill show-keyboard-layout