Versions Compared

Key

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

...

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"

Save i3 layouts with i3-layout-manager

i3 natively supports saving and loading specific window layouts with the i3-save-tree, however the implementation is not really "user ready" in the sense that you can't use it as is to easily save and load different layouts.

Tomáš Báča wrote a fantastic script that makes this functionality extremely simple to use.

Tip

Note I've forked this repo and provided a fix (and pull request) to NOT kill sticky windows when loading a layout.  You can access my fork with this fix at https://github.com/jtaala/i3-layout-manager

I find having set/defined layouts really eases managing complex window setups.  Often I am working with many windows in some complicated setup (with child window containers of window containers etc.) and want to just get back to something simple(r) - which can be surprisingly tedious 

I've also added three layouts (which can be loaded) I use most and have provided bindsyms for each in my i3 config file.  These are:

Layout fileLayout NameKeyboard shortcutDescription
layout-ALL-TABBED.jsonALL-TABBEDmod+Shift+wBasic layout with single (root) tab container.  Useful for when you have a complex window layout and want to remove all windows and place in simple tabbed layout.
layout-SPLIT-TWO-TABBED.jsonSPLIT-TWO-TABBEDmod+Shift+aLayout with two root child containers (horizontally split) with each root child container set to be a tabbed container.
layout-SPLIT-FOUR-TABBED.jsonSPLIT-FOUR-TABBEDmod+Shift+sLayout with four root child containers (screen partitioned into four quarters) with each root child container set to be a tabbed container.


Info

You'll need to have the i3-layout-manager script in your system path for the i3.conf  shortcuts to work and load on startup.

You can clone the git repo (or even just download the script) and copy (or create a symbolic link) in your system path (I'd suggest /usr/local/bin), like below

Code Block
languagebash
git clone https://github.com/jtaala/i3-layout-manager.git
cd i3-layout-manager
sudo cp layout_manager.sh /usr/local/bin/i3-layout-manager
sudo chmod +x /usr/local/bin/i3-layout-manager

and download (somewhere) and copy my layouts above into the ~/.layouts folder, e.g.:

Code Block
languagebash
cp layout-ALL-TABBED.json layout-SPLIT-TWO-TABBED.json layout-SPLIT-FOUR-TABBED.json ~/.layouts


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/
  14. https://github.com/klaxalk/i3-layout-manager

Content by Label
showLabelsfalse
max5
spacesTKB
showSpacefalse
sortmodified
reversetrue
typepage
cqllabel in ("manjaro","i3") and type = "page" and space = "TKB"
labelsmanjaro i3

...