dotfiles/sway/config

252 lines
8.4 KiB
Plaintext

### 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
### bar
bar {
position top
swaybar_command waybar
}
### Output configuration
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
exec_always swayidle -w \
timeout 300 $lock_cmd \
timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
before-sleep $lock_cmd
### Key bindings
# Start a terminal
bindsym $mod+Return exec $term
# Kill focused window
bindsym $mod+Shift+q kill
# Start your launcher
bindsym $mod+d 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+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'
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 swaynag" \
-B "Reboot" "systemctl reboot" \
-B "Power off" "systemctl poweroff" \
#
# Moving around:
#
# Sound
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
# 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
# restart sway inplace
bindsym $mod+Shift+r restart
# split horizental and vertical
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
# 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 workspace 6:
bindsym $mod+Shift+minus move scratchpad
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"
bindsym $mod+alt+l exec $lock_cmd
# switch to workspace
bindsym $mod+ampersand workspace number $ws1
bindsym $mod+eacute workspace number $ws2
bindsym $mod+quotedbl workspace number $ws3
bindsym $mod+apostrophe workspace number $ws4
bindsym $mod+parenleft workspace number $ws5
#bindsym $mod+minus workspace number $ws6
bindsym $mod+egrave workspace number $ws7
bindsym $mod+underscore workspace number $ws8
bindsym $mod+ccedilla workspace number $ws9
bindsym $mod+agrave workspace number $ws10
# move focused container to workspace
bindsym $mod+Shift+ampersand move container to workspace number $ws1
bindsym $mod+Shift+eacute move container to workspace number $ws2
bindsym $mod+Shift+quotedbl move container to workspace number $ws3
bindsym $mod+Shift+apostrophe move container to workspace number $ws4
bindsym $mod+Shift+parenleft move container to workspace number $ws5
#bindsym $mod+Shift+6 move container to workspace number $ws6
bindsym $mod+Shift+egrave move container to workspace number $ws7
bindsym $mod+Shift+underscore move container to workspace number $ws8
bindsym $mod+Shift+ccedilla move container to workspace number $ws9
bindsym $mod+Shift+agrave move container to workspace number $ws10
# move to another screen
bindsym $mod+m move workspace to output right
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