<!DOCTYPE html>
<html lang="en">

    <head>
        <title>wm_tools | Paul&#x27;s Site of Stuff</title>
        
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
    <meta name="robots" content="noodp"/>

    <link rel="stylesheet" href="https://paulwilde.uk/style.css">
    <link rel="stylesheet" href="https://paulwilde.uk/color/orange.css">

        <link rel="stylesheet" href="https://paulwilde.uk/color/background_blue.css">
    
    <link rel="stylesheet" href="https://paulwilde.uk/font-hack-subset.css">

    <meta name="description" content="a set of information system tools displayed in dmenu (or rofi)">

    <meta property="og:description" content="a set of information system tools displayed in dmenu (or rofi)">
    <meta property="og:title" content="wm_tools | Paul's Site of Stuff">
    <meta property="og:type" content="article">
    <meta property="og:url" content="https://paulwilde.uk/ponderings/wm-tools/">

    <meta name="twitter:card" content="summary_large_image">
    <meta name="twitter:description" content="a set of information system tools displayed in dmenu (or rofi)">
    <meta name="twitter:title" content="wm_tools | Paul's Site of Stuff">
    <meta property="twitter:domain" content="paulwilde.uk">
    <meta property="twitter:url" content="https://paulwilde.uk/ponderings/wm-tools/">

        <link rel="shortcut icon" type="image/png" href="/favicon.png">
        
        </head>
    <body class="">
        <div class="container">
            
            <header class="header">
                <div class="header__inner">
                    <div class="header__logo">
                        
                        <a href="https://paulwilde.uk" style="text-decoration: none;">
                            <div class="logo">
                                
                                Hello, I&#x27;m Paul
                                
                            </div>
                        </a>
                    </div>
                </div>

                
                <nav class="menu">
            <ul class="menu__inner">
                <li><a href="/">home</a></li>
            
                <li><a href="/aboutme">about me</a></li>
            
                <li><a href="/ponderings">ponderings</a></li>
            
                <li><a href="/iuse">i use …</a></li>
            
                <li><a href="/tags">tags</a></li>
            
                <li><a href="/feed.xml">rss</a></li>
            </ul>
        </nav>
    
    
                
            </header>
            
                
    <div class="post">
        
<h1 class="post-title"><a href="https://paulwilde.uk/ponderings/wm-tools/">wm_tools</a></h1>
<div class="post-meta-inline">
    
<span class="post-date">
    2022-05-08
    </span>

</div>


<span class="post-tags-inline">
    :: tags:&nbsp;
    <a class="post-tag" href="https://paulwilde.uk/tags/development/">#development</a>&nbsp;
    <a class="post-tag" href="https://paulwilde.uk/tags/nim/">#nim</a>&nbsp;
    <a class="post-tag" href="https://paulwilde.uk/tags/tools/">#tools</a>&nbsp;
    <a class="post-tag" href="https://paulwilde.uk/tags/window-manager-tools/">#window manager tools</a></span>


        


        

<div class="sourcecode">
    <a href="https:&#x2F;&#x2F;codeberg.org&#x2F;pswilde&#x2F;wm_tools" target="_blank">source code</a>
</div>


        


        




        <div class="post-content">
    <h1 id="a-selection-of-information-output-tools-for-dmenu">A selection of information output tools for dmenu</h1>
<p>These are a selection of independant tools for displaying various information
about system status in dmenu. Some of them i.e. <code>volume</code> have options (up, down, mute...)
which are selectable options in dmenu.</p>
<span id="continue-reading"></span><h2 id="tools">Tools</h2>
<ul>
<li><code>pingclock</code>        performs a single <code>ping</code> to a server and returns the response time</li>
<li><code>battery</code>          shows the current battery level</li>
<li><code>brightness</code>       shows the current backlight level and gives options to adjust it</li>
<li><code>volume</code>           shows the current volume level and gives options to adjust and manage it</li>
<li><code>date</code>             shows the date</li>
<li><code>fuzzytime</code>        shows the fuzzytime clock</li>
<li><code>wlan</code>             shows the state of the wireless network interface. SSID connected to and signal level.</li>
<li><code>nic</code>              shows the status and/or the ip address of the network interface card</li>
<li><code>temperature</code>      shows the current CPU temperature</li>
<li><code>notes</code>            a simple one liner note taking tool, displaying notes in <code>dmenu</code>/<code>rofi</code></li>
</ul>
<p>The next two do not work with <code>rofi</code> unless you have <code>alias dmenu=rofi</code> set, but they're pretty nice tools</p>
<ul>
<li><code>passmenu_wrapper</code> a wrapper for passmenu. It basically just styles <code>passmenu</code> with no other features</li>
<li><code>command_wrapper</code>  inspired by passmenu_wrapper, a basic tool to run other <code>dmenu</code> related tools with uniform styling.
<ul>
<li>For example: <code>dmenu_run</code>, <code>clipmenu</code>, <code>passmenu</code> etc.</li>
</ul>
</li>
</ul>
<h3 id="example-in-dmenu">Example in <code>dmenu</code>:</h3>
<p><img src="https://user-images.githubusercontent.com/31094984/167123173-ee8092a2-d5ab-47b4-b207-ced328072cc0.gif" alt="dmenu_tools" /></p>
<h3 id="example-of-command-wrapper-with-clipmenu">Example of <code>command_wrapper</code> with <code>clipmenu</code></h3>
<p><img src="https://user-images.githubusercontent.com/31094984/167122436-eea0be88-a929-46e8-9b4d-cb677dcb129c.gif" alt="command_wrap" /></p>
<h2 id="how-to-compile">How to compile</h2>
<p>There are some configuration variables explicit to me, you'll need to change them for you for them to be useful I imagine.<br />
Configuration variables are compile - there are no config files or runtime parameters (except for "rofi")</p>
<p>Each tool is compiled separately, for example:</p>
<pre data-lang="sh" style="background-color:#212121;color:#eeffff;" class="language-sh "><code class="language-sh" data-lang="sh"><span style="color:#82aaff;">nim c pingclock
</span></code></pre>
<p>and then run with</p>
<pre data-lang="sh" style="background-color:#212121;color:#eeffff;" class="language-sh "><code class="language-sh" data-lang="sh"><span style="color:#82aaff;">./pingclock 
</span><span style="font-style:italic;color:#4a4a4a;"># or
</span><span style="color:#82aaff;">./pingclock rofi
</span></code></pre>
<h2 id="how-to-use">How to use</h2>
<p>Personally, I have these bound to key combinations in i3.
In fact, I have a seperate <code>bindsym</code> mode in which all these
tools are accessible i.e. <code>$mod+i</code> to get to "info" mode then <code>p</code> to show pingclock.<br />
It's completely up to you how to run them, they're just simple CLI tools really.</p>
<h3 id="you-can-also-set-the-volume-and-brightness-levels-by-typing-a-numeric-figure-into-the-dmenu-rofi-input-box">You can also set the volume and brightness levels by typing a numeric figure into the dmenu/rofi input box</h3>
<h2 id="dependencies">Dependencies</h2>
<ul>
<li><code>dmenu</code> or <code>rofi</code></li>
<li><code>yad</code> for calendar</li>
<li><code>passmenu</code> for passmenu_wrapper</li>
<li>basically any tool that's used to gather the information.</li>
<li>"tools" for audio etc. (<code>pamixer</code>, <code>ncpamixer</code>, etc.) can be set in the source</li>
</ul>

</div>

        
<div class="pagination">
    <div class="pagination__title">
        <span class="pagination__title-h">Thanks for reading! Read other posts?</span>
        <hr />
    </div>
    <div class="pagination__buttons">
        <span class="button previous">
            <a href="https://paulwilde.uk/ponderings/thisisnotmyemail/">
                <span class="button__icon">←</span>&nbsp;
                <span class="button__text">thisisnotmy.email</span>
            </a>
        </span>
        
        
        <span class="button next">
            <a href="https://paulwilde.uk/ponderings/fortieth/">
                <span class="button__text">Fortieth</span>&nbsp;
                <span class="button__icon">→</span>
            </a>
        </span>
        </div>
</div>

    </div>


            
            <footer class="footer">
                <div class="footer__inner">
                    
                    <a href="https:&#x2F;&#x2F;notnull.space&#x2F;@paul" rel="me">fediverse (gts)</a>
                    
                    <a href="https:&#x2F;&#x2F;snac.notnull.space&#x2F;paul" rel="me">fediverse (snac)</a>
                    
                    <a href="https:&#x2F;&#x2F;codeberg.org&#x2F;pswilde" rel="me">codeberg</a>
                    
                    <a href="https:&#x2F;&#x2F;keyoxide.org&#x2F;85633E30514CC1932E4268460ED12CF710BC42CA" rel="me">keyoxide</a>
                    
                </div>
                <div class="footer__inner">
                    <div class="copyright">
                        <span>© 
    2024
 Paul Wilde</span>
                        <span class="copyright-theme">
                            <span class="copyright-theme-sep">:: </span>
                            Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a>
                        </span>
                    </div>
                    </div>
            </footer>
            
        </div>
        </body>

</html>