# This file has been auto-generated by i3-config-wizard(1). # It will not be overwritten, so edit it as you like. # # Should you change your keyboard layout some time, delete # this file and re-run i3-config-wizard(1). # # xmodmap -pke # xev # i3 config file (v4) # # Please see https://i3wm.org/docs/userguide.html for a complete reference! set $mod Mod1 # Font for window titles. Will also be used by the bar unless a different font # is used in the bar {} block below. #font pango:Noto Sans Bold 9 #font pango:Droid Sans 9 #font pango:FontAwesome 8, pango: Droid Sans Mono 8 #font pango:System San Francisco Display 10 #font pango:System San Francisco Display 6 #font pango:monospace 8 set $bg-color #2f343f set $inactive-bg-color #2f343f set $text-color #f3f4f5 set $inactive-text-color #676E7D set $urgent-bg-color #E53935 #font pango:Terminus (TTF) Bold 12 #font pango:Hack Nerd Font 13 #font pango:Hack 12 font pango:monospace 12 # window colors # border background text indicat> client.focused $bg-color $bg-color $text-color #00ff00 client.unfocused $inactive-bg-color $inactive-bg-color $inactive-text-color #00ff00 client.focused_inactive $inactive-bg-color $inactive-bg-color $inactive-text-color #00ff00 client.urgent $urgent-bg-color $urgent-bg-color $text-color #00ff00 # This font is widely installed, provides lots of unicode glyphs, right-to-left # text rendering and scalability on retina/hidpi displays (thanks to pango). #font pango:DejaVu Sans Mono 8 # Before i3 v4.8, we used to recommend this one as the default: # font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 # The font above is very space-efficient, that is, it looks good, sharp and # clear in small sizes. However, its unicode glyph coverage is limited, the old # X core fonts rendering does not support right-to-left and this being a bitmap # font, it doesn’t scale on retina/hidpi displays. # Use Mouse+$mod to drag floating windows to their wanted position floating_modifier $mod workspace_auto_back_and_forth yes force_display_urgency_hint 0 ms focus_on_window_activation urgent # start a terminal bindsym $mod+Return exec wezterm # kill focused window bindsym $mod+Shift+q kill # Menu #bindsym $mod+d exec rofi -show run -lines 3 -bw 1 -font "Cantarell 18" -opacity "75" bindsym $mod+d exec fuzzel bindsym $mod+Shift+d exec clipman pick --tool=CUSTOM --tool-args="fuzzel -d" bindsym $mod+y exec ~/.config/fuzzel/fuzzel-pass.sh #bindsym $mod+shift+y exec passdmenu -P -x clipboard #bindsym $mod+d exec wofi --show run --width 900 --height 200 #bindsym $mod+d exec rofi -show run -lines 3 -eh 2 -width 100 -padding 800 -opacity "85" -bw 0 -bc "$bg-color" -bg "$bg-color" -fg "$text-color" -hlbg "$bg-color" -hlfg "#9575cd" -font "System San Francisco Display 18" #bindsym $mod+d exec --no-startup-id i3-dmenu-desktop --dmenu='rofi -i -dmenu -font "snap 12" -bg "#222222" -fg "#888888" -hlbg "#285577" -hlfg "#ffffff" -opacity 90 -m 0 -location 2' # start dmenu (a program launcher) #bindsym $mod+d exec dmenu_run #bindsym $mod+d exec j4-dmenu-desktop --dmenu='bemenu -i --nb "#3f3f3f" --nf "#dcdccc" --fn "pango:DejaVu Sans Mono 12"' --term='termite' # There also is the (new) i3-dmenu-desktop which only displays applications # shipping a .desktop file. It is a wrapper around dmenu, so you need that # installed. # bindsym $mod+d exec --no-startup-id i3-dmenu-desktop # change focus bindsym $mod+j focus left bindsym $mod+k focus down bindsym $mod+l focus up bindsym $mod+odiaeresis focus right # alternatively, you can use the cursor keys: bindsym $mod+Left focus left bindsym $mod+Down focus down bindsym $mod+Up focus up bindsym $mod+Right focus right # move focused window bindsym $mod+Shift+j move left bindsym $mod+Shift+k move down bindsym $mod+Shift+l move up bindsym $mod+Shift+odiaeresis move right # alternatively, you can use the cursor 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 # split in horizontal orientation bindsym $mod+h split h # split in vertical orientation bindsym $mod+v split v # enter fullscreen mode for the focused container bindsym $mod+f fullscreen toggle # change container layout (stacked, tabbed, toggle split) bindsym $mod+s layout stacking bindsym $mod+w layout tabbed bindsym $mod+e layout toggle split # toggle tiling / floating bindsym $mod+Shift+space floating toggle # change focus between tiling / floating windows bindsym $mod+space focus mode_toggle # focus the parent container bindsym $mod+a focus parent # focus the child container #bindsym $mod+d focus child # Define names for default workspaces for which we configure key bindings later on. # We use variables to avoid repeating the names in multiple places. #set $ws1 "1: Terminals " #set $ws2 "2: Browser " #set $ws3 "3: Mail " #set $ws4 "4: Office " #set $ws5 "5: Music " #set $ws6 "6: Speakprogram " #set $ws7 "7: IDE " #set $ws8 "8: Steam " #set $ws9 "9: Chat " #set $ws10 "10: Others " bindsym --no-repeat $mod+1 workspace number 1; exec "echo 1 > /tmp/sov" bindsym --no-repeat $mod+2 workspace number 2; exec "echo 1 > /tmp/sov" bindsym --no-repeat $mod+3 workspace number 3; exec "echo 1 > /tmp/sov" bindsym --no-repeat $mod+4 workspace number 4; exec "echo 1 > /tmp/sov" bindsym --no-repeat $mod+5 workspace number 5; exec "echo 1 > /tmp/sov" bindsym --no-repeat $mod+6 workspace number 6; exec "echo 1 > /tmp/sov" bindsym --no-repeat $mod+7 workspace number 7; exec "echo 1 > /tmp/sov" bindsym --no-repeat $mod+8 workspace number 8; exec "echo 1 > /tmp/sov" bindsym --no-repeat $mod+9 workspace number 9; exec "echo 1 > /tmp/sov" bindsym --no-repeat $mod+0 workspace number 10; exec "echo 1 > /tmp/sov" bindsym --release $mod+1 exec "echo 0 > /tmp/sov" bindsym --release $mod+2 exec "echo 0 > /tmp/sov" bindsym --release $mod+3 exec "echo 0 > /tmp/sov" bindsym --release $mod+4 exec "echo 0 > /tmp/sov" bindsym --release $mod+5 exec "echo 0 > /tmp/sov" bindsym --release $mod+6 exec "echo 0 > /tmp/sov" bindsym --release $mod+7 exec "echo 0 > /tmp/sov" bindsym --release $mod+8 exec "echo 0 > /tmp/sov" bindsym --release $mod+9 exec "echo 0 > /tmp/sov" bindsym --release $mod+0 exec "echo 0 > /tmp/sov" 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 bindsym $mod+Ctrl+1 [workspace="1"] move workspace to output current bindsym $mod+Ctrl+2 [workspace="2"] move workspace to output current bindsym $mod+Ctrl+3 [workspace="3"] move workspace to output current bindsym $mod+Ctrl+4 [workspace="4"] move workspace to output current bindsym $mod+Ctrl+5 [workspace="5"] move workspace to output current bindsym $mod+Ctrl+6 [workspace="6"] move workspace to output current bindsym $mod+Ctrl+7 [workspace="7"] move workspace to output current bindsym $mod+Ctrl+8 [workspace="8"] move workspace to output current bindsym $mod+Ctrl+9 [workspace="9"] move workspace to output current bindsym $mod+Ctrl+0 [workspace="10"] move workspace to output current # reload the configuration file bindsym $mod+Shift+c reload # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) bindsym $mod+Shift+r 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' # resize window (you can also use the mouse for that) mode "resize" { # These bindings trigger as soon as you enter the resize mode # Pressing left will shrink the window’s width. # Pressing right will grow the window’s width. # Pressing up will shrink the window’s height. # Pressing down will grow the window’s height. bindsym j resize shrink width 10 px or 10 ppt bindsym k resize grow height 10 px or 10 ppt bindsym l resize shrink height 10 px or 10 ppt bindsym odiaeresis resize grow width 10 px or 10 ppt # same bindings, but for the arrow keys bindsym Left resize shrink width 10 px or 10 ppt bindsym Down resize grow height 10 px or 10 ppt bindsym Up resize shrink height 10 px or 10 ppt bindsym Right resize grow width 10 px or 10 ppt # back to normal: Enter or Escape or $mod+r bindsym Return mode "default" bindsym Escape mode "default" bindsym $mod+r mode "default" } bindsym $mod+r mode "resize" # Start i3bar to display a workspace bar (plus the system information i3status # finds out, if available) #client.focused #81a2be #81a2be #1d1f21 #282a2e #client.focused_inactive #373b41 #373b41 #969896 #282a2e #client.unfocused #282a2e #282a2e #969896 #282a2e #client.urgent #373b41 #cc6666 #ffffff #cc6666 # Status-Bar #exec_always --no-startup-id $HOME/.config/polybar/launch.sh --cuts # bar { # swaybar_command /usr/bin/swaybar # #font pango:Terminus (TTF) Bold 12 # #font pango:Hack Nerd Font 13 # font pango:Hack Bold 14 # #font pango:DejaVu Sans Mono, FontAwesome 12 # #font pango:MesloLGM Nerd Font Bold 13 # position top # status_command i3status-rs ~/.config/i3status-rust/config.toml # # https://fontawesome.com/v4/cheatsheet/ # separator_symbol  # colors { # background $bg-color # statusline #263238 # separator #757575 # #colors outline background number # active_workspace #009688 #009688 #eceff1 # focused_workspace $bg-color $bg-color $text-color # inactive_workspace $inactive-bg-color $inactive-bg-color $inactive-text-color # urgent_workspace $urgent-bg-color $urgent-bg-color $text-color # } # } # Read `man 5 sway-bar` for more information about this section. bar { swaybar_command waybar } input * { dwt enabled tap enabled natural_scroll disabled middle_emulation enabled # Flat or adaptative accel_profile adaptive # Between -1.0 and 1.0 pointer_accel 0.4 repeat_rate 100 repeat_delay 250 xkb_layout de xkb_variant nodeadkeys xkb_options grp:alt_space_toggle } seat seat0 xcursor_theme capitaine-cursors 16 # display resoulution output eDP-1 pos 0 0 res 1920x1080 exec_always { gsettings set org.gnome.desktop.interface cursor-theme capitaine-cursors gsettings set org.gnome.desktop.interface gtk-theme Arc-Dark gsettings set org.gnome.desktop.interface icon-theme Papirus-Dark gsettings set org.gnome.desktop.wm.preferences theme "Arc-Dark" } # background output "*" background ~/desktop-bilder/background.jpg fill # 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. # Benutzerdefiniert # Fenster zu einem Scratchpad bindsym $mod+Shift+minus move scratchpad # Zeige das scratcpad window bindsym $mod+minus scratchpad show # Starte Programme über Tastaurkombination # Press $mod+o followed by either f to launch firefox, # Escape or Return to the default mode, respectively. # https://github.com/ferdium/ferdium-app/issues/32 set $mode_launcher Launch: [f]irefox [t]hunderbird [p]avucontrol [w]displays file[m]anager f[e]rdium bindsym $mod+o mode "$mode_launcher" mode "$mode_launcher" { bindsym f exec firefox, mode "default" bindsym t exec thunderbird, mode "default" bindsym p exec pavucontrol-qt, mode "default" bindsym w exec wdisplays, mode "default" bindsym m exec pcmanfm-qt, mode "default" bindsym e exec ferdium --ozone-platform=wayland --enable-features=UseOzonePlatform,WebRTCPipeWireCapturer, mode "default" bindsym Escape mode "default" bindsym Return mode "default" } bindsym $mod+b exec firefox bindsym $mod+t exec pcmanfm-qt bindsym $mod+shift+t exec thunderbird bindsym $mod+n exec wezterm start nmtui #bindsym $mod+o exec termite -e /usr/bin/alsamixer #bindsym $mod+y exec alacritty -e ncmpcpp # Alsa-Steuerung & Lautstärke einstellen #bindsym $mod+i exec amixer set Speaker 5%+ #bindsym $mod+u exec amixer set Speaker 5%- bindsym $mod+i exec pamixer --allow-boost -i 5 bindsym $mod+shift+i exec pamixer --allow-boost -d 5 bindsym $mod+shift+v exec "if pamixer --get-mute; then pamixer --unmute; else pamixer --mute; fi" #bindsym $mod+shift+v exec amixer set Speaker toggle #bindsym $mod+shift+h exec amixer set Capture toggle # https://i3wm.org/docs/userguide.html#assign_workspace # xprop # Einstellungen für spezielle Programme (exact match instead of substring) # Remmina (swaymsg -t get_tree) for_window [app_id="org.remmina.Remmina"] floating enable for_window [app_id="org.remmina.Remmina"] resize set 1000 600 for_window [app_id="foot"] border pixel 1 for_window [app_id="iwgtk"] floating enable for_window [app_id="blueman-manager"] floating enable for_window [app_id="blueman-manager"] resize set 1000 600 for_window [app_id="pavucontrol"] floating enable for_window [app_id="pavucontrol"] resize set 1000 600 for_window [app_id="org.gnome.Nautilus"] floating enable for_window [app_id="pcmanfm-qt"] floating enable for_window [app_id="pcmanfm-qt"] resize set 1000 600 for_window [app_id="gnome-system-monitor"] floating enable; resize shrink down 100px; resize shrink up 100px for_window [app_id="wdisplays"] floating enable for_window [app_id="wdisplays"] resize set 1000 600 for_window [app_id="pavucontrol-qt"] floating enable for_window [app_id="pavucontrol-qt"] resize set 1000 600 for_window [app_id="lxqt-archiver"] floating enable for_window [app_id="lxqt-archiver"] resize set 1000 600 for_window [app_id="imv"] floating enable for_window [app_id="pamac-manager"] floating enable for_window [app_id="lxqt-policykit-agent"] floating enable for_window [class="(?i)vlc"] floating disable border none for_window [class="(?i)virtualbox"] floating enable border normal for_window [class="(?i)claws-mail"] floating enable border normal for_window [class="mplayer"] floating disable border none for_window [title="Wicd"] floating enable border normal for_window [title="galculator"] floating enable border normal for_window [title="Verbindungsinformationen"] floating enable border normal for_window [title="Lautstärkeregler"] floating enable border normal for_window [title="Freundesliste"] floating enable border normal # Einstellungen Fensterverhalten für bestimmte Programme im Terminal for_window [class="Alpine"] floating enable border none for_window [class="calcurse"] floating enable border none for_window [class="newsbeuter"] floating enable border none for_window [class="weechat"] floating enable border none # Starter für Progs im Terminal bindsym $mod+F1 exec wezterm start arch-install bindsym $mod+F2 exec wezterm start bashtop bindsym $mod+F3 exec wezterm start nmtui # assign special properties for_window [class="^Pavucontrol$"] floating enable for_window [title="MonoDevelop External Console"] floating enable for_window [class="^Shutter$"] floating enable # Enables floating windows of the chrome extension "Videostream for Chromecast" for_window [instance="^crx_cnciopoikihiagdjbjpnocolokfelagl$"] floating enable # The Chrome "Page Unresponsive" dialog is not floating... for_window [title="Page Unresponsive"] floating enable # Share your screen from Google Cast extension for_window [title="Share your screen - Google Cast"] floating enable # TeamSpeak new features window for_window [class="^TeamSpeak 3$" title="^New TeamSpeak Features"] floating enable # Android Device Monitor startup window for_window [class="^Monitor$" instance="^Monitor$" title="^Monitor$"] floating enable # chromeIPass "No logins found." window for_window [title="^chromeIPass$"] floating enable # Jetbrains for_window [class="^com-intellij-updater-Runner$" title="^Update$"] floating enable for_window [instance="^sun-awt-X11-XDialogPeer$" title="^Complete Installation$"] floating enable # Unity for_window [class="^Unity$" title="^Starting Unity...$"] floating enable for_window [class="^Unity$" title="^Hold On$"] floating enable for_window [class="^Unity$" title="^Preparing Package$"] floating enable for_window [class="^Unity$" title="^Importing Package$"] floating enable # https://github.com/ValveSoftware/steam-for-linux/issues/1040 for_window [class="^Steam$" title="^Friends$"] floating enable for_window [class="^Steam$" title="Steam - News"] floating enable for_window [class="^Steam$" title=".* - Chat"] floating enable for_window [class="^Steam$" title="^Settings$"] floating enable for_window [class="^Steam$" title=".* - event started"] floating enable for_window [class="^Steam$" title=".* CD key"] floating enable for_window [class="^Steam$" title="^Steam - Self Updater$"] floating enable for_window [class="^Steam$" title="^Screenshot Uploader$"] floating enable for_window [class="^Steam$" title="^Steam Guard - Computer Authorization Required$"] floating enable for_window [class="^Steam$" title="Steam-Bibliotheksordner$"] floating enable for_window [class="^Steam$" title="Neuen Steam-Bibliotheksordner auswählen oder erstellen:$"] floating enable for_window [title="^Steam Keyboard$"] floating enable #for_window [title="^Steam$"] floating enable # There is no specific property for windows that should be floating (eg. the WM_NAME is the device name (PC1)) for_window [class="^PacketTracer6$"] floating enable for_window [class="^PacketTracer6$" title="PT Activity"] floating disable for_window [class="^PacketTracer6$" title="Cisco Packet Tracer"] floating disable # Alsa-Steuerung & Lautstärke einstellen bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5% && pamixer --get-volume > /tmp/wob bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5% && pamixer --get-volume > /tmp/wob # Steuerung der Helligkeit bindsym XF86MonBrightnessDown exec brightnessctl set 5%- | sed -En 's/.*\(([0-9]+)%\).*/\1/p' > /tmp/wob bindsym XF86MonBrightnessUp exec brightnessctl set +5% | sed -En 's/.*\(([0-9]+)%\).*/\1/p' > /tmp/wob # Touchpad controls bindsym XF86TouchpadToggle exec /usr/bin/touchpad_toggle # toggle touchpad # Media player controls bindsym XF86AudioPlay exec playerctl play bindsym XF86AudioPause exec playerctl pause bindsym XF86AudioNext exec playerctl next bindsym XF86AudioPrev exec playerctl previous # monitor-picture # 1. Capture a Selection bindsym Print exec grim -g "$(slurp)" $(xdg-user-dir PICTURES)/$(date +'%Y-%m-%d-%H%M%S_grim.png') # 2. Capture the actually Display bindsym Shift+Print exec grim $(xdg-user-dir PICTURES)/$(date +'%Y-%m-%d-%H%M%S_grim.png') bindsym $mod+p exec wlogout -p layer-shell bindsym --no-repeat $mod+Shift+p exec "echo 2 > /tmp/wcp" # Power control script - a useful replacement for the normal i3 exiting keybind. # https://wiki.archlinux.org/index.php/i3#Shutdown.2C_reboot.2C_lock_screen set $mode_system System (1) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (d) shutdown mode "$mode_system" { bindsym 1 exec --no-startup-id ~/.config/sway/swayexit lock, mode "default" bindsym e exec --no-startup-id ~/.config/sway/swayexit logout, mode "default" bindsym s exec --no-startup-id ~/.config/sway/swayexit suspend, mode "default" bindsym h exec --no-startup-id ~/.config/sway/swayexit hibernate, mode "default" bindsym r exec --no-startup-id ~/.config/sway/swayexit reboot, mode "default" bindsym d exec --no-startup-id ~/.config/sway/swayexit shutdown, mode "default" # back to normal: Enter or Escape bindsym Return mode "default" bindsym Escape mode "default" } bindsym $mod+x mode "$mode_system" ## Manual management of external displays # Set the shortcuts and what they do set $mode_display Ext Screen (v) eDP ON, (h) HDMI ON, (x) eDP OFF, (y) HDMI OFF mode "$mode_display" { bindsym v exec --no-startup-id output eDP-1 enable && output eDP-1 pos 1920 0 res 1920x1080 bindsym h exec --no-startup-id output HDMI-A-1 enable && output HDMI-A-1 pos 1920 0 res 1920x1080 bindsym x exec --no-startup-id output eDP-1 disable bindsym y exec --no-startup-id output HDMI-A-1 disable # back to normal: Enter or Escape bindsym Return mode "default" bindsym Escape mode "default" } # For use a Virtual VNC Connection with wayvnc #swaymsg create_output # springen von Workspace zu workspace mit oder ohne container workspace_auto_back_and_forth yes bindsym $mod+z workspace back_and_forth bindsym $mod+Shift+z move container to workspace back_and_forth; workspace back_and_forth # volumeicon #exec --no-startup-id volumeicon # Networkmanager exec --no-startup-id nm-applet # Bluetooth exec --no-startup-id blueman-applet # Start xscreensaver #exec --no-startup-id "xscreensaver -no-splash" # Start Pulseaudio Server #already started #exec --no-startup-id "pulseaudio --start" # Start mako-notifyd Service exec --no-startup-id "mako -c .config/mako/config" # Start volumeicon tray paystray (pulseaudio) #exec --no-startup-id "pasystray --notify=all" # imwheel faster scrolling (deactivated sound bug) #exec --no-startup-id imwheel # authentication manager (https://wiki.archlinux.org/title/Polkit) exec --no-startup-id /usr/bin/lxqt-policykit-agent # xfce4-power-manager #exec --no-startup-id xfce4-power-manager # start gnome-keyring-daemon #exec --no-startup-id /usr/bin/gnome-keyring-daemon --start --components=ssh,secrets,pkcs11 # notify service from smartphone #exec --no-startup-id /opt/an2linuxserver/an2linuxserver.py # Adjust the color temperature of your screen according to your surroundings. #exec gammastep # starting Steam #exec --no-startup-id sleep 30 && steam-native # Clipboard Manager exec wl-paste -t text --watch clipman store exec swayidle -w \ timeout 300 'swaylock -f' \ timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \ before-sleep 'swaylock -f' exec rm -f /tmp/wob && mkfifo /tmp/wob && tail -f /tmp/wob | wob exec rm -f /tmp/sov && mkfifo /tmp/sov && tail -f /tmp/sov | sov -t 200 exec rm -f /tmp/wcp && mkfifo /tmp/wcp && tail -f /tmp/wcp | wcp -f 300x190 -m 20 -a rt ####### # swaylock #convert image.jpg -resize $(xdpyinfo | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/') RGB:- | i3lock --raw $(xdpyinfo | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/'):rgb --image /dev/stdin bindsym $mod+shift+x exec swaylock -c 000000 #bindsym $mod+shift+b exec xtrlock ### i3-gaps stuff ### # Necessary for i3-gaps to work properly (pixel can be any value) for_window [class="^.*"] border pixel 3 # Smart Gaps smart_gaps on # Smart Borders smart_borders on # Set inner/outer gaps gaps inner 12 gaps outer -2 # Gaps mode set $mode_gaps Gaps: (o) outer, (i) inner set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global) set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global) bindsym $mod+Shift+g mode "$mode_gaps" mode "$mode_gaps" { bindsym o mode "$mode_gaps_outer" bindsym i mode "$mode_gaps_inner" bindsym Return mode "default" bindsym Escape mode "default" } mode "$mode_gaps_inner" { bindsym plus gaps inner current plus 5 bindsym minus gaps inner current minus 5 bindsym 0 gaps inner current set 0 bindsym Shift+plus gaps inner all plus 5 bindsym Shift+minus gaps inner all minus 5 bindsym Shift+0 gaps inner all set 0 bindsym Return mode "default" bindsym Escape mode "default" } mode "$mode_gaps_outer" { bindsym plus gaps outer current plus 5 bindsym minus gaps outer current minus 5 bindsym 0 gaps outer current set 0 bindsym Shift+plus gaps outer all plus 5 bindsym Shift+minus gaps outer all minus 5 bindsym Shift+0 gaps outer all set 0 bindsym Return mode "default" bindsym Escape mode "default" } default_border none default_floating_border normal #xwayland disable include /etc/sway/config.d/* exec notify-send "loaded" "Welcome to sway."