i3/config (view raw)
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 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 |
# vim: foldmethod=marker ### Appearance ###{{{ ## Wallpaper ## {{{ # set $wall_set feh --bg-fill ~/desktop/walls/wall.jpg set $wall_set feh --bg-fill ~/desktop/walls/black.jpg #set $wall_set wal -e -s -i ~/desktop/walls/canvas.jpg # pywal will set the wallpaper and change the colors only for # rofi and some other things #}}} ## Borders ## {{{ # Border style <normal|1pixel|pixel <px>|none|pixel> default_border none default_floating_border none # Hide edge_borders hide_edge_borders none # Change border style <normal|pixel <px>|none|toggle> bindsym $mod+u border toggle bindsym $mod+Shift+u border pixel 4 #}}} ## Gaps ## {{{ gaps inner 10 gaps outer -4 bindsym $mod+Shift+0 gaps inner current set 0 , gaps outer current set 0 bindsym $mod+Shift+9 gaps inner current set 10 , gaps outer current set -4 #gaps used if only more than one container on the workspace smart_gaps on # Gaps Mode set $mode_gaps Gaps: (o) outer, (i) inner, (r) reset current, (R) reset all, (0) Zero gaps current set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global) set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global) bindsym $mod+Shift+v mode "$mode_gaps" mode "$mode_gaps" { bindsym o mode "$mode_gaps_outer" bindsym i mode "$mode_gaps_inner" bindsym r gaps inner current set 10 , gaps outer current set -4 , mode "default" bindsym Shift+r gaps inner all set 10 , gaps outer all set -4 , mode "default" bindsym 0 gaps inner current set 0 , gaps outer current set 0 , mode "default" bindsym Return mode "default" bindsym Escape mode "default" } mode "$mode_gaps_inner" { bindsym plus gaps inner current plus 5 bindsym minus gaps inner current minus 5 bindsym 0 gaps inner current set 0 bindsym Shift+plus gaps inner all plus 5 bindsym Shift+minus gaps inner all minus 5 bindsym Shift+0 gaps inner all set 0 bindsym Return mode "default" bindsym Escape mode "default" } mode "$mode_gaps_outer" { bindsym plus gaps outer current plus 5 bindsym minus gaps outer current minus 5 bindsym 0 gaps outer current set 0 bindsym Shift+plus gaps outer all plus 5 bindsym Shift+minus gaps outer all minus 5 bindsym Shift+0 gaps outer all set 0 bindsym Return mode "default" bindsym Escape mode "default" } #}}} ## Color Variables ##{{{ # Slightly modified Arc theme colors set $arc_blue #5294E2 set $arc_dark_blue #2f343f set $arc_darker_blue #181b21 set $arc_white #ededed set $arc_grey #777777 set $arc_red #cc575d # Mist colors set $mist_green #4a6a38 set $mist_dark_blue #040f18 set $mist_darker_blue #01060a #Brown colors set $brown_dark #1e0106 set $brown_darker #0f0000 set $brown_gold #d17f27 # Base16 Seti UI by # template by Matt Parnell, @parnmatt set $base00 #151718 set $base01 #8ec43d set $base02 #3B758C set $base03 #41535B set $base04 #43a5d5 set $base05 #d6d6d6 set $base06 #eeeeee set $base07 #ffffff set $base08 #Cd3f45 set $base09 #db7b55 set $base0A #e6cd69 set $base0B #9fca56 set $base0C #55dbbe set $base0D #55b5db set $base0E #a074c4 set $base0F #8a553f # client.focused $base0D $base0D $base00 $base01 # client.focused_inactive $base02 $base02 $base03 $base01 # client.unfocused $base01 $base01 $base03 $base01 # client.urgent $base02 $base08 $base07 $base08 #}}} ## Window Decorations ##{{{ # class border backgr. text indic. child_border client.focused #232323 #232323 #cccccc client.focused_inactive #000000 #000000 #cccccc client.unfocused #000000 #000000 #777777 client.urgent $arc_red $arc_red $arc_white client.placeholder #000000 #0c0c0c #ffffff #000000 client.background #2B2C2B # client.focused $arc_dark_blue $arc_dark_blue $arc_white # client.focused_inactive $arc_darker_blue $arc_darker_blue $arc_white # client.unfocused $arc_darker_blue $arc_darker_blue $arc_grey # client.urgent $arc_red $arc_red $arc_white # client.placeholder #000000 #0c0c0c #ffffff #000000 # client.background #2B2C2B #}}} ## Pywal Color Scheme ##{{{ # set_from_resource $fg i3wm.color8 #f0f0f0 # set_from_resource $bg i3wm.color0 #f0f0f0 # set_from_resource $c2 i3wm.color2 #f0f0f0 # set_from_resource $c7 i3wm.color7 #f0f0f0 # # # class border backgr. text indicator child_border # client.focused $bg $bg $fg $c7 $c2 # client.focused_inactive $bg $bg $fg $c7 $c2 # client.unfocused $bg $bg $fg $c7 $c2 # client.urgent $bg $bg $fg $c7 $bg # client.placeholder $bg $bg $fg $c7 $bg # # client.background $bg #}}} #}}} ### Application Launcher Key Bindings ###{{{ set $dmenu_args -nb "#000" -sb "#FFF" -sf "#000" -h 20 bindsym $mod+Return exec --no-startup-id st bindsym $mod+Ctrl+Return exec --no-startup-id st -e tmux bindsym $mod+Shift+Return exec --no-startup-id st -t scratch-terminal bindsym $mod+b exec st -e "nnn" bindsym $mod+Ctrl+b exec terminal -e 'bmenu' # bindsym $mod+d exec "rofi -show run -lines 3 -padding 25" # bindsym $mod+d exec --no-startup-id `cat .config/launcher | dmenu -nb "#000" -sb "#FFF" -sf "#000" -h 20` bindsym $mod+d exec --no-startup-id `cat .config/launcher | dmenu $dmenu_args` bindsym $mod+i exec --no-startup-id clipmenu $dmenu_args -l 15 # Desktop application launcher # bindsym $mod+Shift+d exec --no-startup-id "rofi -show drun" bindsym $mod+Shift+d exec --no-startup-id j4-dmenu-desktop --dmenu='dmenu $dmenu_args -l 20 -i' # bindsym $mod+i exec --no-startup-id "qutebrowser" # PD bindsym $mod+p exec --no-startup-id dmenu_run $dmenu_args -l 20 -i -F # window swticher using rofi bindsym $mod+v exec --no-startup-id "rofi -show window -width 70" bindsym $mod+slash exec --no-startup-id st -e bash -c 'rifle "$(find -H ~/* ! -path "*repos*" -type f | fzf -i --reverse)"' bindsym $mod+z exec --no-startup-id change-wall # change volume or toggle mute bindsym XF86AudioRaiseVolume exec amixer -q -D pulse sset Master 5%+ bindsym XF86AudioLowerVolume exec amixer -q -D pulse sset Master 5%- bindsym XF86AudioMute exec amixer -q -D pulse sset Master toggle #bindsym $mod+slash exec --no-startup-id rifle `find ~/* -type f | dmenu $DMENU_ARGS -i -F -l 25` #}}} ### Window Management ###{{{ ## Window focus ##{{{ focus_follows_mouse no # change focus bindsym $mod+h focus left bindsym $mod+j focus down bindsym $mod+k focus up bindsym $mod+l focus right # move focused window bindsym $mod+Shift+h move left bindsym $mod+Shift+j move down bindsym $mod+Shift+k move up bindsym $mod+Shift+l move right #}}} ## Window resize ##{{{ # Resize window (you can also use the mouse for that) bindsym $mod+r mode "resize" mode "resize" { bindsym h resize shrink width 1 px or 1 ppt bindsym j resize shrink height 1 px or 1 ppt bindsym k resize grow height 1 px or 1 ppt bindsym l resize grow width 1 px or 1 ppt bindsym Shift+h resize shrink width 10 px or 10 ppt bindsym Shift+j resize shrink height 10 px or 10 ppt bindsym Shift+k resize grow height 10 px or 10 ppt bindsym Shift+l resize grow width 10 px or 10 ppt # exit resize mode: Enter or Escape bindsym Return mode "default" bindsym Escape mode "default" } #}}} ## Window move ##{{{ bindsym $mod+apostrophe mode "move" focus floating bindsym $mod+Shift+apostrophe sticky enable mode "move" { bindsym $mod+Tab focus right bindsym Shift+h move left 20 px bindsym Shift+j move down 20 px bindsym Shift+k move up 20 px bindsym Shift+l move right 20 px bindsym h move left 4 px bindsym j move down 4 px bindsym k move up 4 px bindsym l move right 4 px # back to normal: Enter or Escape bindsym Return mode "default" bindsym Escape mode "default" } #}}} ## Workspace ##{{{ # Workspace names #set $ws2 2: set $ws1 1 set $ws2 2 set $ws3 3 set $ws4 4 set $ws5 5 set $ws6 6 set $ws7 7 set $ws8 8 set $wsq q # switch to workspace bindsym $mod+1 workspace $ws1 bindsym $mod+2 workspace $ws2 bindsym $mod+3 workspace $ws3 bindsym $mod+4 workspace $ws4 bindsym $mod+5 workspace $ws5 bindsym $mod+6 workspace $ws6 bindsym $mod+7 workspace $ws7 bindsym $mod+8 workspace $ws8 bindsym $mod+q workspace $wsq # Move focused container to workspace bindsym $mod+Ctrl+1 move container to workspace $ws1 bindsym $mod+Ctrl+2 move container to workspace $ws2 bindsym $mod+Ctrl+3 move container to workspace $ws3 bindsym $mod+Ctrl+4 move container to workspace $ws4 bindsym $mod+Ctrl+5 move container to workspace $ws5 bindsym $mod+Ctrl+6 move container to workspace $ws6 bindsym $mod+Ctrl+7 move container to workspace $ws7 bindsym $mod+Ctrl+8 move container to workspace $ws8 bindsym $mod+Ctrl+q move container to workspace $wsq # Move to workspace with focused container bindsym $mod+Shift+1 move container to workspace $ws1; workspace $ws1 bindsym $mod+Shift+2 move container to workspace $ws2; workspace $ws2 bindsym $mod+Shift+3 move container to workspace $ws3; workspace $ws3 bindsym $mod+Shift+4 move container to workspace $ws4; workspace $ws4 bindsym $mod+Shift+5 move container to workspace $ws5; workspace $ws5 bindsym $mod+Shift+6 move container to workspace $ws6; workspace $ws6 bindsym $mod+Shift+7 move container to workspace $ws7; workspace $ws7 bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8 bindsym $mod+Shift+q move container to workspace $wsq; workspace $wsq workspace_auto_back_and_forth no bindsym $mod+Tab workspace back_and_forth bindsym $mod+Shift+Tab move container to workspace back_and_forth; workspace back_and_forth #navigate workspaces next / previous bindsym $mod+Ctrl+l workspace next bindsym $mod+Ctrl+h workspace prev #}}} ## Containter ##{{{ # split orientation bindsym $mod+m split h bindsym $mod+n split v # toggle fullscreen mode for the focused container bindsym $mod+f fullscreen toggle # change container layout (stacked, tabbed, toggle split) bindsym $mod+w layout tabbed bindsym $mod+e layout toggle split # toggle tiling / floating bindsym $mod+Shift+space floating toggle # change focus between tiling / floating windows bindsym $mod+space focus mode_toggle # toggle sticky bindsym $mod+Shift+s sticky toggle # focus the parent container # bindsym $mod+a focus parent # move the currently focused window to the scratchpad bindsym $mod+Shift+semicolon move scratchpad # Show the next scratchpad window or hide the focused scratchpad window. # If there are multiple scratchpad windows, this command cycles through them. bindsym $mod+semicolon scratchpad show #}}} ## Window Criteria ##{{{ # Open specific applications in floating mode for_window [title="TMDb Desktop Client"] floating enable, position center for_window [title="Screen Layout Editor"] floating enable for_window [title="Application Finder"] floating enable, resize set 500 700, move position center for_window [class="TelegramDesktop"] floating enable border pixel 1 for_window [title="alsamixer"] floating enable border pixel 1 for_window [class="Calamares"] floating enable border normal for_window [class="Clipgrab"] floating enable for_window [title="File Transfer*"] floating enable for_window [class="Galculator"] floating enable border pixel 1 for_window [class="GParted"] floating enable border normal for_window [title="i3_help"] floating enable sticky enable border normal for_window [class="Lightdm-gtk-greeter-settings"] floating enable for_window [class="Lxappearance"] floating enable sticky enable border normal for_window [class="Manjaro-hello"] floating enable for_window [class="Manjaro Settings Manager"] floating enable border normal for_window [title="MuseScore: Play Panel"] floating enable for_window [class="Nitrogen"] floating enable sticky enable border normal for_window [class="Oblogout"] fullscreen enable for_window [class="octopi"] floating enable for_window [title="About Pale Moon"] floating enable for_window [class="Pamac-manager"] floating enable for_window [class="Pavucontrol"] floating enable for_window [class="qt5ct"] floating enable sticky enable border normal for_window [class="Qtconfig-qt4"] floating enable sticky enable border normal for_window [class="Simple-scan"] floating enable border normal for_window [class="(?i)System-config-printer.py"] floating enable border normal for_window [class="Skype"] floating enable border normal for_window [class="Thus"] floating enable border normal for_window [class="Timeset-gui"] floating enable border normal for_window [class="(?i)virtualbox"] floating enable border normal for_window [class="Xfburn"] floating enable for_window [title="Nam Console v1.15"] floating enable move scratchpad for_window [title="Mumble(?i)"] floating enable resize set 575 385, move position 785 25 for_window [title="scratch-terminal"] floating enable resize set 720 432, move position 0 22 # Resize floating file chooser for_window [window_role="GtkFileChooserDialog"] resize set 840 580, move position center #}}} #}}} ### Dual Monitor Settings ###{{{ ## Mode - Monitor Positions ##{{{ set $monitor_top "xrandr --output HDMI-1 --mode 1280x1024 --pos 46x0 --rotate normal --output eDPI-1 --mode 1366x768 --pos 0x1024 --rotate normal" set $monitor_right "xrandr --output HDMI-1 --mode 1280x1024 --pos 1366x0 --rotate normal --output eDPI-1 --mode 1366x768 --pos 0x0 --rotate normal" set $monitor_none "xrandr --output HDMI-1 --off --output eDPI-1 --mode 1366x768 --pos 0x0 --rotate normal" set $monitor_duplicate "xrandr --output eDPI-1 --primary --mode 1366x768 --scale 1x1 --output HDMI-1 --same-as eDPI-1 --mode 1280x1024 --scale 0.75x0.75" set $monitor_right_r_left "xrandr --output HDMI-1 --mode 1280x1024 --pos 1370x0 --rotate left --output eDPI-1 --mode 1366x768 --pos 0x0 --rotate normal" set $mode_monitor_position (T)-Monitor Top , (Y)-Monitor right , (G)-Monitor None , (F)-Monitor Mirror , (<C-y>)-Monitor Right Rotate Left bindsym $mod+y mode "$mode_monitor_position" mode "$mode_monitor_position" { # these keybindings change the monitor position and then write to file the same command # is used to set the the respective position of the monitor. That command is then executed at startup # sets the monitor to the top bindsym t exec $monitor_top , exec $wall_set && sleep 0.01 , exec echo $monitor_top > ~/.config/last_layout , mode "default" # sets monitor to the right bindsym y exec $monitor_right , exec $wall_set && sleep 0.01 , exec echo $monitor_right > ~/.config/last_layout , mode "default" # when there is no external monitor connected bindsym g exec $monitor_none , exec $wall_set && sleep 0.01 , exec echo $monitor_none > ~/.config/last_layout , mode "default" # duplicate the laptop screen to an external monitor bindsym f exec $monitor_duplicate , exec $wall_set && sleep 0.01 , exec echo $monitor_duplicate > ~/.config/last_layout , mode "default" # sets monitor to the left and rotates it to left bindsym Ctrl+y exec --no-startup-id $monitor_right_r_left , exec $wall_set && sleep 0.01 , exec echo $monitor_right_r_left > ~/.config/last_layout , mode "default" bindsym Escape mode "default" bindsym Return mode "default" } ##}}} ## Mode - Move to Monitor ##{{{ set $mode_monitor_move Use h,j,k,l keys to move the workspace to another monitor bindsym $mod+a mode "$mode_monitor_move" mode "$mode_monitor_move"{ bindsym h move workspace to output left bindsym j move workspace to output down bindsym k move workspace to output up bindsym l move workspace to output right bindsym Shift+h move container to output left bindsym Shift+j move container to output down bindsym Shift+k move container to output up bindsym Shift+l move container to output right bindsym Escape mode "default" bindsym Return mode "default" } #}}} #}}} ### Autostart Applications/Scripts ###{{{ exec --no-startup-id newsboat-cron #exec --no-startup-id pacupdate-cron # Typematic delay and rate (Autorepeating key in X server) # exec --no-startup-id xset r rate 250 60 exec setxkbmap -layout 'us,in' -option "grp:shifts_toggle" -option "ctrl:nocaps" #exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 #exec --no-startup-id nm-applet #exec --no-startup-id xfce4-power-manager #exec --no-startup-id xautolock -time 10 -locker blurlock exec_always --no-startup-id ff-theme-util exec_always --no-startup-id fix_xcursor # Configures the monitors according to the last set layout using xrandr exec --no-startup-id ~/.config/last_layout exec_always --no-startup-id $wall_set exec --no-startup-id touchpad-conf && toggle_touchpad #}}} ### Misc ### {{{ #Modifier Key set $mod Mod4 # Use Mouse+$mod to drag floating windows floating_modifier $mod # exec_always --no-startup-id "killall flashfocus ; flashfocus" bindsym $mod+F2 exec --no-startup-id toggle_touchpad # Font for window titles. Will also be used by the bar unless a different font # is used in the bar {} block below. font pango:Hack 9 # kill focused window bindsym $mod+o kill bindsym $mod+Ctrl+o --release exec --no-startup-id xkill # Screenshot bindsym Print exec --no-startup-id i3-scrot bindsym $mod+Print --release exec --no-startup-id i3-scrot -w bindsym $mod+Shift+Print --release exec --no-startup-id i3-scrot -s # Screenshots for notes bindsym $mod+g exec --no-startup-id notes_scrot #exec --no-startup-id volumeicon bindsym $mod+Ctrl+m exec st -e 'alsamixer' # Screen brightness controls # bindsym XF86MonBrightnessUp exec "xbacklight -inc 10; notify-send 'brightness up'" # bindsym XF86MonBrightnessDown exec "xbacklight -dec 10; notify-send 'brightness down'" # switch to workspace with urgent window automatically for_window [urgent=latest] focus # reload the configuration file bindsym $mod+Shift+c reload # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) bindsym $mod+Shift+r restart # Set shut down, restart and locking features bindsym $mod+0 mode "$mode_system" set $mode_system (l)ock, (e)xit, switch_(u)ser, (s)uspend, (h)ibernate, (r)eboot, (Shift+s)hutdown mode "$mode_system" { bindsym l exec --no-startup-id i3lock -c 000000, mode "default" bindsym s exec --no-startup-id i3exit suspend, mode "default" bindsym e exec --no-startup-id i3-msg exit, mode "default" bindsym h exec --no-startup-id i3exit hibernate, mode "default" bindsym r exec --no-startup-id shutdown -r now, mode "default" bindsym Shift+s exec --no-startup-id shutdown now, mode "default" # exit system mode: "Enter" or "Escape" bindsym Return mode "default" bindsym Escape mode "default" } # }}} ### Status Bar ###{{{ #Start i3bar to display a workspace bar (plus the system information i3status if available) bar { i3bar_command i3bar status_command i3blocks position top font pango:DejaVu Sans Mono 9 # separator_symbol " ╱ " separator_symbol "│" bindsym button 4 workspace prev bindsym button 5 workspace next modifier none tray_output primary colors { separator #333333 background #050505 # background $base00 statusline $base05 # border, backgr, text focused_workspace #CCCCCC #CCCCCC #222222 active_workspace #333333 #333333 $eeeeee inactive_workspace #000000 #000000 $eeeeee urgent_workspace $base08 $base08 $base07 } } # hide/unhide i3bar bindsym $mod+Shift+m bar mode toggle #}}} |