From 60353ef07414a30593109b7e2fe808e878f50401 Mon Sep 17 00:00:00 2001 From: Vincent AROD Date: Thu, 7 Nov 2024 20:45:38 +0100 Subject: [PATCH] feat(sway): update from implementation on ubuntu 24.04 --- sway/config | 282 +++++++++++++++++++--------------------------------- 1 file changed, 104 insertions(+), 178 deletions(-) diff --git a/sway/config b/sway/config index 367a73b..795d3b9 100644 --- a/sway/config +++ b/sway/config @@ -1,76 +1,56 @@ -# Default config for sway -# -# Copy this to ~/.config/sway/config and edit it to your liking. -# -# Read `man 5 sway` for a complete reference. +### Mandatory actions +# required action to make xdg-portal and some app working +exec systemctl --user import-environment WAYLAND_DISPLAY DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP XDG_SESSION_TYPE SWAYSOCK I3SOCK XCURSOR_SIZE XCURSOR_THEME +exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway ### Variables -# + # Logo key. Use Mod1 for Alt. set $mod Mod4 +set $term alacritty +set $background_img /home/vincent/Pictures/mybackground.jpg +set $rofi_cmd rofi \ + -terminal '$term' +set $menu $rofi_cmd -show combi -combi-modes drun#run -modes combi +set $lock_cmd swaylock -f -c 000000 -i $background_img + +# set workspace +set $ws1 "1:  Perso" +set $ws2 "2:  Web" +set $ws3 "3:  Pro" +set $ws4 "4:  Terminals" +set $ws5 "5: 📧 Mail" +#set $ws6 "6:  Web (pro) " +set $ws7 "7: 🛠 IDE" +set $ws8 "8: 🎜 Music" +set $ws9 "9:  Unknown" +set $ws10 "10:  Misc" # 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 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. -# 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#run -modes combi +### bar +bar { + position top + swaybar_command waybar +} ### Output configuration -# -# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) -# Requires: desktop-backgrounds-compat, swaybg -output * bg /home/vincent/Pictures/mybackground.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 +output * bg $background_img fill +font pango:Source Code Pro Regular 10 +output HDMI-1 pos 0 0 res 1920x1080 +output DP-1 pos 0 0 res 1920x1080 +output eDP-1 pos 1920 0 res 1920x1200 ### Idle configuration -# -# Example configuration: -# exec_always swayidle -w \ - timeout 300 'swaylock -f -c 000000' \ + timeout 300 $lock_cmd \ timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \ - before-sleep 'swaylock -f -c 000000' -# -# 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. + before-sleep $lock_cmd ### Key bindings -# -# Basics: -# # Start a terminal bindsym $mod+Return exec $term @@ -95,7 +75,7 @@ bindsym $mod+Shift+c reload bindsym $mod+Shift+e exec swaynag -t warning \ -m "Exit i3? This will end your current X session." \ -B "Exit now" "swaymsg exit" \ - -B "Suspend" "systemctl suspend && pkill i3-nagbar" \ + -B "Suspend" "systemctl suspend && pkill swaynag" \ -B "Reboot" "systemctl reboot" \ -B "Power off" "systemctl poweroff" \ # @@ -122,45 +102,11 @@ 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 -# bindsym $mod+Shift+2 move container to workspace number 2 -# bindsym $mod+Shift+3 move container to workspace number 3 -# bindsym $mod+Shift+4 move container to workspace number 4 -# bindsym $mod+Shift+5 move container to workspace number 5 -# bindsym $mod+Shift+6 move container to workspace number 6 -# bindsym $mod+Shift+7 move container to workspace number 7 -# bindsym $mod+Shift+8 move container to workspace number 8 -# bindsym $mod+Shift+9 move container to workspace number 9 -# bindsym $mod+Shift+0 move container to workspace number 10 -# We use variables to avoid repeating the names in multiple places. -# reload the configuration file -#bindsym $mod+Shift+c reload -# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +# restart sway inplace bindsym $mod+Shift+r restart - # 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. + +# split horizental and vertical bindsym $mod+b splith bindsym $mod+v splitv @@ -181,17 +127,9 @@ 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 +# Scratchpad workspace 6: +bindsym $mod+Shift+minus move scratchpad +bindsym $mod+minus scratchpad show # # Resizing containers: # @@ -216,80 +154,7 @@ mode "resize" { bindsym Escape mode "default" } bindsym $mod+r mode "resize" - -# Include configs from 3 locations: -# - /usr/share/sway/config.d -# - /etc/sway/config.d -# - $XDG_CONFIG_HOME/sway/config.d ($HOME/.config/sway/config.d) -# -# If multiple directories contain the files with the same name, the later -# directory takes precedence; `$XDG_CONFIG_HOME/sway/config.d/20-swayidle.conf` -# will always be loaded instead of `/usr/share/sway/config.d/20-swayidle.conf` -# or `/etc/sway/config.d/20-swayidle.conf` -# -# This mechanism permits overriding our default configuration per-system -# (/etc) or per-user ($XDG_CONFIG_HOME) basis. Just create the file you -# want to modify/override in the higher-level directory. -# -# For example, to disable the default bar from Fedora configs, you'll need to -# $ echo -n > "$HOME/.config/sway/config.d/90-bar.conf" -# -# 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")' - -# or input -input "type:keyboard" { - xkb_layout fr - xkb_variant oss - xkb_numlock enabled -} -input "type:touchpad" { - left_handed disabled - tap enabled - natural_scroll disabled - dwt enabled - accel_profile "flat" # disable mouse acceleration (enabled by default; to set it manually, use "adaptive" instead of "flat") - pointer_accel 0.5 # set mouse sensitivity (between -1 and 1) -} -font pango:Source Code Pro Regular 10 - -# from grafikart video -# setting pixel remove title ?? -for_window [class="^.*"] border pixel 2 -for_window [class="^.*"] title_format " %title" -gaps inner 5 -smart_gaps on -smart_borders on - -bindsym $mod+alt+l exec swaylock -# Firefox popup broken -# fix from this https://www.reddit.com/r/linux4noobs/comments/1b3og3b/firefox_alert_popups_on_i3wm_are_tiled/ -for_window [window_role="alert"] floating enable -no_focus [window_role="alert"] -# floating windows -for_window [class="Pavucontrol"] floating enable -for_window [class="KeePassXC"] floating enable -for_window [class="Gnome-screenshot"] floating enable -for_window [class="Gvim"] floating enable -for_window [class="Gnome-calculator"] floating enable -for_window [title="Incrustation vidéo"] floating enable - -for_window [class="Alacritty"] border pixel 0 -# set workspace -set $ws1 "1:  Perso" -set $ws2 "2:  Web" -set $ws3 "3:  Pro" -set $ws4 "4:  Terminals" -set $ws5 "5: 📧 Mail" -#set $ws6 "6:  Web (pro) " -set $ws7 "7: 🛠 IDE" -set $ws8 "8: 🎜 Music" -set $ws9 "9:  Unknown" -set $ws10 "10:  Misc" - +bindsym $mod+alt+l exec $lock_cmd # switch to workspace bindsym $mod+ampersand workspace number $ws1 bindsym $mod+eacute workspace number $ws2 @@ -319,3 +184,64 @@ bindsym $mod+u move workspace to output up # screenshot bindsym --release Ctrl+Shift+Print exec grimshot copy area bindsym --release $mod+Ctrl+t exec killall swayidle + +# Include configs from 3 locations: +# - /usr/share/sway/config.d +# - /etc/sway/config.d +# - $XDG_CONFIG_HOME/sway/config.d ($HOME/.config/sway/config.d) +# +# If multiple directories contain the files with the same name, the later +# directory takes precedence; `$XDG_CONFIG_HOME/sway/config.d/20-swayidle.conf` +# will always be loaded instead of `/usr/share/sway/config.d/20-swayidle.conf` +# or `/etc/sway/config.d/20-swayidle.conf` +# +# This mechanism permits overriding our default configuration per-system +# (/etc) or per-user ($XDG_CONFIG_HOME) basis. Just create the file you +# want to modify/override in the higher-level directory. +# +# For example, to disable the default bar from Fedora configs, you'll need to +# $ echo -n > "$HOME/.config/sway/config.d/90-bar.conf" +# +# 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")' + +### Inputs +input "type:keyboard" { + xkb_layout fr + xkb_variant oss + xkb_numlock enabled +} +input "type:touchpad" { + left_handed disabled + tap enabled + natural_scroll disabled + dwt enabled + accel_profile "flat" # disable mouse acceleration (enabled by default; to set it manually, use "adaptive" instead of "flat") + pointer_accel 0.5 # set mouse sensitivity (between -1 and 1) +} + +# from grafikart video +# setting pixel remove title ?? +for_window [class="^.*"] border pixel 2 +for_window [class="^.*"] title_format " %title" +gaps inner 5 +smart_gaps on +smart_borders on + +# Firefox popup broken +# fix from this https://www.reddit.com/r/linux4noobs/comments/1b3og3b/firefox_alert_popups_on_i3wm_are_tiled/ +for_window [window_role="alert"] floating enable +no_focus [window_role="alert"] +# floating windows +for_window [class="Pavucontrol"] floating enable +for_window [class="KeePassXC"] floating enable +for_window [class="Gnome-screenshot"] floating enable +for_window [class="Gvim"] floating enable +for_window [class="Gnome-calculator"] floating enable +for_window [title="Incrustation vidéo"] floating enable + +for_window [class="Alacritty"] border pixel 0 +