# sway config file (v5) output DP-4 mode 2560x1440@200Hz output * bg ~/Pictures/wallpapers/background.png fill input type:keyboard { xkb_layout "pl" } set $mod Mod4 floating_modifier $mod font pango:Open sans 11 # kinda overkill, just to make sure every app respect dark theme exec_always { #systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XDG_RUNTIME_DIR #dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway systemctl --user import-environment WAYLAND_DISPLAY DISPLAY SWAYSOCK XDG_RUNTIME_DIR XDG_SESSION_TYPE XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP DBUS_SESSION_BUS_ADDRESS export GTK_THEME="gtk-dark-keyitdev:dark" #exec --no-startup-id dbus-update-activation-environment --all dbus-update-activation-environment --systemd WAYLAND_DISPLAY DISPLAY SWAYSOCK XDG_RUNTIME_DIR XDG_SESSION_TYPE XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP DBUS_SESSION_BUS_ADDRESS gsettings set org.gnome.desktop.interface gtk-theme 'gtk-dark-keyitdev:dark' gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' } exec_always --no-startup-id sh -c 'pkill -x waybar; waybar' exec_always --no-startup-id ~/system_monitor.sh & exec_always --no-startup-id /usr/lib/mate-polkit/polkit-mate-authentication-agent-1 & exec_always --no-startup-id dunst & # 1st - lock # 2nd - turn off screen # 3rd - sleep exec_always --no-startup-id killall swayidle; swayidle -w \ timeout 300 'swaymsg "output * power off"' \ resume 'swaymsg "output * power on"' \ timeout 1200 'lock' \ timeout 3600 'systemctl suspend' # before-sleep 'lock' # exec_always --no-startup-id asus_fan_listener & # exec_always --no-startup-id battery_listener & # bindsym Ctrl+F5 exec --no-startup-id asus_fan_toggle bindsym --locked XF86AudioRaiseVolume exec --no-startup-id volume_control -s +5 -m 125 && volume_level bindsym --locked XF86AudioLowerVolume exec --no-startup-id volume_control -s -5 -m 125 && volume_level bindsym --locked XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && volume_mute bindsym --locked XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && microphone_mute bindsym --locked XF86MonBrightnessUp exec --no-startup-id brightness_control -s +2 && brightness_level bindsym --locked XF86MonBrightnessDown exec --no-startup-id brightness_control -s -2 && brightness_level bindsym --locked XF86ScreenSaver exec --no-startup-id swaymsg "output * dpms off" bindsym --locked XF86TouchpadToggle exec --no-startup-id touchpad_toggle bindsym --locked XF86AudioPlay exec playerctl play-pause bindsym --locked XF86AudioPause exec playerctl play-pause bindsym --locked XF86AudioPrev exec playerctl previous bindsym --locked XF86AudioNext exec playerctl next bindsym --locked XF86AudioStop exec playerctl stop bindsym XF86Calculator exec --no-startup-id qalculate-gtk # bindsym XF86RFKill bindsym Pause exec screenshot -sa bindsym Print exec screenshot -sf # Run terminal (i3-sensible-terminal wannabe) bindsym $mod+Return exec sh -c 'for terminal in "$TERMINAL" x-terminal-emulator kitty alacritty mate-terminal gnome-terminal terminator xfce4-terminal urxvt rxvt termit Eterm aterm uxterm xterm roxterm termite lxterminal terminology st qterminal lilyterm tilix terminix konsole guake tilda hyper wezterm rio; do if command -v "$terminal" > /dev/null 2>&1; then exec "$terminal" "$@"; fi; done' # kill focused window bindsym $mod+Shift+q kill bindsym $mod+q exec --no-startup-id firefox-developer-edition # bindsym $mod+w exec --no-startup-id code bindsym $mod+w exec --no-startup-id "rofi -show vscode-recent -modi vscode-recent -no-default-config -config ~/.config/rofi/main.rasi -theme-str 'prompt { enabled: false; }'" bindsym $mod+e exec --no-startup-id nemo bindsym $mod+a exec --no-startup-id rofi -show drun -no-default-config -config ~/.config/rofi/dmenu.rasi bindsym $mod+s exec --no-startup-id nemo ~/Pictures/screenshots/ bindsym $mod+d exec --no-startup-id rofi -show drun -no-default-config -config ~/.config/rofi/main.rasi bindsym $mod+z exec --no-startup-id kitty -e ncmpcpp bindsym $mod+x exec --no-startup-id rofi-powermenu bindsym $mod+c exec --no-startup-id rofi-screenshot bindsym $mod+i exec lock bindsym $mod+b move workspace to output right bindsym $mod+n exec "swaymsg output HDMI-A-1 enable; swaymsg output HDMI-A-1 pos 1920 0" bindsym $mod+m exec "swaymsg output HDMI-A-1 disable" bindsym ctrl+F1 exec --no-startup-id swaymsg "output * dpms off" bindsym ctrl+F2 exec --no-startup-id swaymsg "output * dpms on" bindsym ctrl+F4 exec --no-startup-id kitty bindsym ctrl+F3 exec --no-startup-id dmenu_run # bindsym $mod+d exec --no-startup-id dmenu_run # change focus bindsym $mod+j focus left bindsym $mod+k focus down bindsym $mod+l focus up bindsym $mod+semicolon 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+semicolon 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" set $ws2 "2" set $ws3 "3" set $ws4 "4" set $ws5 "5" set $ws6 "6" set $ws7 "7" set $ws8 "8" set $ws9 "9" set $ws10 "10" # switch to workspace bindsym $mod+1 workspace number $ws1 bindsym $mod+2 workspace number $ws2 bindsym $mod+3 workspace number $ws3 bindsym $mod+4 workspace number $ws4 bindsym $mod+5 workspace number $ws5 bindsym $mod+6 workspace number $ws6 bindsym $mod+7 workspace number $ws7 bindsym $mod+8 workspace number $ws8 bindsym $mod+9 workspace number $ws9 bindsym $mod+0 workspace number $ws10 # move focused container to workspace bindsym $mod+Shift+1 move container to workspace number $ws1 bindsym $mod+Shift+2 move container to workspace number $ws2 bindsym $mod+Shift+3 move container to workspace number $ws3 bindsym $mod+Shift+4 move container to workspace number $ws4 bindsym $mod+Shift+5 move container to workspace number $ws5 bindsym $mod+Shift+6 move container to workspace number $ws6 bindsym $mod+Shift+7 move container to workspace number $ws7 bindsym $mod+Shift+8 move container to workspace number $ws8 bindsym $mod+Shift+9 move container to workspace number $ws9 bindsym $mod+Shift+0 move container to workspace number $ws10 # reload the configuration file bindsym $mod+Shift+c reload # reload the configuration file bindsym $mod+Shift+r reload # exit sway bindsym $mod+Shift+e exec "swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway?' -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 semicolon 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" # 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 ### BODERS ### hide_edge_borders none #border width default_border pixel 2 #border colors client.focused #343746 #343746 #F8F8F2 #343746 #343746 client.focused_inactive #343746 #343746 #F8F8F2 #21222C #21222C client.unfocused #343746 #343746 #F8F8F2 #21222C #21222C ### GAPS ### # Set inner/outer gaps gaps inner 8 gaps outer 0 # Smart gaps (gaps used if only more than one container on the workspace) smart_gaps off # Press $mod+g to enter the gap mode. Choose o or i for modifying outer/inner gaps. Press one of + / - (in-/decrement for current workspace) or 0 (remove gaps for current workspace). If you also press Shift with these keys, the change will be global for all workspaces. 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+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" } ### Windows ### #for_window [app_id="qalculate-gtk"] floating enable, move position center, resize set 400 600 for_window [app_id="qalculate-gtk"] floating enable, sticky enable for_window [app_id="Firefox Beta" title="Picture-in-Picture"] floating enable, sticky enable for_window [app_id="firefox-developer-edition" title="Picture-in-Picture"] floating enable, sticky enable for_window [app_id="firefox" title="Picture-in-Picture"] floating enable, sticky enable