User Tools

Site Tools


i3wm

Table of Contents

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

i3wm.txt · Last modified: 2023/06/04 16:40 by rjt