# 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). # # i3 config file (v4) # # Please see https://i3wm.org/docs/userguide.html for a complete reference! # Read `man 5 sway` for a complete reference. include /etc/sway/config.d/* 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:Fira Mono 8 # 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 # Use Mouse+$mod to drag floating windows to their wanted position floating_modifier $mod # start a terminal set $my-term ghostty bindsym $mod+Return exec --no-startup-id $my-term bindsym $mod+t exec --no-startup-id $my-term bindsym $mod+n exec --no-startup-id neovide '+Notes' # kill focused window bindsym $mod+Shift+q exec --no-startup-id ~/bin/safequit # start dmenu (a program launcher) bindsym $mod+d exec --no-startup-id fuzzel # change focus bindsym $mod+h focus left bindsym $mod+j focus down bindsym $mod+k focus up bindsym $mod+l 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+h move left bindsym $mod+Shift+j move down bindsym $mod+Shift+k move up bindsym $mod+Shift+l 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 #Toggle split orientation bindsym $mod+v split toggle # 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 #navigate workspaces next / previous bindsym Mod1+Tab workspace next bindsym $mod+Ctrl+Right workspace next bindsym $mod+Ctrl+Left workspace prev bindsym $mod+Ctrl+l workspace next bindsym $mod+Ctrl+h workspace prev # 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 1 bindsym $mod+2 workspace 2 bindsym $mod+3 workspace 3 bindsym $mod+4 workspace 4 bindsym $mod+5 workspace 5 bindsym $mod+6 workspace 6 bindsym $mod+7 workspace 7 bindsym $mod+8 workspace 8 bindsym $mod+9 workspace 9 bindsym $mod+0 workspace 10 # Move focused container to workspace bindsym $mod+Ctrl+1 move container to workspace $ws1 bindsym $mod+Ctrl+2 move container to workspace $ws2 bindsym $mod+Ctrl+3 move container to workspace $ws3 bindsym $mod+Ctrl+4 move container to workspace $ws4 bindsym $mod+Ctrl+5 move container to workspace $ws5 bindsym $mod+Ctrl+6 move container to workspace $ws6 bindsym $mod+Ctrl+7 move container to workspace $ws7 bindsym $mod+Ctrl+8 move container to workspace $ws8 bindsym $mod+Ctrl+9 move container to workspace $ws9 bindsym $mod+Ctrl+0 move container to workspace $ws0 # Move to workspace with focused container bindsym $mod+Shift+1 move container to workspace $ws1; workspace $ws1 bindsym $mod+Shift+2 move container to workspace $ws2; workspace $ws2 bindsym $mod+Shift+3 move container to workspace $ws3; workspace $ws3 bindsym $mod+Shift+4 move container to workspace $ws4; workspace $ws4 bindsym $mod+Shift+5 move container to workspace $ws5; workspace $ws5 bindsym $mod+Shift+6 move container to workspace $ws6; workspace $ws6 bindsym $mod+Shift+7 move container to workspace $ws7; workspace $ws7 bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8 bindsym $mod+Shift+9 move container to workspace $ws9; workspace $ws9 bindsym $mod+Shift+0 move container to workspace $ws10; workspace $ws10 # reload the configuration file bindsym $mod+Shift+c reload 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 h resize shrink width 10 px or 10 ppt bindsym j resize grow height 10 px or 10 ppt bindsym k resize shrink height 10 px or 10 ppt bindsym l 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" mode "game" { bindsym $mod+Shift+o mode "default" } bindsym $mod+o mode "game" # Walpaper # exec --no-startup-id feh --bg-fill ~/Pictures/wallpaper.png bindsym ctrl+Mod1+Tab exec --no-startup-id "xinput set-prop 'pointer:Logitech MX Master 2S' 'libinput Accel Speed' '-0.75' & /home/alec/.screenlayout/yes.sh & /home/alec/.nitrobg" # exec --no-startup-id ~/.nitrobg # exec --no-startup-id autorandr dual #Polybar #exec_always --no-startup-id ~/.config/polybar/launch.sh #Dunst exec_always --no-startup-id dunst bindsym $mod+Escape exec --no-startup-id "dunstctl close-all" # polkit exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 exec ~/bin/idlechecker exec nm-applet --indicator exec blueman-applet # for flatpaks (like obs) https://github.com/emersion/xdg-desktop-portal-wlr#running exec_always systemctl --user import-environment XDG_DISPLAY XDG_CURRENT_DESKTOP exec_always dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway ############################# ### settings for i3-gaps: ### ############################# # change inner gaps bindsym $mod+plus gaps inner all plus 5 # decrease inner gap size bindsym $mod+minus gaps inner all minus 5 bar { swaybar_command waybar } # Set inner/outer gaps gaps inner 10 gaps outer 0 smart_gaps on smart_borders off for_window { [class="firefox"] border none [app_id="firefox"] border none [app_id="Alacritty"] border pixel 2 [app_id="com.mitchellh.ghostty"] border pixel 2 [app_id="neovide"] border pixel 2 [class="steam"] border none [class="Godot"] floating enable [window_role="pop-up"] floating enable [window_role="bubble"] floating enable [window_role="dialog"] floating enable [window_type="dialog"] floating enable } #client. client.focused "#d0f0c0" "#d0f0c0" "#2b2b2b" "#888888" "#d0f0c0" client.focused_inactive "#23242a" "#2b2b2b" "#888888" "#000000" "#2b2b2b" client.unfocused "#2c2c2c" "#2b2b2b" "#888888" "#000000" "#2c2c2c" # A lock command used in several places # set $lock_script ~/bin/pretty-lock # A sleep command used in several places. # We leave a bit of time for locking to happen before putting the system to sleep # set $sleep $lock_script && sleep 3 && systemctl suspend # Triggers a short notification set $notify dunstify --timeout 1500 # Set your laptop screen name set $laptop_screen 'eDP-1' # Clamshell mode or lock & sleep # This is a if/else statement: [ outputs_count == 1 ] && true || false bindswitch --reload --locked lid:on exec '[ $(swaymsg -t get_outputs | grep name | wc -l) == 1 ] && ($sleep) || ($notify "Clamshell mode" "Laptop screen off" && swaymsg output $laptop_screen disable)' exec_always ~/bin/clamshell-toggle bindswitch --reload --locked lid:off output $laptop_screen enable workspace 1 output 'LG Electronics LG ULTRAGEAR 107NTDVCR242' eDP-1 workspace 2 output 'Dell Inc. DELL P2723QE 3940MP3' eDP-1 bindsym --release Print exec ~/bin/screenshot bindsym --release Scroll_Lock exec ~/bin/memezoom bindsym --release XF86AudioMedia exec ~/bin/memezoom # Sway display things output 'LG Electronics LG ULTRAGEAR 107NTDVCR242' { position 1440,640 scale 1.0 } output 'Dell Inc. DELL P2723QE 3940MP3' { position 0,0 scale 1.5 transform 270 } output eDP-2 { position 4000,640 scale 1.25 } input type:touchpad { tap enabled natural_scroll enabled dwt enabled pointer_accel 0.3 accel_profile adaptive middle_emulation enabled } input type:keyboard { # Capslock key should work as control key # See /usr/share/X11/xkb/rules/xorg.lst for options xkb_options caps:ctrl_modifier repeat_delay 250 repeat_rate 45 } set $wallpapers_path ~/wallpapers/low-poly exec_always ~/bin/wallpaper-shuffle bindsym $mod+Shift+r exec ~/bin/wallpaper-shuffle input type:keyboard xkb_numlock enabled