######################################### ### KEY DEFINITIONS #### ######################################### ## $Mod = Super key or Mod4 ## ## Mod1 = ALT key ## ## Control = CTRL key ## ## Shift = SHIFT key ## ## Escape = ESCAPE key ## ## Return = ENTER or RETURN key ## ## Pause = PAUSE key ## ## Print = PRINT key ## ## Tab = TAB key ## ######################################### # Xresources var value fallback set_from_resource $bg background #19043C set_from_resource $fg foreground #F1F1F1 set_from_resource $red color1 #EE79A9 set_from_resource $green color2 #8C9440 set_from_resource $yellow color3 #DE935F set_from_resource $blue color4 #05C6F1 set_from_resource $purple color5 #85678F set_from_resource $cyan color6 #5E8D87 set_from_resource $grey color7 #969CD3 set_from_resource $white color15 #F1F1F1 set_from_resource $black color0 #19043C # class bd bg txt ind child_bordr client.focused $grey $bg $fg $blue $grey client.unfocused $grey $bg $black $bg $bg client.focused_inactive $grey $bg $black $bg $bg client.urgent $red $bg $red $red $red client.placeholder $grey $bg $bg $bg $bg client.background $bg # border & title for_window [class="^.*"] border pixel 2, title_format " %class >> %title " # gaps gaps inner 15 gaps outer 0 # font font pango:Ubuntu 11 #### Set ## # $Mod = Super or Alt? set $Mod Mod4 #set $Mod Mod1 # direction keys set $up l set $down k set $left j set $right semicolon set $WS1 "1: " set $WS2 "2: " set $WS3 "3: " set $WS4 "4: " set $WS5 "5: " set $WS6 "6: " set $WS7 "7: " set $WS8 "8: " # monitors set $Mon1 HDMI1 set $Mon2 HDMI2 #################################################################################################### ################# Autostart ################## #################################################################################################### # run with reload exec_always --no-startup-id start-compton exec_always --no-startup-id start-polybar exec_always --no-startup-id numlockx on exec_always --no-startup-id nitrogen --restore exec_always --no-startup-id xrdb -load ~/.Xresources exec_always --no-startup-id pkill trayer; trayer --edge bottom --align left --heighttype pixel --height 18 --widthtype request --SetDockType false --expand true --transparent true --alpha 255 # run once exec --no-startup-id xfsettingsd exec --no-startup-id ksuperkey -e 'Super_L=Alt_L|F1' exec --no-startup-id nitrogen --restore exec --no-startup-id al-conky-session exec --no-startup-id lxpolkit #################################################################################################### ################# Bindings ################## #################################################################################################### # kill focused window bindsym $Mod+Shift+q kill bindsym Mod1+q kill # launchers bindsym Control+space exec --no-startup-id rofi-gorice bindsym Mod1+F1 exec --no-startup-id rofi-gorice # core bindsym $Mod+e exec --no-startup-id al-open -edit bindsym $Mod+t exec exo-open --launch TerminalEmulator bindsym $Mod+w exec exo-open --launch WebBrowser bindsym $Mod+f exec exo-open --launch FileManager # logout bindsym $Mod+x exec --no-startup-id rofi-logout # long command broken into multiple lines bindsym Print exec --no-startup-id "scrot '%S.png' \ -e 'mv $f $$(xdg-user-dir PICTURES)/ArchLabs-%S-$wx$h.png \ ; gpicview $$(xdg-user-dir PICTURES)/ArchLabs-%S-$wx$h.png'" # audio bindsym XF86AudioPlay exec --no-startup-id playerctl play-pause bindsym XF86AudioNext exec --no-startup-id playerctl next bindsym XF86AudioPrev exec --no-startup-id playerctl previous bindsym XF86AudioStop exec --no-startup-id playerctl stop bindsym XF86AudioRaiseVolume exec --no-startup-id pamixer -i 2 bindsym XF86AudioLowerVolume exec --no-startup-id pamixer -d 2 bindsym XF86AudioMute exec --no-startup-id pamixer -t bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 10 bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 10 #################################################################################################### ################# Workspace Bindings ################# #################################################################################################### # workspace assignment workspace $WS1 output $Mon1 workspace $WS2 output $Mon1 workspace $WS3 output $Mon1 workspace $WS4 output $Mon1 workspace $WS5 output $Mon2 workspace $WS6 output $Mon2 workspace $WS7 output $Mon2 workspace $WS8 output $Mon2 # switch to workspace bindsym $Mod+1 workspace $WS1 bindsym $Mod+2 workspace $WS2 bindsym $Mod+3 workspace $WS3 bindsym $Mod+4 workspace $WS4 bindsym $Mod+5 workspace $WS5 bindsym $Mod+6 workspace $WS6 bindsym $Mod+7 workspace $WS7 bindsym $Mod+8 workspace $WS8 # move focused container to workspace 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 #################################################################################################### ################# Reload configs ################# #################################################################################################### # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) bindsym $Mod+Shift+r restart # reload the configuration file bindsym $Mod+Shift+c reload #################################################################################################### ################ Container/Window control ################## #################################################################################################### # Scratchpad, Floating bindsym Mod1+minus move scratchpad bindsym Mod1+plus scratchpad show bindsym $Mod+space floating toggle floating_modifier Mod1 # change focus bindsym $Mod+$left focus left bindsym $Mod+$down focus down bindsym $Mod+$up focus up bindsym $Mod+$right 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 bindsym $Mod+p focus parent bindsym $Mod+c focus child # move focused window bindsym $Mod+Shift+$left move left 10px bindsym $Mod+Shift+$down move down 10px bindsym $Mod+Shift+$up move up 10px bindsym $Mod+Shift+$right move right 10px # alternatively, you can use the cursor keys: bindsym $Mod+Shift+Up move up 10px bindsym $Mod+Shift+Down move down 10px bindsym $Mod+Shift+Left move left 10px bindsym $Mod+Shift+Right move right 10px # Size bindsym Mod1+Up resize shrink height 10 px or 1 ppt bindsym Mod1+Down resize grow height 10 px or 1 ppt bindsym Mod1+Left resize shrink width 10 px or 1 ppt bindsym Mod1+Right resize grow width 10 px or 1 ppt # layout toggle, keycode 23 is Tab bindcode Mod1+23 layout toggle tabbed split bindcode $Mod+23 layout toggle splitv splith # switch to workspace with urgent window for_window [urgent="latest"] focus focus_on_window_activation focus # container layout bindsym $Mod+h split h bindsym $Mod+v split v bindsym $Mod+Shift+t layout tabbed bindsym $Mod+Shift+s layout stacking bindsym $Mod+Shift+h layout toggle split default_orientation horizontal #################################################################################################### ################# Border & Gaps ################# #################################################################################################### new_window normal new_float normal hide_edge_borders both popup_during_fullscreen smart bindsym $Mod+shift+b border toggle #changing border style bindsym $Mod+n border normal bindsym $Mod+y border 1pixel bindsym $Mod+u border none # change gaps bindsym $Mod+plus gaps outer current plus 5 bindsym $Mod+minus gaps outer current minus 5 bindsym $Mod+Shift+plus gaps inner current plus 5 bindsym $Mod+Shift+minus gaps inner current minus 5 bindsym $Mod+Control+plus gaps inner all plus 5 bindsym $Mod+Control+minus gaps inner all minus 5 bindsym $Mod+Control+Shift+plus gaps outer all plus 5 bindsym $Mod+Control+Shift+minus gaps outer all minus 5 #################################################################################################### ################# application settings ################# #################################################################################################### # focus & floating for_window [class="(?i)(?:lxapp\w+|peek)"] floating enable, focus for_window [class="(?i)(?:gpic\w+|gvim)"] floating enable, focus for_window [class="(?i)(?:deluge|nitrogen)"] floating enable, focus for_window [class="(?i)(?:qt5ct|pinentry)"] floating enable, focus for_window [class="(?i)(?:termite|thunar)"] focus for_window [class="(?i)(?:geany|firefox)"] focus # Assign Applications to specific workspace # get class with xprop assign [class="(?i)(?:firefox)"] → $WS1 assign [class="(?i)(?:geany)"] → $WS2 assign [class="(?i)(?:thunar)"] → $WS3 assign [class="(?i)(?:gimp|nitrogen)"] → $WS4 # focus, floating, & sticky for_window [title="(?i)(?:copying|deleting|moving|auth\w+)"] floating enable, sticky enable for_window [window_role="(?i)(?:pop-up|setup|preferen\w+)"] floating enable, sticky enable # set trayer to be borderless for_window [class="(?i)trayer"] border pixel 0 # start on main workspaces when reloading i3 (keep me at the bottom) exec_always --no-startup-id i3-msg 'workspace $WS5, workspace $WS1'