riazj.com

source code for this website
git clone https://riazj.com/git/riazj.com
Log | Files | Refs | LICENSE

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>