]> git.r.bdr.sh - rbdr/dotfiles/blob - config/i3/config
22790fece771db09df9a27d37b64c0efdcfc6a41
[rbdr/dotfiles] / config / i3 / config
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
12 set $mod Mod1
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.
16 font pango:Input Mono Light 11
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
24 exec --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.
31 exec --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.
35 exec --no-startup-id nm-applet
36
37 # Use pactl to adjust volume in PulseAudio.
38 set $refresh_i3status killall -SIGUSR1 i3status
39 bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
40 bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
41 bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
42 bindsym 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
45 floating_modifier $mod
46
47 # start a terminal
48 bindsym $mod+Return exec i3-sensible-terminal
49
50 # kill focused window
51 bindsym $mod+Shift+q kill
52
53 # start dmenu (a program launcher)
54 bindsym $mod+d exec --no-startup-id dmenu_run
55 # A more modern dmenu replacement is rofi:
56 # bindcode $mod+40 exec "rofi -modi drun,run -show drun"
57 # There also is i3-dmenu-desktop which only displays applications shipping a
58 # .desktop file. It is a wrapper around dmenu, so you need that installed.
59 # bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop
60
61 # change focus
62 bindsym $mod+h focus left
63 bindsym $mod+j focus down
64 bindsym $mod+k focus up
65 bindsym $mod+l focus right
66
67 # alternatively, you can use the cursor keys:
68 bindsym $mod+Left focus left
69 bindsym $mod+Down focus down
70 bindsym $mod+Up focus up
71 bindsym $mod+Right focus right
72
73 # move focused window
74 bindsym $mod+Shift+h move left
75 bindsym $mod+Shift+j move down
76 bindsym $mod+Shift+k move up
77 bindsym $mod+Shift+l move right
78
79 # alternatively, you can use the cursor keys:
80 bindsym $mod+Shift+Left move left
81 bindsym $mod+Shift+Down move down
82 bindsym $mod+Shift+Up move up
83 bindsym $mod+Shift+Right move right
84
85 # split in horizontal orientation
86 bindsym $mod+- split h
87
88 # split in vertical orientation
89 bindsym $mod+v split v
90
91 # enter fullscreen mode for the focused container
92 bindsym $mod+f fullscreen toggle
93
94 # change container layout (stacked, tabbed, toggle split)
95 bindsym $mod+s layout stacking
96 bindsym $mod+w layout tabbed
97 bindsym $mod+e layout toggle split
98
99 # toggle tiling / floating
100 bindsym $mod+Shift+space floating toggle
101
102 # change focus between tiling / floating windows
103 bindsym $mod+space focus mode_toggle
104
105 # focus the parent container
106 bindsym $mod+a focus parent
107
108 # focus the child container
109 #bindsym $mod+d focus child
110
111 # Define names for default workspaces for which we configure key bindings later on.
112 # We use variables to avoid repeating the names in multiple places.
113 set $ws1 "1"
114 set $ws2 "2"
115 set $ws3 "3"
116 set $ws4 "4"
117 set $ws5 "5"
118 set $ws6 "6"
119 set $ws7 "7"
120 set $ws8 "8"
121 set $ws9 "9"
122 set $ws10 "10"
123
124 # switch to workspace
125 bindsym $mod+1 workspace number $ws1
126 bindsym $mod+2 workspace number $ws2
127 bindsym $mod+3 workspace number $ws3
128 bindsym $mod+4 workspace number $ws4
129 bindsym $mod+5 workspace number $ws5
130 bindsym $mod+6 workspace number $ws6
131 bindsym $mod+7 workspace number $ws7
132 bindsym $mod+8 workspace number $ws8
133 bindsym $mod+9 workspace number $ws9
134 bindsym $mod+0 workspace number $ws10
135
136 # move focused container to workspace
137 bindsym $mod+Shift+1 move container to workspace number $ws1
138 bindsym $mod+Shift+2 move container to workspace number $ws2
139 bindsym $mod+Shift+3 move container to workspace number $ws3
140 bindsym $mod+Shift+4 move container to workspace number $ws4
141 bindsym $mod+Shift+5 move container to workspace number $ws5
142 bindsym $mod+Shift+6 move container to workspace number $ws6
143 bindsym $mod+Shift+7 move container to workspace number $ws7
144 bindsym $mod+Shift+8 move container to workspace number $ws8
145 bindsym $mod+Shift+9 move container to workspace number $ws9
146 bindsym $mod+Shift+0 move container to workspace number $ws10
147
148 # reload the configuration file
149 bindsym $mod+Shift+c reload
150 # restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
151 bindsym $mod+Shift+r restart
152 # exit i3 (logs you out of your X session)
153 bindsym $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'"
154
155 # resize window (you can also use the mouse for that)
156 mode "resize" {
157 # These bindings trigger as soon as you enter the resize mode
158
159 # Pressing left will shrink the window’s width.
160 # Pressing right will grow the window’s width.
161 # Pressing up will shrink the window’s height.
162 # Pressing down will grow the window’s height.
163 bindsym j resize shrink width 10 px or 10 ppt
164 bindsym k resize grow height 10 px or 10 ppt
165 bindsym l resize shrink height 10 px or 10 ppt
166 bindsym semicolon resize grow width 10 px or 10 ppt
167
168 # same bindings, but for the arrow keys
169 bindsym Left resize shrink width 10 px or 10 ppt
170 bindsym Down resize grow height 10 px or 10 ppt
171 bindsym Up resize shrink height 10 px or 10 ppt
172 bindsym Right resize grow width 10 px or 10 ppt
173
174 # back to normal: Enter or Escape or $mod+r
175 bindsym Return mode "default"
176 bindsym Escape mode "default"
177 bindsym $mod+r mode "default"
178 }
179
180 bindsym $mod+r mode "resize"
181
182 # Start i3bar to display a workspace bar (plus the system information i3status
183 # finds out, if available)
184 bar {
185 status_command i3status
186 }