Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Note: for brevity I'm going to refer to my Manjaro i3 system as Mi3 below.

Table of Contents
maxLevel4
minLevel3

Guide

Turn on firewall

...

View Git file
pathcompton/compton.conf
repository-id3
title~/.config/compton.conf
branchrefs/remotes/origin/master
linenumberstrue
collapsetrue


Info

Window Management and various other implementations in i3

My usage and window management approaches in i3

...

 have evolved over time - and continue to evolve.  If you look through

...

my dev branch

...

 you'll see many changes and things tried (and reverted) as I've slowly tried out things until I've found what works best for me.  That's one the many things I love about i3 (and linux in general).

Below are just a few of the window management approaches that have stuck with me.  Please note that these approaches might not work for you - and that's fine.  Feel free to adapt (or disregard) them.

My "special" window combiner bindsyms

I found that much of my time was spend combining two adjacent windows into a single container.  That is, say I have four application windows all in a tabbed container, like so:

...

Code Block
# special combo for container tabbed split of two windows next to each other
bindsym $mod+z split h, layout tabbed, focus right, move left, focus left, $con_title
bindsym $mod+Shift+z split h, layout tabbed, focus left, move right, focus right, $con_title

Container renaming

Dynamic container renaming

...

Code Block
set $con_title focus parent; title_format "<span foreground='#ff8c85'><b> %title</b></span>"; focus child; title_format " %title"

Scratchpad specific applications and bind their showing/hiding to a key shortcut

The i3 scratchpad is great holding area for application windows that you might want to keep hide from all workspaces until you need them.  I often use the scratchpad for applications like my email client (which I don't want to see until an email arrives etc.) or for an on-demand terminal (not really a drop-down terminal but similar use case), or for an application that I regularly want to (quickly) popup, retrieve information and then have it get out of the way just as quickly (like a password manager for example).

In order for the use case(s) above, you really want to bind the scratchpad application to a keyboard shortcut that can be pressed to show the scratchpad application, and then pressed again to hide said application.

I wrote several scripts and integrated these directly in my i3.conf.  They basically check if an application is running, if it's not then start it (where you can then scratchpad it with the normal shortcut: mod+Shift+minus).  If it is running (and already on the scratchpad) pressing the shortcut will show/hide said application.  Of course, you can write a script to do all this and call it from your i3.conf, but I prefer to explicitly define the bash script in my conf (partly to cut down on others needing to take copy of my scripts separately from my i3.conf file).

Enough waffling, some i3.conf examples:

Terminator (terminal application)

I use the very cool (I think) terminator.  See my i3.conf bindsym below:

Code Block
bindsym $mod+Shift+Return exec "APP=\\"terminator\\"; CLASS=\\"Terminator\\"; if pgrep -x \\"$APP\\" > /dev/null 2>&1; then i3-msg \\"[class=\\"$CLASS\\"] scratchpad show\\"; else \\"$APP\\"; fi"


Info

You'll note that I define separate bash variables ($APP, $CLASS) here as the command to start Terminator is "terminator" but the WM_CLASS (window class) returned is "Terminator".

KeeWeb

My bindsym for KeeWeb (keepass cross-platform client):

Code Block
bindsym $mod+o exec "APP=\\"KeeWeb\\"; if pgrep -x \\"$APP\\" > /dev/null 2>&1; then i3-msg \\"[class=\\"$APP\\"] scratchpad show\\"; else \\"$APP\\"; fi"

References

  1. https://forum.manjaro.org/t/reversed-scrolling-in-i3-edition/25811
  2. https://wiki.archlinux.org/index.php/Libinput
  3. https://wiki.archlinux.org/index.php/Touchpad_Synaptics
  4. https://wiki.archlinux.org/index.php/Razer_Blade#2018_version
  5. https://forum.manjaro.org/t/how-disable-bios-beep-like-sound-in-some-applications/17094/5
  6. https://wiki.archlinux.org/index.php/GNOME/Keyring#PAM_method
  7. https://i3wm.org/i3status/manpage.html#_disk
  8. http://duncanlock.net/blog/2013/06/07/how-to-switch-to-compton-for-beautiful-tear-free-compositing-in-xfce/
  9. http://vadim-kirilchuk-linux.blogspot.com.au/2013/05/swap-file-for-hibernation.html
  10. https://github.com/DaveDavenport/rofi
  11. https://wiki.archlinux.org/index.php/Per-application_transparency
  12. https://forum.manjaro.org/t/manjaro-i3-how-to-use-lightdm-as-lockscreen/42131
  13. https://www.reddit.com/r/i3wm/comments/7f84ae/is_there_a_way_to_rename_parent_containers/

...