Configuration for my NixOS based systems and Home Manager
at master 196 lines 6.9 kB view raw
1# This file has been auto-generated by i3-config-wizard(1). 2# It will not be overwritten, so edit it as you like. 3# 4# Should you change your keyboard layout some time, delete 5# this file and re-run i3-config-wizard(1). 6# 7 8# i3 config file (v4) 9# 10# Please see https://i3wm.org/docs/userguide.html for a complete reference! 11 12set $mod Mod4 13 14# Font for window titles. Will also be used by the bar unless a different font 15# is used in the bar {} block below. 16font pango:monospace 8 17 18# This font is widely installed, provides lots of unicode glyphs, right-to-left 19# text rendering and scalability on retina/hidpi displays (thanks to pango). 20#font pango:DejaVu Sans Mono 8 21 22# Start XDG autostart .desktop files using dex. See also 23# https://wiki.archlinux.org/index.php/XDG_Autostart 24exec --no-startup-id dex --autostart --environment i3 25 26# The combination of xss-lock, nm-applet and pactl is a popular choice, so 27# they are included here as an example. Modify as you see fit. 28 29# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the 30# screen before suspend. Use loginctl lock-session to lock your screen. 31exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork 32 33# NetworkManager is the most popular way to manage wireless networks on Linux, 34# and nm-applet is a desktop environment-independent system tray GUI for it. 35exec --no-startup-id nm-applet 36 37# Use pactl to adjust volume in PulseAudio. 38set $refresh_i3status killall -SIGUSR1 i3status 39bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status 40bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status 41bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status 42bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status 43 44# Use Mouse+$mod to drag floating windows to their wanted position 45floating_modifier $mod 46 47# move tiling windows via drag & drop by left-clicking into the title bar, 48# or left-clicking anywhere into the window while holding the floating modifier. 49tiling_drag modifier titlebar 50 51# start a terminal 52bindsym $mod+Return exec kitty 53 54# kill focused window 55bindsym $mod+Shift+q kill 56 57# start dmenu (a program launcher) 58bindsym $mod+d exec --no-startup-id dmenu_run 59# A more modern dmenu replacement is rofi: 60# bindcode $mod+40 exec "rofi -modi drun,run -show drun" 61# There also is i3-dmenu-desktop which only displays applications shipping a 62# .desktop file. It is a wrapper around dmenu, so you need that installed. 63# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop 64 65# change focus 66bindsym $mod+h focus left 67bindsym $mod+j focus down 68bindsym $mod+k focus up 69bindsym $mod+l focus right 70 71 72# alternatively, you can use the cursor keys: 73bindsym $mod+Left focus left 74bindsym $mod+Down focus down 75bindsym $mod+Up focus up 76bindsym $mod+Right focus right 77 78# move focused window 79bindsym $mod+Shift+h move left 80bindsym $mod+Shift+j move down 81bindsym $mod+Shift+k move up 82bindsym $mod+Shift+l move right 83 84# alternatively, you can use the cursor keys: 85bindsym $mod+Shift+Left move left 86bindsym $mod+Shift+Down move down 87bindsym $mod+Shift+Up move up 88bindsym $mod+Shift+Right move right 89 90# split in horizontal orientation 91bindsym $mod+g split h 92 93# split in vertical orientation 94bindsym $mod+v split v 95 96# enter fullscreen mode for the focused container 97bindsym $mod+f fullscreen toggle 98 99# change container layout (stacked, tabbed, toggle split) 100bindsym $mod+s layout stacking 101bindsym $mod+w layout tabbed 102bindsym $mod+e layout toggle split 103 104# toggle tiling / floating 105bindsym $mod+Shift+space floating toggle 106 107# change focus between tiling / floating windows 108bindsym $mod+space focus mode_toggle 109 110# focus the parent container 111bindsym $mod+a focus parent 112 113# focus the child container 114#bindsym $mod+d focus child 115 116# Define names for default workspaces for which we configure key bindings later on. 117# We use variables to avoid repeating the names in multiple places. 118set $ws1 "1" 119set $ws2 "2" 120set $ws3 "3" 121set $ws4 "4" 122set $ws5 "5" 123set $ws6 "6" 124set $ws7 "7" 125set $ws8 "8" 126set $ws9 "9" 127set $ws10 "10" 128 129# switch to workspace 130bindsym $mod+1 workspace number $ws1 131bindsym $mod+2 workspace number $ws2 132bindsym $mod+3 workspace number $ws3 133bindsym $mod+4 workspace number $ws4 134bindsym $mod+5 workspace number $ws5 135bindsym $mod+6 workspace number $ws6 136bindsym $mod+7 workspace number $ws7 137bindsym $mod+8 workspace number $ws8 138bindsym $mod+9 workspace number $ws9 139bindsym $mod+0 workspace number $ws10 140# Tab navigation 141bindsym $mod+Tab workspace next 142bindsym $mod+Shift+Tab workspace prev 143 144# move focused container to workspace 145bindsym $mod+Shift+1 move container to workspace number $ws1 146bindsym $mod+Shift+2 move container to workspace number $ws2 147bindsym $mod+Shift+3 move container to workspace number $ws3 148bindsym $mod+Shift+4 move container to workspace number $ws4 149bindsym $mod+Shift+5 move container to workspace number $ws5 150bindsym $mod+Shift+6 move container to workspace number $ws6 151bindsym $mod+Shift+7 move container to workspace number $ws7 152bindsym $mod+Shift+8 move container to workspace number $ws8 153bindsym $mod+Shift+9 move container to workspace number $ws9 154bindsym $mod+Shift+0 move container to workspace number $ws10 155 156# reload the configuration file 157bindsym $mod+Shift+c reload 158# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) 159bindsym $mod+Shift+r restart 160# exit i3 (logs you out of your X session) 161bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'" 162 163# resize window (you can also use the mouse for that) 164mode "resize" { 165 # These bindings trigger as soon as you enter the resize mode 166 167 # Pressing left will shrink the window’s width. 168 # Pressing right will grow the window’s width. 169 # Pressing up will shrink the window’s height. 170 # Pressing down will grow the window’s height. 171 bindsym h resize shrink width 10 px or 10 ppt 172 bindsym j resize grow height 10 px or 10 ppt 173 bindsym k resize shrink height 10 px or 10 ppt 174 bindsym l resize grow width 10 px or 10 ppt 175 176 # same bindings, but for the arrow keys 177 bindsym Left resize shrink width 10 px or 10 ppt 178 bindsym Down resize grow height 10 px or 10 ppt 179 bindsym Up resize shrink height 10 px or 10 ppt 180 bindsym Right resize grow width 10 px or 10 ppt 181 182 # back to normal: Enter or Escape or $mod+r 183 bindsym Return mode "default" 184 bindsym Escape mode "default" 185 bindsym $mod+r mode "default" 186} 187 188bindsym $mod+r mode "resize" 189 190# Start i3bar to display a workspace bar (plus the system information i3status 191# finds out, if available) 192bar { 193 status_command i3status 194} 195 196exec barrier