summaryrefslogtreecommitdiff
path: root/base/config/i3/config.d/00_base_config
blob: f31b50441c045f79b6cc3334b038fbdaf51fda28 (plain)
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
#
# This is my base i3 config which is shared between all hosts.
#

set $mod Mod4
floating_modifier $mod

## Visual Settings
font xft:Inconsolata 8
hide_edge_borders both

## Bindings to start programs
bindsym $mod+space exec dmenu_run -l 20
bindsym $mod+Return exec i3-sensible-terminal

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


## Bindings to control windows

### Focus Commands
bindsym $mod+h         focus left
bindsym $mod+j         focus down
bindsym $mod+k         focus up
bindsym $mod+l         focus right
bindsym Mod1+Tab       focus right
bindsym Mod1+Shift+Tab focus left
bindsym $mod+a         focus parent
bindsym $mod+d         focus child

### Window Moving Commands
bindsym $mod+Shift+H   move left
bindsym $mod+Shift+J   move down
bindsym $mod+Shift+K   move up
bindsym $mod+Shift+L   move right

### Floating Windows
bindsym $mod+Shift+space  floating toggle
bindsym $mod+Tab          focus mode_toggle

## Layout Commands
bindsym $mod+s        layout stacking
bindsym $mod+w        layout tabbed
bindsym $mod+e        layout default
bindsym $mod+v        split v
bindsym $mod+Shift+V  split h
bindsym $mod+f        fullscreen


## Bindings to control workspaces

### Switch Workspaces
bindsym $mod+1     workspace number "1: mail"
bindsym $mod+2     workspace number "2: web"
bindsym $mod+3     workspace number "3: dev"
bindsym $mod+4     workspace number 4
bindsym $mod+5     workspace number 5
bindsym $mod+6     workspace number 6
bindsym $mod+7     workspace number 7
bindsym $mod+8     workspace number 8
bindsym $mod+9     workspace number 9
bindsym $mod+0     workspace number 10
bindsym $mod+Left  workspace prev_on_output
bindsym $mod+Right workspace next_on_output

### Move container to workspace
bindsym $mod+Shift+exclam      move workspace number "1: mail"
bindsym $mod+Shift+at          move workspace number "2: web"
bindsym $mod+Shift+numbersign  move workspace number "3: dev"
bindsym $mod+Shift+dollar      move workspace number 4
bindsym $mod+Shift+percent     move workspace number 5
bindsym $mod+Shift+asciicircum move workspace number 6
bindsym $mod+Shift+ampersand   move workspace number 7
bindsym $mod+Shift+asterisk    move workspace number 8
bindsym $mod+Shift+parenleft   move workspace number 9
bindsym $mod+Shift+parenright  move workspace number 10
bindsym $mod+Shift+Left        move workspace prev
bindsym $mod+Shift+Right       move workspace next

### Move workspace to different monitor
bindsym $mod+Mod1+Left         move workspace to output left
bindsym $mod+Mod1+Right        move workspace to output right
bindsym $mod+Mod1+Up         move workspace to output up
bindsym $mod+Mod1+Down        move workspace to output down

workspace_auto_back_and_forth yes
workspace_layout default

### Workspace monitor assignments

workspace "1: mail" output eDP-1
workspace "2: web" output DP-1
workspace "3: dev" output DP-1
workspace 4 output DP-1
workspace 5 output DP-1
workspace 6 output DP-1
workspace 7 output DP-1
workspace 8 output DP-1
workspace 9 output DP-1
workspace 10 output DP-1

### Scratchpad
bindsym $mod+Shift+minus  move scratchpad
bindsym $mod+minus        scratchpad show


## Bindings to contorl the session
bindsym $mod+Shift+C     exec "make_i3_config > $HOME/.config/i3/config"; reload
bindsym $mod+Shift+R     restart
bindsym $mod+Shift+E     exit
bindsym Control+mod1+l   exec $HOME/bin/lock


## Alternative modes

### Resize Mode
bindsym $mod+r mode "resize"
mode "resize" {
    bindsym h          resize shrink left  10 px or 10 ppt
    bindsym Shift+H    resize grow   left  10 px or 10 ppt
    bindsym j          resize shrink down  10 px or 10 ppt
    bindsym Shift+j    resize grow   down  10 px or 10 ppt
    bindsym k          resize shrink up    10 px or 10 ppt
    bindsym Shift+K    resize grow   up    10 px or 10 ppt
    bindsym l          resize shrink right 10 px or 10 ppt
    bindsym Shift+L    resize grow   right 10 px or 10 ppt

    bindsym Return mode "default"
    bindsym Escape mode "default"
}

### Display Settings
set $displayMode "Choose [l]aptop or [d]esktop, [e]xtend, [m]irror"
bindsym $mod+p mode $displayMode
mode $displayMode {
    bindsym l exec "\
        xrandr --output eDP-1 --mode 1920x1080 --primary && \
        xrandr --output DP-1 --off"; mode "default"
    bindsym d exec "\
        xrandr --output DP-1 --auto --primary && \
        xrandr --output eDP-1 --off"; mode "default"
    bindsym e exec "\
        xrandr --output eDP-1 --mode 1920x1080 --primary && \
        xrandr --output DP-1 --above eDP-1 --mode 1920x1080 \
        "; mode "default"
    bindsym m exec "\
        xrandr --output eDP-1 --mode 1920x1080 --primary && \
        xrandr --output DP-1 --same-as eDP-1 --auto \
        "; mode "default"
    bindsym Return mode "default"
    bindsym Escape mode "default"
}

## i3bar Settings
bar {
    status_command conky-i3bar
    position bottom
    tray_output primary
    font xft:Inconsolata 9
}


## Misc. Bindings

## sshclip
bindsym $mod+g     exec sshclip

bindsym $mod+c     exec clipmv

### Music
bindsym $mod+F7 exec bluetoothctl connect 24:2C:00:1A:C8:BE
bindsym $mod+Shift+F7 exec bluetoothctl disconnect 24:2C:00:1A:C8:BE
bindsym XF86AudioPlay exec xmms2 toggle
bindsym $mod+End exec xmms2 toggle
bindsym XF86AudioNext exec xmms2 next
bindsym $mod+Home exec xmms2 next
bindsym XF86AudioPrev exec xmms2 prev

### Volume
bindsym XF86AudioRaiseVolume exec "amixer -D pulse -q set Master 5%+ unmute; amixer -D pulse -q set Speaker unmute"
bindsym $mod+Prior exec "amixer -D pulse -q set Master 5%+ unmute; amixer -D pulse -q set Speaker unmute"
bindsym XF86AudioLowerVolume exec "amixer -D pulse -q set Master 5%- unmute; amixer -D pulse -q set Speaker unmute"
bindsym $mod+Next exec "amixer -D pulse -q set Master 5%- unmute; amixer -D pulse -q set Speaker unmute"
bindsym XF86AudioMute exec amixer -D pulse -q set Master mute

### Brightness
bindsym XF86MonBrightnessUp exec "brightnessctl set +5%"
bindsym XF86MonBrightnessDown exec "brightnessctl set 5%-"

## Specific Window Settings
for_window [class="Gcalctool"]        floating enable
for_window [class="Gnome-calculator"] floating enable
for_window [class="file_progress"]    floating enable
for_window [title="Unlock Database - KeePassXC"]    floating enable