aboutsummaryrefslogtreecommitdiff
path: root/i3/.i3/config
blob: 07a12b3abd1f1ab2a1b5fb5aba003e0889cfb0a7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# General settings
set $mod Mod4
floating_modifier $mod
font pango:DejaVu Sans 10
focus_follows_mouse no

# Autolock
exec xautolock -time 10 -locker 'i3lock -d' -corners 000- -cornersize 30
bindsym $mod+Control+Shift+l exec xautolock -locknow

# Assignments
assign [class="Firefox"] 1
assign [class="thunderbird"] 2
assign [class="Zotero"] 3

# Menus
bindsym $mod+d exec dmenu_run -i
bindsym $mod+p exec passmenu -i -l 20

# kill focused window
bindsym $mod+Shift+Q kill

# Programs
bindsym $mod+Return exec urxvt
bindsym $mod+Shift+v exec urxvt -e vim
bindsym $mod+Shift+m exec urxvt -e cmus
for_window [class="URxvt" instance="floating"] floating toggle resize set 600 400
bindsym XF86Calculator exec urxvt -name floating -e python3

# Special keys
bindsym Print exec scrot -z '/tmp/%Y-%m-%d-%H%M%S_$wx$h.png'
bindsym Shift+Print exec scrot -z -u '/tmp/%Y-%m-%d-%H%M%S_$wx$h.png'
bindsym --release Control+Print exec scrot -z -s '/tmp/%Y-%m-%d-%H%M%S_$wx$h.png'

bindsym XF86AudioMute exec amixer sset Master toggle && kill -s 10 `pidof i3status`
bindsym XF86AudioRaiseVolume exec amixer sset Master 1%+ && kill -s 10 `pidof i3status`
bindsym XF86AudioLowerVolume exec amixer sset Master 1%- && kill -s 10 `pidof i3status`

bindsym XF86MonBrightnessUp exec bash -c 'echo "$(($(cat /sys/class/backlight/amdgpu_bl0/brightness)+10))" > /sys/class/backlight/amdgpu_bl0/brightness'
bindsym XF86MonBrightnessDown exec bash -c 'echo "$(($(cat /sys/class/backlight/amdgpu_bl0/brightness)-10))" > /sys/class/backlight/amdgpu_bl0/brightness'
bindsym Shift+XF86MonBrightnessUp exec bash -c 'echo 255 > /sys/class/backlight/amdgpu_bl0/brightness'
bindsym Shift+XF86MonBrightnessDown exec bash -c 'echo 1 > /sys/class/backlight/amdgpu_bl0/brightness'
bindsym Ctrl+XF86MonBrightnessUp exec night-light increase
bindsym Ctrl+XF86MonBrightnessDown exec night-light decrease
bindsym Ctrl+Shift+XF86MonBrightnessUp exec night-light day
bindsym Ctrl+Shift+XF86MonBrightnessDown exec night-light night
bindsym $mod+F7 exec toggle-dp
bindsym $mod+Shift+F7 exec toggle-dp-brightness

# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon focus right
# between tiling/floating
bindsym $mod+space focus mode_toggle
# to parent
bindsym $mod+a focus parent

# move focused window
bindsym $mod+Shift+J move left
bindsym $mod+Shift+K move down
bindsym $mod+Shift+L move up
bindsym $mod+Shift+colon move right

# move workspaces to monitors
bindsym $mod+Up move workspace to output up
bindsym $mod+Down move workspace to output up

# splits
bindsym $mod+h split h
bindsym $mod+v split v

# change container layout / fullscreen / floating-tiling
bindsym $mod+f fullscreen
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
bindsym $mod+Shift+space floating toggle

# switch to workspace
bindsym $mod+1 workspace 1
bindsym $mod+2 workspace 2
bindsym $mod+3 workspace 3
bindsym $mod+4 workspace 4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10
bindsym $mod+n exec --no-startup-id newws

# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace 1
bindsym $mod+Shift+2 move container to workspace 2
bindsym $mod+Shift+3 move container to workspace 3
bindsym $mod+Shift+4 move container to workspace 4
bindsym $mod+Shift+5 move container to workspace 5
bindsym $mod+Shift+6 move container to workspace 6
bindsym $mod+Shift+7 move container to workspace 7
bindsym $mod+Shift+8 move container to workspace 8
bindsym $mod+Shift+9 move container to workspace 9
bindsym $mod+Shift+0 move container to workspace 10

# reload; restart in-place; exit and shutdown
bindsym $mod+Shift+C reload
bindsym $mod+Shift+R exec "i3-nagbar -f 'pango:DejaVu Sans' -t warning -m 'You pressed the restart shortcut (Mod-Shift-R). Do you really want to restart i3?' -B 'Yes, restart i3' 'i3-msg restart'"
bindsym $mod+Shift+E exec "i3-nagbar -f 'pango:DejaVu Sans' -t warning -m 'You pressed the exit shortcut (Mod-Shift-E). Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
bindsym $mod+Shift+S exec "i3-nagbar -f 'pango:DejaVu Sans' -m 'You pressed the shutdown shortcut (Mod-Shift-S). Do you really want to shutdown?' -B 'Yes, shutdown' 'shutdown now'"
bindsym $mod+Shift+H exec "i3-nagbar -f 'pango:DejaVu Sans' -m 'You pressed the suspend-then-hibernate shortcut (Mod-Shift-H). Do you really want to suspend?' -B 'Yes, suspend' 'systemctl suspend-then-hibernate'"

bindsym $mod+r mode "resize"
mode "resize" {
    bindsym j resize shrink width 1 px or 1 ppt
    bindsym k resize grow height 1 px or 1 ppt
    bindsym l resize shrink height 1 px or 1 ppt
    bindsym semicolon resize grow width 1 px or 1 ppt
    
    bindsym Shift+j resize shrink width 5 px or 5 ppt
    bindsym Shift+k resize grow height 5 px or 5 ppt
    bindsym Shift+l resize shrink height 5 px or 5 ppt
    bindsym Shift+semicolon resize grow width 5 px or 5 ppt

    # back to normal
    bindsym Return mode "default"
    bindsym Escape mode "default"
    bindsym $mod+r mode "default"
}

bar {
    font pango:DejaVu Sans, 12
    status_command i3status.py
}