wmutils.html (2894B)
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="utf-8"> 5 <title>Managing Windows Without a WM | Riaz's Website</title> 6 <link rel="stylesheet" href="/style.css"> 7 <link rel="icon" href="data:,"> 8 <meta name="description" content="Simple monocle-only setup with wmutils, a minimalist alternative to window managers"> 9 <meta name="viewport" content="width=device-width, initial-scale=1"> 10 </head> 11 <body> 12 <h1>Managing Windows Without a WM</h1> 13 <hr> 14 <article> 15 <p><a href="https://github.com/wmutils/core">wmutils</a> is a set of tools for X window manipulation. These individual programs can be combined to uniquely manage windows.</p> 16 <p>When I used dwm, I set the monocle layout to the default and rarely used the tiling mode. My workflow looked like this:</p> 17 <ol> 18 <li>Work in a window.</li> 19 <li>Open a second window that is referenced (such as a web browser).</li> 20 <li>Run a few commands in a third window.</li> 21 <li>Try to go to the previous one for reference.</li> 22 <li>Waddle around with Alt+j or Alt+k after realizing the opposite was needed, or move a window to a different tag.</li> 23 </ol> 24 <p>With wmutils, this is no longer a problem as it provides a program to change the stacking order, allowing me to bind Alt+Tab to switch between the last two focused windows, preventing distracted multitasking.</p> 25 <p>The scripts I use are based on z3bra's from the <a href="https://github.com/wmutils/contrib">contrib repo</a>. In my <a href="/git/dotfiles/file/.config/xinitrc">xinitrc</a>, I call the <a href="/git/dotfiles/file/.local/bin/winwatch.html">winwatch script</a> (depends on <a href="https://github.com/wmutils/opt">wew</a>) to fullscreen windows on the MAP X event and focus the previous window when one is destroyed. The MAP event is used rather than CREATE to work with web browsers that create multiple windows.</p> 26 <p>In dwm, even when in monocle mode, other windows were still visible at a small gap to the bottom of my screen. With the <a href="/git/dotfiles/file/.local/bin/fullscreen.html">script for fullscreening</a>, a fullscreen means a fullscreen.</p> 27 <p>For a status bar, instead of using xsetroot, I now use <a href="https://github.com/LemonBoy/bar">lemonbar</a> with this command: <code>while status; do sleep 1m; done | lemonbar -d -F '#ccc' &</code>. The -d option prevents it from being focused or deleted by <a href="/git/dotfiles/file/.config/sxhkd/sxhkdrc.html">my keybinds</a>. The <a href="/git/dotfiles/file/.local/bin/status.html">status command</a> does the following: <code>echo "%{r} $(cat /sys/class/power_supply/BAT0/capacity)% | $(date +%I:%M) | $(uptime -p)"</code>. The <code>%{r}</code> right-aligns the text.</p> 28 <p>In the fullscreen script, there is an offset, preventing the windows from hiding the status bar. xprop can be used to find the resolution of a window.</p> 29 </article> 30 <footer> 31 <hr> 32 <a href="/">Home Page</a></footer> 33 </body> 34 </html>