| 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 | ########################### |
| 9 | # xbindkeys -k # |
| 10 | # xprop | grep -i 'class' # |
| 11 | ########################### |
| 12 | |
| 13 | # i3 config file (v4) |
| 14 | # |
| 15 | # Please see http://i3wm.org/docs/userguide.html for a complete reference! |
| 16 | |
| 17 | # set modifiers |
| 18 | ## |
| 19 | ## Win to be used to issue commands application related, like launching programs |
| 20 | ## Alt to be used to issue commands desktop related, like modifying layout of windows |
| 21 | ## Ctrl in combination with the other two, to issue special commands. |
| 22 | set $win Mod4 |
| 23 | set $alt Mod1 |
| 24 | set $ctrl Ctrl |
| 25 | |
| 26 | # browser variable |
| 27 | set $browser firefox |
| 28 | set $incognito-browser firefox --private-window |
| 29 | # editor variable |
| 30 | set $prog-editor sublime_text |
| 31 | |
| 32 | # title alignment |
| 33 | #title_align center |
| 34 | |
| 35 | #set $rofi "rofi -show run -font 'Droid Sans Mono 10' -theme Monokai -width 40 -location 2 -lines 7 -bw 2 -yoffset -2" |
| 36 | #set $rofissh "rofi -show ssh -font 'Droid Sans Mono 10' -theme Monokai" |
| 37 | |
| 38 | # Workspace names |
| 39 | # # to display names or symbols instead of plain workspace numbers you can use |
| 40 | # # something like: set $ws1 1:mail |
| 41 | # # set $ws2 2:x |
| 42 | # |
| 43 | set $ws1 "web" |
| 44 | set $ws2 "editor" |
| 45 | set $ws3 "console" |
| 46 | set $ws4 "ssh" |
| 47 | set $ws5 "graphic" |
| 48 | set $ws6 "editor2" |
| 49 | set $ws7 "chat" |
| 50 | set $ws8 "music" |
| 51 | |
| 52 | # per workspace gaps |
| 53 | workspace $ws1 gaps inner 0 |
| 54 | workspace $ws1 gaps outer 0 |
| 55 | workspace $ws2 gaps inner 0 |
| 56 | workspace $ws2 gaps outer 0 |
| 57 | |
| 58 | |
| 59 | # Font for window titles. Will also be used by the bar unless a different font |
| 60 | # is used in the bar {} block below. |
| 61 | font pango:"Droid Sans 10" |
| 62 | |
| 63 | # Use Mouse+$win to drag floating windows to their wanted position |
| 64 | floating_modifier $win |
| 65 | |
| 66 | # start a terminal |
| 67 | # macropad 5 |
| 68 | bindsym $alt+Return exec --no-startup-id alacritty |
| 69 | # macropad Shift+5 |
| 70 | bindsym Shift+$alt+Return exec --no-startup-id blackpearl-sshmenu.sh |
| 71 | |
| 72 | |
| 73 | # custom binding |
| 74 | # macropad 4 |
| 75 | bindsym Shift+$ctrl+l exec --no-startup-id clipmenu -no-lazy-grab -show run -theme blackpearl/runner |
| 76 | bindsym $alt+Shift+$ctrl+l exec --no-startup-id xclip -o | qrencode -o - | feh -Z - |
| 77 | bindsym Print exec --no-startup-id blackpearl-scrotmenu.sh |
| 78 | bindsym $alt+Menu exec --no-startup-id blackpearl-utilsmenu.sh |
| 79 | bindsym $win+Menu exec --no-startup-id blackpearl-appsmenu.sh |
| 80 | bindsym $alt+Escape --release exec xkill |
| 81 | bindsym $win+e exec pcmanfm-qt |
| 82 | # macropad 3 |
| 83 | bindsym $win+g exec gimp |
| 84 | #bindsym $win+x exec --no-startup-id i3-exit |
| 85 | #bindsym $win+s exec --no-startup-id wol d4:c9:ef:f1:c9:24 |
| 86 | bindsym $win+l exec --no-startup-id i3lock-fancy |
| 87 | # macropad 1 |
| 88 | bindsym $win+w exec $browser |
| 89 | # macropad Shift+1 |
| 90 | bindsym $win+Shift+w exec $incognito-browser |
| 91 | bindsym XF86Calculator exec kcalc |
| 92 | bindsym XF86Sleep exec i3suspend |
| 93 | # macropad 2 |
| 94 | bindsym $win+r exec $prog-editor |
| 95 | bindsym $win+Shift+r exec Typora |
| 96 | bindsym XF86HomePage exec --no-startup-id blackpearl-appsmenu.sh |
| 97 | #bindsym $win+p exec uxterm -T "spt" -geometry 90x30+800+30 -e spt |
| 98 | bindsym $win+m exec Telegram |
| 99 | |
| 100 | # window switching bindings |
| 101 | bindsym $alt+Tab exec --no-startup-id "blackpearl-window.sh desktop" |
| 102 | bindsym $alt+Ctrl+Tab exec --no-startup-id "blackpearl-window.sh all" |
| 103 | |
| 104 | # multimedia binding |
| 105 | # macropad top encoder |
| 106 | bindsym XF86AudioMute exec --no-startup-id pamixer -t |
| 107 | bindsym XF86AudioLowerVolume exec --no-startup-id pamixer -d 5 |
| 108 | bindsym XF86AudioRaiseVolume exec --no-startup-id pamixer -i 5 |
| 109 | # macropad bottom encoder |
| 110 | bindsym XF86AudioPlay exec --no-startup-id playerctl play-pause |
| 111 | bindsym XF86AudioPrev exec --no-startup-id playerctl previous |
| 112 | bindsym XF86AudioNext exec --no-startup-id playerctl next |
| 113 | |
| 114 | # brightness bindings |
| 115 | # macropad Alt + top encoder |
| 116 | bindsym $alt+XF86AudioLowerVolume exec --no-startup-id monitor-light.sh dec 10 |
| 117 | bindsym $alt+XF86AudioRaiseVolume exec --no-startup-id monitor-light.sh inc 10 |
| 118 | |
| 119 | # kill focused window |
| 120 | #bindsym $ctrl+Shift+q kill |
| 121 | |
| 122 | # restart polybar |
| 123 | # macropad Alt + bottom encoder |
| 124 | bindsym $alt+XF86AudioPlay exec --no-startup-id polybar-msg cmd restart |
| 125 | |
| 126 | # start rofi in dmenu mode (a program launcher) |
| 127 | bindsym $alt+F2 exec --no-startup-id blackpearl-runner.sh |
| 128 | |
| 129 | # change focus |
| 130 | bindsym $alt+j focus left |
| 131 | bindsym $alt+k focus down |
| 132 | bindsym $alt+l focus up |
| 133 | bindsym $alt+ograve focus right |
| 134 | |
| 135 | # alternatively, you can use the cursor keys: |
| 136 | bindsym $alt+Left focus left |
| 137 | bindsym $alt+Down focus down |
| 138 | bindsym $alt+Up focus up |
| 139 | bindsym $alt+Right focus right |
| 140 | |
| 141 | # move focused window |
| 142 | bindsym $alt+Shift+j move left |
| 143 | bindsym $alt+Shift+k move down |
| 144 | bindsym $alt+Shift+l move up |
| 145 | bindsym $alt+Shift+ograve move right |
| 146 | |
| 147 | # alternatively, you can use the cursor keys: |
| 148 | bindsym $alt+Shift+Left move left |
| 149 | bindsym $alt+Shift+Down move down |
| 150 | bindsym $alt+Shift+Up move up |
| 151 | bindsym $alt+Shift+Right move right |
| 152 | |
| 153 | # split in horizontal orientation |
| 154 | bindsym $alt+h split h;exec notify-send 'splitting windows horizontally' |
| 155 | # split in vertical orientation |
| 156 | bindsym Shift+$alt+h split v;exec notify-send 'splitting windows vertically' |
| 157 | |
| 158 | # enter fullscreen mode for the focused container |
| 159 | bindsym $alt+f fullscreen toggle |
| 160 | |
| 161 | # change container layout (stacked, tabbed, toggle split) |
| 162 | bindsym $alt+w layout tabbed;exec notify-send 'layout tabbed' |
| 163 | bindsym Shift+$alt+w layout stacking;exec notify-send 'layout stacking' |
| 164 | bindsym Ctrl+$alt+w layout toggle split;exec notify-send 'layout split' |
| 165 | |
| 166 | # toggle tiling / floating |
| 167 | bindsym $alt+Shift+space floating toggle |
| 168 | |
| 169 | # change focus between tiling / floating windows |
| 170 | bindsym $alt+space focus mode_toggle |
| 171 | |
| 172 | # focus the parent container |
| 173 | bindsym $alt+a focus parent |
| 174 | |
| 175 | # focus the child container |
| 176 | #bindsym $win+d focus child |
| 177 | |
| 178 | # switch to workspace |
| 179 | bindsym Ctrl+F1 workspace $ws1 |
| 180 | bindsym Ctrl+F2 workspace $ws2 |
| 181 | bindsym Ctrl+F3 workspace $ws3 |
| 182 | bindsym Ctrl+F4 workspace $ws4 |
| 183 | bindsym Shift+Ctrl+F1 workspace $ws5 |
| 184 | bindsym Shift+Ctrl+F2 workspace $ws6 |
| 185 | bindsym Shift+Ctrl+F3 workspace $ws7 |
| 186 | bindsym Shift+Ctrl+F4 workspace $ws8 |
| 187 | |
| 188 | # move focused container to workspace |
| 189 | bindsym $win+Ctrl+F1 move container to workspace $ws1 |
| 190 | bindsym $win+Ctrl+F2 move container to workspace $ws2 |
| 191 | bindsym $win+Ctrl+F3 move container to workspace $ws3 |
| 192 | bindsym $win+Ctrl+F4 move container to workspace $ws4 |
| 193 | bindsym $win+Shift+Ctrl+F1 move container to workspace $ws5 |
| 194 | bindsym $win+Shift+Ctrl+F2 move container to workspace $ws6 |
| 195 | bindsym $win+Shift+Ctrl+F3 move container to workspace $ws7 |
| 196 | bindsym $win+Shift+Ctrl+F4 move container to workspace $ws8 |
| 197 | |
| 198 | # navigate workspaces |
| 199 | #bindsym $win+Home workspace $ws1 |
| 200 | #bindsym $win+End workspace $ws8 |
| 201 | bindsym $win+XF86AudioPrev workspace prev |
| 202 | bindsym $win+XF86AudioNext workspace next |
| 203 | |
| 204 | # assign programs to specific workspaces |
| 205 | assign [class="Firefox"] $ws1 |
| 206 | assign [class="Sublime_text"] $ws2 |
| 207 | for_window [title="^ssh*"] move to workspace $ws4 |
| 208 | assign [class="Alacritty"] $ws3 |
| 209 | assign [class="Gimp"] $ws5 |
| 210 | assign [class="Typora"] $ws6 |
| 211 | assign [class="trojita"] $ws6 |
| 212 | assign [class="Joplin"] $ws8 |
| 213 | assign [class="Telegram"] $ws7 |
| 214 | |
| 215 | # open specific apps in floating mode |
| 216 | for_window [class="kcalc"] floating enable border pixel 1 |
| 217 | for_window [class="lxsudo"] floating enable border pixel 1 |
| 218 | for_window [title="^spt$"] floating enable border pixel 1 |
| 219 | |
| 220 | # trojita starts in tabbed layout |
| 221 | for_window [class="trojita"] layout tabbed |
| 222 | |
| 223 | # switch to workspace with urgent window automatically |
| 224 | for_window [urgent=latest] focus |
| 225 | |
| 226 | client.focused #f57c00 #ffb74d #303030 #7986cb |
| 227 | client.focused_inactive #303030 #303030 #ffb74d #303030 |
| 228 | client.unfocused #303030 #303030 #BDBDBD #303030 |
| 229 | client.urgent #D32F2F #D32F2F #303030 #D32F2F |
| 230 | |
| 231 | # window borders |
| 232 | hide_edge_borders both |
| 233 | for_window [class="^.*"] border pixel 0 |
| 234 | |
| 235 | gaps outer 0 |
| 236 | gaps inner 10 |
| 237 | workspace $ws1 gaps inner 0 |
| 238 | workspace $ws2 gaps inner 0 |
| 239 | workspace $ws5 gaps inner 0 |
| 240 | |
| 241 | # reload the configuration file |
| 242 | bindsym $alt+Shift+c reload |
| 243 | |
| 244 | # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) |
| 245 | bindsym $alt+Shift+r restart |
| 246 | |
| 247 | # exit i3 (logs you out of your X session) |
| 248 | #bindsym $win+Shift+e exec "i3-nagbar -t warning -m 'Exit i3? This will end your session.' -b 'Yes, exit i3' 'i3-msg exit'" |
| 249 | |
| 250 | # Set shut down, restart and locking features |
| 251 | bindsym $win+x exec --no-startup-id blackpearl-powermenu.sh |
| 252 | |
| 253 | # resize window (you can also use the mouse for that) |
| 254 | mode "resize" { |
| 255 | # These bindings trigger as soon as you enter the resize mode |
| 256 | |
| 257 | bindsym j resize shrink width 10 px or 10 ppt |
| 258 | bindsym k resize grow height 10 px or 10 ppt |
| 259 | bindsym l resize shrink height 10 px or 10 ppt |
| 260 | bindsym ograve resize grow width 10 px or 10 ppt |
| 261 | |
| 262 | # same bindings, but for the arrow keys |
| 263 | bindsym Left resize shrink width 10 px or 10 ppt |
| 264 | bindsym Down resize grow height 10 px or 10 ppt |
| 265 | bindsym Up resize shrink height 10 px or 10 ppt |
| 266 | bindsym Right resize grow width 10 px or 10 ppt |
| 267 | |
| 268 | # back to normal: Enter or Escape |
| 269 | bindsym Return mode "default" |
| 270 | bindsym Escape mode "default" |
| 271 | } |
| 272 | |
| 273 | bindsym $win+Ctrl+r mode "resize" |
| 274 | |
| 275 | set $wine_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global) |
| 276 | set $wine_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global) |
| 277 | bindsym $win+Shift+g mode "$wine_gaps" |
| 278 | |
| 279 | mode "$wine_gaps" { |
| 280 | bindsym o mode "$wine_gaps_outer" |
| 281 | bindsym i mode "$wine_gaps_inner" |
| 282 | bindsym Return mode "$wine_gaps" |
| 283 | bindsym Escape mode "default" |
| 284 | } |
| 285 | |
| 286 | |
| 287 | mode "$wine_gaps_outer" { |
| 288 | bindsym plus gaps outer current plus 5 |
| 289 | bindsym minus gaps outer current minus 5 |
| 290 | bindsym 0 gaps outer current set 0 |
| 291 | |
| 292 | bindsym Shift+plus gaps outer all plus 5 |
| 293 | bindsym Shift+minus gaps outer all minus 5 |
| 294 | bindsym Shift+0 gaps outer all set 0 |
| 295 | |
| 296 | bindsym Return mode "$wine_gaps" |
| 297 | bindsym Escape mode "default" |
| 298 | } |
| 299 | mode "$wine_gaps_inner" { |
| 300 | bindsym plus gaps inner current plus 5 |
| 301 | bindsym minus gaps inner current minus 5 |
| 302 | bindsym 0 gaps inner current set 0 |
| 303 | |
| 304 | bindsym Shift+plus gaps inner all plus 5 |
| 305 | bindsym Shift+minus gaps inner all minus 5 |
| 306 | bindsym Shift+0 gaps inner all set 0 |
| 307 | |
| 308 | bindsym Return mode "$wine_gaps" |
| 309 | bindsym Escape mode "default" |
| 310 | } |
| 311 | |
| 312 | # start both polybar |
| 313 | exec_always --no-startup-id $HOME/bin/run-polybar.sh |
| 314 | |
| 315 | # start networkmanager applet |
| 316 | exec --no-startup-id nm-applet |
| 317 | |
| 318 | # start lxqt-notificationd |
| 319 | exec --no-startup-id lxqt-notificationd |
| 320 | |
| 321 | # start pulseaudio daemon |
| 322 | exec --no-startup-id start-pulseaudio-x11 |
| 323 | |
| 324 | # start dunst |
| 325 | #exec --no-startup-id dunst |
| 326 | |
| 327 | # start tint2 i3status |
| 328 | #exec --no-startup-id tint2 -c ~/.config/tint2/i3status.tint2rc |
| 329 | |
| 330 | # start tint2 bar |
| 331 | #exec --no-startup-id tint2 -c ~/.config/tint2/minima.tint2rc |
| 332 | |
| 333 | # start kdeconnect |
| 334 | #exec --no-startup-id kdeconnect-indicator |
| 335 | |
| 336 | # start redshift applet |
| 337 | #exec --no-startup-id redshift-gtk |
| 338 | |
| 339 | # start qtpass |
| 340 | #exec --no-startup-id qtpass |
| 341 | |
| 342 | # start feh-blur |
| 343 | exec --no-startup-id feh-blur -b 7 --no-animate -d |