]> src.twobees.de Git - dotfiles.git/blob - stow/i3/.config/i3/config
initial
[dotfiles.git] / stow / i3 / .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 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.
16 font 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 # The combination of xss-lock, nm-applet and pactl is a popular choice, so
23 # they are included here as an example. Modify as you see fit.
24
25 # xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
26 # screen before suspend. Use loginctl lock-session to lock your screen.
27 exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
28
29 # NetworkManager is the most popular way to manage wireless networks on Linux,
30 # and nm-applet is a desktop environment-independent system tray GUI for it.
31 exec dunst
32 exec --no-startup-id nm-applet
33 exec --no-startup-id /usr/bin/pasystray
34 exec --no-startup-id ~/.bin/touchpad.sh
35 exec --no-startup-id /usr/bin/xfce4-power-manager
36 exec --no-startup-id /usr/bin/firefox
37 # exec --no-startup-id /usr/bin/x2goclient
38 exec --no-startup-id "sleep 10; /usr/bin/nextcloud"
39 exec --no-startup-id "sleep 12; /usr/bin/pass git pull"
40 exec --no-startup-id nitrogen --restore
41 exec --no-startup-id "/usr/bin/setxkbmap -layout us,de"
42 exec --no-startup-id "/usr/bin/setxkbmap -option 'grp:alt_shift_toggle'"
43
44
45
46
47
48 # Use pactl to adjust volume in PulseAudio.
49 set $refresh_i3status killall -SIGUSR1 /usr/bin/i3status
50 bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
51 bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
52 bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
53 bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
54
55 # Use Mouse+$mod to drag floating windows to their wanted position
56 floating_modifier $mod
57
58 bindsym $mod+Return exec /usr/bin/i3-sensible-terminal
59 # start a terminal
60 # use default and hope for the best. ... # bindsym $mod+Return exec /usr/bin/gnome-terminal
61
62 # kill focused window
63 bindsym $mod+Shift+q kill
64
65 # start dmenu (a program launcher)
66 # bindsym $mod+d exec --no-startup-id dmenu_run
67 # A more modern dmenu replacement is rofi:
68 # bindcode $mod+40 exec rofi -modi drun,run -show drun
69 # There also is i3-dmenu-desktop which only displays applications shipping a
70 # .desktop file. It is a wrapper around dmenu, so you need that installed.
71 bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
72
73 # change focus
74 bindsym $mod+h focus left
75 bindsym $mod+j focus down
76 bindsym $mod+k focus up
77 bindsym $mod+l focus right
78 bindsym Control+space focus right
79 bindsym Control+Shift+space focus left
80 bindsym Mod1+Tab focus right
81 bindsym Mod1+Shift+Tab focus left
82
83 # alternatively, you can use the cursor keys:
84 bindsym $mod+Left focus left
85 bindsym $mod+Down focus down
86 bindsym $mod+Up focus up
87 bindsym $mod+Right focus right
88
89 # move focused window
90 bindsym $mod+Shift+h move left
91 bindsym $mod+Shift+j move down
92 bindsym $mod+Shift+k move up
93 bindsym $mod+Shift+l move right
94
95 # alternatively, you can use the cursor keys:
96 bindsym $mod+Shift+Left move left
97 bindsym $mod+Shift+Down move down
98 bindsym $mod+Shift+Up move up
99 bindsym $mod+Shift+Right move right
100
101 # split in horizontal orientation
102 bindsym $mod+b split h
103
104 # split in vertical orientation
105 bindsym $mod+v split v
106
107 # enter fullscreen mode for the focused container
108 bindsym $mod+f fullscreen toggle
109
110 # change container layout (stacked, tabbed, toggle split)
111 bindsym $mod+s layout stacking
112 bindsym $mod+w layout tabbed
113 bindsym $mod+e layout toggle split
114
115 # toggle tiling / floating
116 bindsym $mod+Shift+space floating toggle
117
118 # change focus between tiling / floating windows
119 bindsym $mod+space focus mode_toggle
120
121 # focus the parent container
122 bindsym $mod+a focus parent
123
124 # focus the child container
125 #bindsym $mod+d focus child
126
127 # Define names for default workspaces for which we configure key bindings later on.
128 # We use variables to avoid repeating the names in multiple places.
129 workspace_layout tabbed
130 set $ws1 "1"
131 set $ws2 "2"
132 set $ws3 "3"
133 set $ws4 "4"
134 set $ws5 "5"
135 set $ws6 "6"
136 set $ws7 "7"
137 set $ws8 "8"
138 set $ws9 "9"
139 set $ws10 "10"
140
141 # switch to workspace
142 bindsym $mod+1 workspace number $ws1
143 bindsym $mod+2 workspace number $ws2
144 bindsym $mod+3 workspace number $ws3
145 bindsym $mod+4 workspace number $ws4
146 bindsym $mod+5 workspace number $ws5
147 bindsym $mod+6 workspace number $ws6
148 bindsym $mod+7 workspace number $ws7
149 bindsym $mod+8 workspace number $ws8
150 bindsym $mod+9 workspace number $ws9
151 bindsym $mod+0 workspace number $ws10
152
153 # move focused container to workspace
154 bindsym $mod+Shift+1 move container to workspace number $ws1
155 bindsym $mod+Shift+2 move container to workspace number $ws2
156 bindsym $mod+Shift+3 move container to workspace number $ws3
157 bindsym $mod+Shift+4 move container to workspace number $ws4
158 bindsym $mod+Shift+5 move container to workspace number $ws5
159 bindsym $mod+Shift+6 move container to workspace number $ws6
160 bindsym $mod+Shift+7 move container to workspace number $ws7
161 bindsym $mod+Shift+8 move container to workspace number $ws8
162 bindsym $mod+Shift+9 move container to workspace number $ws9
163 bindsym $mod+Shift+0 move container to workspace number $ws10
164
165 # reload the configuration file
166 bindsym $mod+Shift+c reload
167 # restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
168 bindsym $mod+Shift+r restart
169 # exit i3 (logs you out of your X session)
170 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'"
171 bindsym $mod+Shift+F1 exec "shutdown -h now"
172
173
174
175 mode "resize" {
176         # These bindings trigger as soon as you enter the resize mode
177
178         # Pressing left will shrink the window’s width.
179         # Pressing right will grow the window’s width.
180         # Pressing up will shrink the window’s height.
181         # Pressing down will grow the window’s height.
182         bindsym j resize shrink width 10 px or 10 ppt
183         bindsym k resize grow height 10 px or 10 ppt
184         bindsym l resize shrink height 10 px or 10 ppt
185         bindsym semicolon resize grow width 10 px or 10 ppt
186
187         # same bindings, but for the arrow keys
188         bindsym Left resize shrink width 10 px or 10 ppt
189         bindsym Down resize grow height 10 px or 10 ppt
190         bindsym Up resize shrink height 10 px or 10 ppt
191         bindsym Right resize grow width 10 px or 10 ppt
192
193         # back to normal: Enter or Escape or $mod+r
194         bindsym Return mode "default"
195         bindsym Escape mode "default"
196         bindsym $mod+r mode "default"
197 }
198
199 bindsym $mod+r mode "resize"
200
201 # Start i3bar to display a workspace bar (plus the system information i3status
202 # finds out, if available)
203 bar {
204         status_command ~/.bin/i3status.sh
205 #        status_command i3status
206 }
207