# i3 config file (v4) # Please see http://i3wm.org/docs/userguide.html for a complete reference! # set modifier set $super Mod4 set $alt Mod1 # set font font pango: Noto Sans 10 # Use Mouse+$super to drag floating windows to their wanted position floating_modifier $super #autostart exec --no-startup-id xsettingsd & exec --no-startup-id pasystray exec --no-startup-id nitrogen --restore; sleep 1; picom -b exec --no-startup-id conky exec --no-startup-id conky -c ~/.config/conky/conky-shcts exec --no-startup-id clipman exec --no-startup-id dunst exec --no-startup-id garuda-welcome #exec --no-startup-id redshift exec --no-startup-id desktop-items exec --no-startup-id nm-applet exec --no-startup-id pamac-tray exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 exec --no-startup-id xfce4-power-manager exec_always --no-startup-id ff-theme-util exec_always --no-startup-id setcursor #exec_always --no-startup-id ${HOME}/.config/polybar/launch.sh exec_always --no-startup-id numlockx on exec blueberry-tray exec --no-startup-id java -Xmx1024m -jar "/opt/xdman/xdman.jar" -m # start a terminal #alacritty xfce4-terminal bindsym $super+Return exec xfce4-terminal bindsym $super+t exec xfce4-terminal bindsym $super+Shift+Return exec alacritty # hide/unhide i3status bar bindsym $super+m bar mode toggle # start dmenu (a program launcher) bindsym $super+Shift+d exec i3-dmenu-desktop --dmenu="dmenu -i -fn 'Noto Sans:size=20'" bindsym $super+d exec rofi -lines 12 -padding 18 -width 60 -location 0 -show drun -sidebar-mode -columns 3 -font 'Noto Sans 20' # launch categorized menu bindsym $super+z exec --no-startup-id sgtk-grid # exit menu #bindsym Ctrl+$alt+Delete exec wlogout # Garuda Linux install bindsym $super+i exec sudo -E calamares # Lock screen bindsym $super+l exec i3lock -i /usr/share/wallpapers/garuda-wallpapers/garuda-wp-scratch-02-2160p-sgs.png # common apps keybinds bindsym $super+F1 exec firefox;focus bindsym $super+F2 exec thunderbird;focus bindsym $super+F3 exec thunar;focus bindsym $super+F4 exec geany;focus bindsym $super+F9 exec flameshot gui # Screen brightness controls bindsym XF86MonBrightnessUp exec "xbacklight -inc 10; notify-send 'brightness up'" bindsym XF86MonBrightnessDown exec "xbacklight -dec 10; notify-send 'brightness down'" #change volume bindsym XF86AudioRaiseVolume exec pulseaudio-ctl up bindsym XF86AudioLowerVolume exec pulseaudio-ctl down bindsym XF86AudioMute exec pulseaudio-ctl mute #bindsym XF86AudioMute exec amixer pulseaudio-ctl mute # music control bindsym XF86AudioNext exec playerctl next bindsym XF86AudioPrev exec playerctl prev bindsym XF86AudioPlay exec playerctl toggle bindsym XF86AudioStop exec playerctl stop # Print screen #bindsym Print exec --no-startup-id ksnip -fs #bindsym $super+Print --release exec --no-startup-id ksnip -f #bindsym $super+Shift+Print --release exec --no-startup-id ksnip -r bindsym Print exec --no-startup-id flameshot gui bindsym $super+Print --release exec --no-startup-id i3-scrot -w bindsym $super+Shift+Print --release exec --no-startup-id i3-scrot -s #bindsym Print exec scrot 'Cheese_%a-%d%b%y_%H.%M.png' -e 'viewnior ~/$f' # kill focused window bindsym $super+c kill bindsym $super+q kill # change focus bindsym $super+Left focus left bindsym $super+Down focus down bindsym $super+Up focus up bindsym $super+Right focus right # move focused window bindsym $super+Shift+Left move left bindsym $super+Shift+Down move down bindsym $super+Shift+Up move up bindsym $super+Shift+Right move right # split in horizontal orientation bindsym $super+h split h # split in vertical orientation bindsym $super+v split v # enter fullscreen mode for the focused container bindsym $super+f fullscreen toggle # change container layout split bindsym $super+s layout toggle split # toggle tiling / floating bindsym $super+space floating toggle # change focus between tiling / floating windows bindsym $super+Shift+space focus mode_toggle # toggle sticky bindsym $super+Shift+s sticky toggle # focus the parent container bindsym $super+a focus parent # move the currently focused window to the scratchpad bindsym $super+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 $super+minus scratchpad show #navigate workspaces next / previous bindsym $super+Ctrl+Right workspace next bindsym $super+Ctrl+Left workspace prev # switch to workspace bindsym $alt+Control+Right workspace next bindsym $alt+Control+Left workspace prev bindsym $super+1 workspace 1 bindsym $super+2 workspace 2 bindsym $super+3 workspace 3 bindsym $super+4 workspace 4 bindsym $super+5 workspace 5 bindsym $super+6 workspace 6 bindsym $super+7 workspace 7 bindsym $super+8 workspace 8 # move focused container to workspace bindsym $super+Shift+1 move container to workspace 1 bindsym $super+Shift+2 move container to workspace 2 bindsym $super+Shift+3 move container to workspace 3 bindsym $super+Shift+4 move container to workspace 4 bindsym $super+Shift+5 move container to workspace 5 bindsym $super+Shift+6 move container to workspace 6 bindsym $super+Shift+7 move container to workspace 7 bindsym $super+Shift+8 move container to workspace 8 # Move to workspace with focused container bindsym $alt+Shift+1 move container to workspace 1; workspace 1 bindsym $alt+Shift+2 move container to workspace 2; workspace 2 bindsym $alt+Shift+3 move container to workspace 3; workspace 3 bindsym $alt+Shift+4 move container to workspace 4; workspace 4 bindsym $alt+Shift+5 move container to workspace 5; workspace 5 bindsym $alt+Shift+6 move container to workspace 6; workspace 6 bindsym $alt+Shift+7 move container to workspace 7; workspace 7 bindsym $alt+Shift+8 move container to workspace 8; workspace 8 # reload the configuration file bindsym $super+Shift+c reload # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) bindsym $super+Shift+r restart # exit i3 #bindsym $super+q exec "i3-nagbar -t warning -m 'Really, exit?' -b 'Yes' 'i3-msg exit'" # resize window (you can also use the mouse for that) mode "resize" { bindsym Left resize shrink width 5 px or 5 ppt bindsym Down resize grow height 5 px or 5 ppt bindsym Up resize shrink height 5 px or 5 ppt bindsym Right resize grow width 5 px or 5 ppt bindsym Return mode "default" } bindsym $super+r mode "resize" # change borders bindsym $super+u border none bindsym $super+y border pixel 1 bindsym $super+n border normal # panel # Start i3bar to display a workspace bar bar { status_command exec /usr/bin/net-speed.sh #strip_workspace_numbers yes|no #strip_workspace_name yes|no colors { background #2f343f statusline #FFFFFF separator #666666 focused_workspace #4C7899 #285577 #FFFFFF active_workspace #333333 #222222 #FFFFFF inactive_workspace #333333 #222222 #888888 urgent_workspace #2F343A #900000 #FFFFFF #binding_mode #2F343A #900000 #FFFFFF # colour of border, background, and text } } # Open specific applications in floating mode for_window [title="alsamixer"] floating enable border pixel 1 for_window [class="calamares"] floating enable border normal for_window [class="Clipgrab"] floating enable for_window [title="File Transfer*"] floating enable for_window [class="bauh"] floating enable for_window [class="Galculator"] floating enable border pixel 1 for_window [class="GParted"] floating enable border normal for_window [title="i3_help"] floating enable sticky enable border normal for_window [class="Lightdm-settings"] floating enable for_window [class="Lxappearance"] floating enable border normal for_window [class="Garuda Settings Manager"] floating enable border normal for_window [title="MuseScore: Play Panel"] floating enable for_window [class="Nitrogen"] floating enable sticky enable border normal for_window [class="Oblogout"] fullscreen enable for_window [class="octopi"] floating enable for_window [title="About Pale Moon"] floating enable for_window [class="Pamac-manager"] floating enable for_window [class="Pamac-updater"] floating enable for_window [class="Pavucontrol"] floating enable for_window [class="Qtconfig-qt4"] floating enable border normal for_window [class="qt5ct"] floating enable sticky enable border normal for_window [title="sudo"] floating enable border normal for_window [class="Simple-scan"] floating enable border normal for_window [class="(?i)System-config-printer.py"] floating enable border normal for_window [class="Skype"] floating enable border normal for_window [class="Timeshift-gtk"] floating enable border normal for_window [class="(?i)virtualbox"] floating enable border normal for_window [class="Xfburn"] floating enable for_window [class="keepassxc"] floating enable for_window [class="garuda-welcome"] floating enable # window rules, you can find the window class using xprop for_window [class=".*"] border pixel 4 assign [class=URxvt] 1 #assign [class=Firefox|Transmission-gtk] 2 #assign [class=Thunar|File-roller] 3 #assign [class=Geany|Evince|Gucharmap|Soffice|libreoffice*] 4 #assign [class=Audacity|Vlc|mpv|Ghb|Xfburn|Gimp*|Inkscape] 5 #assign [class=Lxappearance|System-config-printer.py|Lxtask|GParted|Pavucontrol|Exo-helper*|Lxrandr|Arandr] 6 for_window [class=Viewnior|feh|Audacious|File-roller|Lxappearance|Lxtask|Pavucontrol|upgrade2ultimate.sh] floating enable for_window [class=URxvt|Firefox|Geany|Evince|Soffice|libreoffice*|mpv|Ghb|Xfburn|Gimp*|Inkscape|Vlc|Lxappearance|Audacity] focus for_window [class=Xfburn|GParted|System-config-printer.py|Lxtask|Pavucontrol|Exo-helper*|Lxrandr|Arandr] focus # colour of border, background, text, indicator, and child_border client.focused #bf616a #2f343f #d8dee8 #bf616a #d8dee8 client.focused_inactive #2f343f #2f343f #d8dee8 #2f343f #2f343f client.unfocused #2f343f #2f343f #d8dee8 #2f343f #2f343f client.urgent #2f343f #2f343f #d8dee8 #2f343f #2f343f client.placeholder #2f343f #2f343f #d8dee8 #2f343f #2f343f client.background #2f343f ############################# ### settings for i3-gaps: ### ############################# # Set inner/outer gaps gaps inner 0 gaps outer -2 # Additionally, you can issue commands with the following syntax. This is useful to bind keys to changing the gap size. # gaps inner|outer current|all set|plus|minus # gaps inner all set 10 # gaps outer all plus 5 # Smart gaps (gaps used if only more than one container on the workspace) smart_gaps on # Smart borders (draw borders around container only if it is not the only container on this workspace) # on|no_gaps (on=always activate and no_gaps=only activate if the gap size to the edge of the screen is 0) smart_borders on # Press $mod+Shift+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 $super+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" } # Set shut down, restart and locking features bindsym $super+0 mode "$mode_system" set $mode_system (l)ock, (e)xit, switch_(u)ser, (s)uspend, (h)ibernate, (r)eboot, (Shift+s)hutdown mode "$mode_system" { bindsym l exec --no-startup-id i3exit lock, mode "default" bindsym s exec --no-startup-id i3exit suspend, mode "default" bindsym u exec --no-startup-id i3exit switch_user, mode "default" bindsym e exec --no-startup-id i3exit logout, mode "default" bindsym h exec --no-startup-id i3exit hibernate, mode "default" bindsym r exec --no-startup-id i3exit reboot, mode "default" bindsym Shift+s exec --no-startup-id i3exit shutdown, mode "default" # exit system mode: "Enter" or "Escape" bindsym Return mode "default" bindsym Escape mode "default" }