====== i3wm ====== **i3wm** is a simple tiling window manager for Linux. Customisation is easy, and it comes with useful defaults. ===== Config ===== ==== Bar ==== You can set different bars for different screens. For example I find it useful to have time, date, battery, and volume always on my laptop screen, and have some monitoring stuff like free disk space, Internet bandwidth, and RAM usage when i have a secondary monitor plugged-in. So I have two seperate ''bar{}'' sections in my main i3 config file, one for each screen. You just need to give them each a label, a screen to target, and a seperate config to load. For example this is at the top of each ''bar'' definition: id bar-main output LVDS1 status_command i3blocks -c ~/.config/i3blocks/config-main id bar-secondary output VGA1 status_command i3blocks -c ~/.config/i3blocks/config-secondary ==== Floating Windows ==== Some useful lines to set some windows to always float: for_window [title="alsamixer"] floating enable for_window [title="Calculator"] floating enable, move position center for_window [class="Firefox" instance="Navigator"] floating enable for_window [class="Godot" instance="Godot_ProjectList"] floating enable for_window [instance="Godot_Engine" title="\(DEBUG\)$"] floating enable for_window [class="Lazarus"] floating enable for_window [title="MediaInfo"] floating enable for_window [title="Minecraft Launcher"] floating enable for_window [title="Page Info*"] floating enable for_window [class="pcmanfm" instance="Confirm File Replacing"] move position center for_window [title="Preferences$"] floating enable for_window [title="Radiotray-NG Bookmark Editor"] floating enable for_window [title="Screenshot Uploader"] floating enable for_window [class="Steam" title="^Steam Community Market"] floating enable for_window [class="Thunderbird" title="^Edit Event"] floating enable And here's a useful trick to have a shortcut to load a terminal window floating. So I have ''Meta+Enter'' to open a regular terminal window, and ''Meta+Shift+Enter'' to open a floating one. I use it a bunch when I want to quickly open a terminal, do something, and close it again; EG grab a video with [[yt-dlp]]: bindsym $mod+Shift+Return exec --no-startup-id urxvt -geometry 80x26 -name "floating_urxvt" for_window [class="URxvt" instance="floating_urxvt$"] floating enable What this does is set a shortcut to launch [[urxvt]], specify window dimensions, and give it a name. Then we use the regular stuff we use to tell a window to float, and target that specific window by the name we gave it. Can't remember where I read this, but I wish I'd always known it! ===== Tools ===== * [[github>talwrii/i3parse|i3parse]] - scans config file for unused keys (+?) {{tag>guide linux window-manager}}