-
Notifications
You must be signed in to change notification settings - Fork 0
/
i3config
241 lines (193 loc) · 7.41 KB
/
i3config
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
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
# i3 config file (v4)
#
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod1
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:DejaVu Sans Mono 8
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
bindsym $mod+Return exec alacritty
# kill focused window
bindsym $mod+Shift+Q kill
# start rofi (a program launcher)
bindsym $mod+d exec rofi -show run -modi run
# start rofi for emojis
bindsym $mod+Shift+e exec --no-startup-id rofimoji
bindsym $mod+c exec --no-startup-id rofi -show calc -modi calc -no-show-match -no-sort -calc-command "echo -n '{result}' | xclip" > /dev/null
# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+odiaeresis focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+J move left
bindsym $mod+Shift+K move down
bindsym $mod+Shift+L move up
bindsym $mod+Shift+Odiaeresis move right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
bindsym $mod+h split h
# split in vertical orientation
bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen
# global fullscreen: across all monitors
bindsym $mod+shift+f fullscreen toggle global
# change container layout (stacked, tabbed, default)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout default
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# 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
# move focused container to workspace
bindsym $mod+Shift+exclam move workspace 1
bindsym $mod+Shift+at move workspace 2
bindsym $mod+Shift+numbersign move workspace 3
bindsym $mod+Shift+dollar move workspace 4
bindsym $mod+Shift+percent move workspace 5
bindsym $mod+Shift+asciicircum move workspace 6
bindsym $mod+Shift+ampersand move workspace 7
bindsym $mod+Shift+asterisk move workspace 8
bindsym $mod+Shift+parenleft move workspace 9
bindsym $mod+Shift+parenright move workspace 10
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+R restart
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# They resize the border in the direction you pressed, e.g.
# when pressing left, the window is resized so that it has
# more space on its left
bindsym j resize shrink left 10 px or 10 ppt
bindsym Shift+J resize grow left 10 px or 10 ppt
bindsym k resize shrink down 10 px or 10 ppt
bindsym Shift+K resize grow down 10 px or 10 ppt
bindsym l resize shrink up 10 px or 10 ppt
bindsym Shift+L resize grow up 10 px or 10 ppt
bindsym odiaeresis resize shrink right 10 px or 10 ppt
bindsym Shift+Odiaeresis resize grow right 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink left 10 px or 10 ppt
bindsym Shift+Left resize grow left 10 px or 10 ppt
bindsym Down resize shrink down 10 px or 10 ppt
bindsym Shift+Down resize grow down 10 px or 10 ppt
bindsym Up resize shrink up 10 px or 10 ppt
bindsym Shift+Up resize grow up 10 px or 10 ppt
bindsym Right resize shrink right 10 px or 10 ppt
bindsym Shift+Right resize grow right 10 px or 10 ppt
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
# replicate original dunst shortcuts
bindsym Control+space exec dunstctl close
bindsym Control+Shift+space exec dunstctl close-all
bindsym Control+asciicircum exec dunstctl history-pop
# JFE
bindsym Mod4+c exec playerctl play-pause
bindsym Mod4+n exec playerctl previous
bindsym Mod4+b exec playerctl next
bindsym Mod4+x exec playerctl play
bindsym Mod4+v exec playerctl pause
bindsym Mod4+l exec ~/bin/lock.sh -n --clock --indicator --date-color="FFFFFFFF" --time-color="FFFFFFFF" --date-str="%d.%m.%Y" && xset -dpms
# bindsym Mod4+h exec xset dpms 1 1 1 && i3lock -c 000000 -f && systemctl hybrid-sleep && xset -dpms
bindsym Mod4+s exec xset dpms 1 1 1 && i3lock --clock --indicator --date-color="FFFFFFFF" --time-color="FFFFFFFF" --date-str="%d.%m.%Y" -f && systemctl suspend && xset -dpms
bindsym Mod4+m exec ~/bin/xinput-toggle -r "SynPS"
bindsym XF86AudioLowerVolume exec "amixer set Master 5%-"
bindsym XF86AudioRaiseVolume exec "amixer set Master 5%+"
workspace_auto_back_and_forth yes
# Make the currently focused window a scratchpad
bindsym $mod+Shift+minus move scratchpad
# # Show the first scratchpad window
bindsym $mod+minus scratchpad show
# binding for flameshots
bindsym --release Shift+Print exec flameshot full -p ~/Eigene.Dateien/screenshots
bindsym --release Print exec flameshot gui
bindsym --release Shift+Control+Print exec flameshot screen -p ~/Eigene.Dateien/screenshots
# JFE Colors
# class border bground text indicator child_border
client.focused #6272A4 #6272A4 #F8F8F2 #6272A4 #6272A4
client.focused_inactive #44475A #44475A #F8F8F2 #44475A #44475A
client.unfocused #282A36 #282A36 #BFBFBF #282A36 #282A36
client.urgent #44475A #FF5555 #F8F8F2 #FF5555 #FF5555
client.placeholder #282A36 #282A36 #F8F8F2 #282A36 #282A36
client.background #F8F8F2
# switch to urgent window
bindsym $mod+x [urgent=latest] focus
# float all teams notifications
for_window [title="Microsoft Teams Notification" class="microsoft teams - preview"] floating enable
for_window [title="Microsoft Teams Notification" class="Microsoft Teams - Preview"] floating enable
no_focus [title="Microsoft Teams Notification"]
bar {
font pango:FontAwesome, DejaVu Sans Mono 8
id 2
status_command bumblebee-status \
-m \
load \
memory \
disk \
nic \
battery \
solaar \
sensors2 \
pasink \
pasource \
datetime \
-p \
memory.format='{percent:05.02f}%' \
disk.format='{percent:05.02f}%' \
nic.states=^down \
nic.exclude='lo,virbr,docker,vboxnet,veth,br,.*:avahi,wg0' \
nic.format='{intf} {ip} {ssid} {strength}' \
sensors2.showtemp=false \
datetime.format="%a %Y-%m-%d %H:%M:%S" \
solaar.device="MX Ergo" \
-t dracula-powerline
bindsym button1 no
# disable scrolling through windows
bindsym button4 nop
bindsym button5 nop
}
smart_borders on
smart_gaps on
hide_edge_borders smart_no_gaps
gaps inner 5
gaps outer 0
# disable scrolling through windows
bindsym button4 nop
bindsym button5 nop
# global push-to-talk
bindsym Super_L exec "pactl set-source-mute @DEFAULT_SOURCE@ off"
bindsym --release Super_L exec "pactl set-source-mute @DEFAULT_SOURCE@ on"
# clipmenu
bindsym $mod+p exec --no-startup-id CM_LAUNCHER=rofi clipmenu -i
# autostart logseq and send it to scratchpad
exec --no-startup-id logseq
for_window [instance="logseq"] move scratchpad