# set modifier set $super Mod4 set $alt Mod1 # set font font pango: FiraCode Nerd Font 9 # Use Mouse+$super to drag floating windows to their wanted position floating_modifier $super #autostart {% if wallpaper_type == "fixed" %} exec --no-startup-id hsetroot -cover ~/Pictures/wallpapers/current {% else %} exec --no-startup-id ~/.local/bin/{{ wallpaper_type }}_wallpaper.sh exec --no-startup-id hsetroot -center ~/Pictures/wallpapers/{{ wallpaper_type }}-wallpaper.png {% endif %} exec --no-startup-id xsettingsd & exec --no-startup-id picom -b --config ~/.config/picom.conf # program launcher bindsym $super+d exec i3-dmenu-desktop --dmenu="dmenu -i -fn 'FiraCode Nerd Font:size=9'" # scratchpad bindsym $super+Shift+BackSpace move scratchpad bindsym $super+BackSpace scratchpad show # common apps keybinds bindsym $super+Return exec i3-sensible-terminal bindsym Print exec scrot 'Cheese_%Y%m%d_%H:%M.png' -e 'viewnior ~/$f' bindsym $alt+l exec i3lock -i ~/.lock {% if 'librewolf' in ansible_facts.packages or 'librewolf-bin' in ansible_facts.packages %} bindsym $super+Shift+w exec librewolf {% else %} bindsym $super+Shift+w exec firefox {% endif %} bindsym $super+Shift+p exec passmenu bindsym $super+Shift+u exec passmenu-user bindsym $super+Shift+y exec passmenu-url bindsym $super+Shift+v exec vlc bindsym $super+Shift+m exec i3-sensible-terminal -e neomutt bindsym $super+Shift+x exec i3-sensible-terminal -e profanity #change volume bindsym XF86AudioRaiseVolume exec pactl set-sink-mute 0 false; exec pactl set-sink-volume 0 +5% bindsym XF86AudioLowerVolume exec pactl set-sink-mute 0 false; exec pactl set-sink-volume 0 -5% bindsym XF86AudioMute exec pactl set-sink-mute 0 toggle # music control bindsym XF86AudioNext exec mpc next bindsym XF86AudioPrev exec mpc prev bindsym XF86AudioPlay exec mpc toggle bindsym XF86AudioStop exec mpc stop # kill focused window bindsym $super+c kill bindsym $alt+F4 kill # change focus bindsym $super+h focus left bindsym $super+j focus down bindsym $super+k focus up bindsym $super+l focus right bindsym $super+Left focus left bindsym $super+Down focus down bindsym $super+Up focus up bindsym $super+Right focus right focus_follows_mouse no # move focused window bindsym $super+Shift+h move left bindsym $super+Shift+j move down bindsym $super+Shift+k move up bindsym $super+Shift+l move right 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 $alt+h split h # split in vertical orientation bindsym $alt+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 # 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 bindsym $super+9 workspace 9 # 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 bindsym $super+Shift+9 move container to workspace 9 # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) bindsym $super+Shift+r restart # exit i3 bindsym $super+Shift+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" # panel bar { position top colors { background #222222 statusline #eeeeee separator #4b5262 # colour of: border, background, text focused_workspace #222222 #bf616a #d8dee8 active_workspace #222222 #222222 #d8dee8 inactive_workspace #222222 #222222 #d8dee8 urgent_workspace #222222 #ebcb8b #222222 } status_command i3blocks } # window rules, you can find the window class using xprop workspace 1 output primary workspace 2 output primary for_window [class=".*"] border pixel 2 assign [class=Firefox|Transmission-gtk] 1 assign [class=Thunar|File-roller] 1 for_window [class=Viewnior|feh|Audacious|File-roller|Lxappearance|Lxtask|Pavucontrol] 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 bindsym $super+z gaps inner current plus 5 bindsym $super+Shift+z gaps inner current minus 5 # colour of: border, background, text, indicator, child_border client.focused #bf616a #222222 #d8dee8 #bf616a #9fe89a client.focused_inactive #222222 #222222 #d8dee8 #222222 #222222 client.unfocused #222222 #222222 #d8dee8 #222222 #222222 client.urgent #222222 #222222 #d8dee8 #222222 #222222 client.placeholder #222222 #222222 #d8dee8 #222222 #222222 client.background #222222