paritybit.ca

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 18792c797fdf50e3bcda55d0f9dbb6fb2f5028e4
parent 4f2c1de7e9fa64f1ed1e1282d556b6b44d4c11ba
Author: Jake Bauer <jbauer@paritybit.ca>
Date:   Thu, 11 Jun 2020 14:57:00 -0400

Publish new blog post

Diffstat:
Mpages/blog.md | 1+
Apages/blog/trying-out-dwm.md | 113+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mpages/home.md | 4++--
Mpublic/feeds/sitewide-feed.xml | 28++++++++++++++++++++++++++++
Apublic/img/dwm-laptop-thumb.png | 0
Apublic/img/dwm-laptop.png | 0
Mpublic/sitemap.xml | 1+
7 files changed, 145 insertions(+), 2 deletions(-)

diff --git a/pages/blog.md b/pages/blog.md @@ -20,6 +20,7 @@ href="https://social.paritybit.ca/@jbauer">Mastodon</a>. ### 2020 <ul> + <li>2020-06-11 <a href="blog/trying-out-dwm">Trying Out dwm</a></li> <li>2020-06-09 <a href="blog/setting-up-a-status-page">Setting Up a Status Page</a></li> <li>2020-06-08 <a href="blog/scripting-my-way-to-success">Scripting My Way to Success</a></li> <li>2020-06-07 <a href="blog/curating-my-blogroll">Curating My Blogroll</a></li> diff --git a/pages/blog/trying-out-dwm.md b/pages/blog/trying-out-dwm.md @@ -0,0 +1,113 @@ +## Trying Out dwm + +[//]: # "META_TEXT" + +[//]: # "main.min.css" + +[//]: # + +<div class="byline"> +<b>Written By:</b> Jake Bauer | + <b>Posted:</b> 2020-06-11 | + <b>Last Updated:</b> 2020-06-11 +</div> + +I've been using the [Simple Terminal](https://st.suckless.org/) (st) by +[suckless](https://suckless.org/) for two^W three^W four months now (damn, it's +already June) and I've been enjoying it thoroughly. By "enjoying it thoroughly" +I mean it gets out of my way and hasn't caused any problems. I haven't had to +recompile it either after I first set it up since I created the configuration +and keybindings that I like and I've stuck with them since. + +[dwm](https://dwm.suckless.org/) has been on my radar for a while from content +that I've seen on the Internet (mostly from the popular Linux YouTubers: +DistroTube, Luke Smith, and Mental Outlaw). I like the minimalism of suckless +software and I enjoy the paradigm where one compiles software to suit their +needs and desired features, but the window manager that I currently use (bspwm) +is really [comfortable](https://www.urbandictionary.com/define.php?term=Comfy). + +However, I came across this [video by Luke +Smith](https://www.youtube.com/watch?v=92uo5OBOKfY) ([invidious +link](https://www.invidio.us/watch?v=92uo5OBOKfY)) which sold me on trying out +dwm. Window swallowing (the topic of the video), is something that I instantly +knew I wanted when I saw it. According to the patch page, it's a feature taken +from Plan9's windowing system; yet another thing they got right. + +Since I've been planning to re-install the OS on my laptop, I figured I'd take +the opportunity to destroy my existing environment and set up dwm so I'd have it +all ready for the new OS. Setting up dwm is as easy as setting up other suckless +tools: clone the git repo, choose which patches I want, apply the patches, +configure my settings, and compile. All-in-all a fairly straightforward process. +Since I don't use many patches, I didn't have to spend a lot of time manually +patching; just a few lines here and there. + +The default statusbar that ships with dwm is quite spartan. It's configured by +using `xsetroot -name <string>` where `<string>` is the content of the bar (CPU +usage, RAM usage, etc). It's possible to do all this yourself with a bash script +that you call from your `xinitrc` or through your crontab, but I chose to use +[slstatus](https://tools.suckless.org/slstatus/) since it comes with a bunch of +modules ready to go and does the whole `xsetroot` thing itself. If there are any +custom thing I want to add to the bar, I can use slstatus to call a script for +me. + +One thing I made sure to do for this new environment was to compile all of +dmenu, dwm, and st with their corresponding Xresources patches so that I can +define colours, fonts, and more in my Xresources file. This allows me to update +the colourscheme and whatnot without needing to recompile. I also noticed that +vanilla dwm, straight out of the box, is actually completely usable. It comes +with sane keybindings and settings and looks great (in my opinion, of course). +The only thing I had to get used to was the master and stack layout that dwm +uses compared to bspwm's fibonacci layout. With dwm, there is no moving left and +right between windows, just up and down the stack. It makes sense given the way +dwm's layout works and I found it easy to work with once I got used to it. + +Anyways, here's a picture of my desktop: + +<figure> + <a href="/img/dwm-laptop.png"><img src="/img/dwm-laptop-thumb.png" + alt="dwm as it appears on my laptop. A screen is open and floating showing + the output of the neofetch command"/></a> +</figure> + +I've implemented things like taking screenshots, changing brightness, new update +notifications, and battery charge status notifications through scripts which are +called either by using shortcuts in dwm or by cron. I've also decided that I'm +going to change from using the status bar to using my notification daemon dunst +for brightness and audio level indicators with the help of this [Arch wiki +article](https://wiki.archlinux.org/index.php/Dunst#Using_dunstify_as_volume/brightness_level_indicator). + +Now, I know this doesn't really matter given the size of sotrage devices +nowadays, but the size of my dwm setup is also _way_ lower compared to my bspwm +setup. bspwm, plus its necessary tools bspc and sxhkd, weigh in at 324,200 +bytes or 316.60 KiB whereas dwm is only 77,936 bytes or 76.11 KiB. + +If I tally up the entire environment I was using when I first started +(bspwm+components, urxvt, nitrogen, rofi, polybar) compared to what I'm using +now (dwm, st, feh, dmenu, slstatus), that's 138,276,704 bytes (131.87 **MiB**) +versus only 463,432 bytes (452.57 KiB); a huge savings which no doubt also +increased how much RAM my system has available for doing other things. Also, +letting my system idle with nothing but a terminal window open, I let my system +load average settle and measured it once every 5 seconds with a while loop. +After a 15 minute interval passed, it was reading 0.00/0.00/0.00 consistently. + +My final verdict is that dwm is great. It's starting to feel as comfy as bspwm +with the added benefit of the software feeling like it's custom built and +tailored for my needs (which it is). It's also really fun to use because of [how +much I love scripting](/blog/scripting-my-way-to-success). + +You can view the scripts I use as well as other configuration information in [my +dotfiles repo](https://git.sr.ht/~jbauer/dotfiles). My custom builds for each of +the suckless tools I use are contained in the `custom` branch of each tool's +repository: [dwm](https://git.sr.ht/~jbauer/dwm), +[st](https://git.sr.ht/~jbauer/st), +[slstatus](https://git.sr.ht/~jbauer/slstatus), and +[dmenu](https://git.sr.ht/~jbauer/dmenu). The patches I chose to apply are in +the `patches` folder in each repository. Please note that the dotfiles repo is +going to be retired to `dotfiles-legacy` as I switch over to using dwm full time +on all of my machines. I am keeping the `dotfiles-legacy` repository around so +others can view and use my configuration for things like `bspwm` and `neomutt`. + +_This is my forty-first post for the +[#100DaysToOffload](https://social.paritybit.ca/tags/100DaysToOffload) +challenge. You can learn more about this challenge over at +[https://100daystooffload.com](https://100daystooffload.com)._ diff --git a/pages/home.md b/pages/home.md @@ -20,6 +20,8 @@ extent)! Access through `gopher://paritybit.ca` or `gemini://paritybit.ca`. src="/img/feed-icon.png" width="15" height="15" alt="Click for RSS Feed"/> </a> </div> +2020-06-11 <a class="feed-item" href="blog/trying-out-dwm">Trying Out dwm</a> + 2020-06-09 <a class="feed-item" href="blog/setting-up-a-status-page">Setting Up a Status Page</a> 2020-06-08 <a class="feed-item" href="blog/scripting-my-way-to-success">Scripting My Way to Success</a> @@ -37,8 +39,6 @@ extent)! Access through `gopher://paritybit.ca` or `gemini://paritybit.ca`. 2020-05-29 <a class="feed-item" href="blog/book-review-the-mediocre-programmer">Book Review: The Mediocre Programmer</a> 2020-05-28 <a class="feed-item" href="blog/a-quick-rant-about-web-font-sizes">A Quick Rant About Web Font Sizes</a> - -2020-05-27 <a class="feed-item" href="blog/i-like-perl">I Like Perl</a> ### What is a Parity Bit? It is a bit (in the 1's and 0's sense) used in checking for errors in digital diff --git a/public/feeds/sitewide-feed.xml b/public/feeds/sitewide-feed.xml @@ -7,6 +7,34 @@ <description>The feed that covers all notable additions, updates, announcements, and other changes for the entire paritybit.ca website.</description> <item> + <title>Trying Out dwm</title> + <link>https://www.paritybit.ca/blog/trying-out-dwm</link> + <guid>https://www.paritybit.ca/blog/trying-out-dwm</guid> + <pubDate>Thu, 11 Jun 2020 01:11:28 -0400</pubDate> +<description><![CDATA[<h2 id="trying-out-dwm">Trying Out dwm</h2> +<div class="byline"> +<p><b>Written By:</b> Jake Bauer | <b>Posted:</b> 2020-06-11 | <b>Last Updated:</b> 2020-06-11</p> +</div> +<p>I’ve been using the <a href="https://st.suckless.org/">Simple Terminal</a> (st) by <a href="https://suckless.org/">suckless</a> for two^W three^W four months now (damn, it’s already June) and I’ve been enjoying it thoroughly. By “enjoying it thoroughly” I mean it gets out of my way and hasn’t caused any problems. I haven’t had to recompile it either after I first set it up since I created the configuration and keybindings that I like and I’ve stuck with them since.</p> +<p><a href="https://dwm.suckless.org/">dwm</a> has been on my radar for a while from content that I’ve seen on the Internet (mostly from the popular Linux YouTubers: DistroTube, Luke Smith, and Mental Outlaw). I like the minimalism of suckless software and I enjoy the paradigm where one compiles software to suit their needs and desired features, but the window manager that I currently use (bspwm) is really <a href="https://www.urbandictionary.com/define.php?term=Comfy">comfortable</a>.</p> +<p>However, I came across this <a href="https://www.youtube.com/watch?v=92uo5OBOKfY">video by Luke Smith</a> (<a href="https://www.invidio.us/watch?v=92uo5OBOKfY">invidious link</a>) which sold me on trying out dwm. Window swallowing (the topic of the video), is something that I instantly knew I wanted when I saw it. According to the patch page, it’s a feature taken from Plan9’s windowing system; yet another thing they got right.</p> +<p>Since I’ve been planning to re-install the OS on my laptop, I figured I’d take the opportunity to destroy my existing environment and set up dwm so I’d have it all ready for the new OS. Setting up dwm is as easy as setting up other suckless tools: clone the git repo, choose which patches I want, apply the patches, configure my settings, and compile. All-in-all a fairly straightforward process. Since I don’t use many patches, I didn’t have to spend a lot of time manually patching; just a few lines here and there.</p> +<p>The default statusbar that ships with dwm is quite spartan. It’s configured by using <code>xsetroot -name &lt;string&gt;</code> where <code>&lt;string&gt;</code> is the content of the bar (CPU usage, RAM usage, etc). It’s possible to do all this yourself with a bash script that you call from your <code>xinitrc</code> or through your crontab, but I chose to use <a href="https://tools.suckless.org/slstatus/">slstatus</a> since it comes with a bunch of modules ready to go and does the whole <code>xsetroot</code> thing itself. If there are any custom thing I want to add to the bar, I can use slstatus to call a script for me.</p> +<p>One thing I made sure to do for this new environment was to compile all of dmenu, dwm, and st with their corresponding Xresources patches so that I can define colours, fonts, and more in my Xresources file. This allows me to update the colourscheme and whatnot without needing to recompile. I also noticed that vanilla dwm, straight out of the box, is actually completely usable. It comes with sane keybindings and settings and looks great (in my opinion, of course). The only thing I had to get used to was the master and stack layout that dwm uses compared to bspwm’s fibonacci layout. With dwm, there is no moving left and right between windows, just up and down the stack. It makes sense given the way dwm’s layout works and I found it easy to work with once I got used to it.</p> +<p>Anyways, here’s a picture of my desktop:</p> +<figure> +<a href="/img/dwm-laptop.png"><img src="/img/dwm-laptop-thumb.png" + alt="dwm as it appears on my laptop. A screen is open and floating showing + the output of the neofetch command"/></a> +</figure> +<p>I’ve implemented things like taking screenshots, changing brightness, new update notifications, and battery charge status notifications through scripts which are called either by using shortcuts in dwm or by cron. I’ve also decided that I’m going to change from using the status bar to using my notification daemon dunst for brightness and audio level indicators with the help of this <a href="https://wiki.archlinux.org/index.php/Dunst#Using_dunstify_as_volume/brightness_level_indicator">Arch wiki article</a>.</p> +<p>Now, I know this doesn’t really matter given the size of sotrage devices nowadays, but the size of my dwm setup is also <em>way</em> lower compared to my bspwm setup. bspwm, plus its necessary tools bspc and sxhkd, weigh in at 324,200 bytes or 316.60 KiB whereas dwm is only 77,936 bytes or 76.11 KiB.</p> +<p>If I tally up the entire environment I was using when I first started (bspwm+components, urxvt, nitrogen, rofi, polybar) compared to what I’m using now (dwm, st, feh, dmenu, slstatus), that’s 138,276,704 bytes (131.87 <strong>MiB</strong>) versus only 463,432 bytes (452.57 KiB); a huge savings which no doubt also increased how much RAM my system has available for doing other things. Also, letting my system idle with nothing but a terminal window open, I let my system load average settle and measured it once every 5 seconds with a while loop. After a 15 minute interval passed, it was reading 0.00/0.00/0.00 consistently.</p> +<p>My final verdict is that dwm is great. It’s starting to feel as comfy as bspwm with the added benefit of the software feeling like it’s custom built and tailored for my needs (which it is). It’s also really fun to use because of <a href="/blog/scripting-my-way-to-success">how much I love scripting</a>.</p> +<p>You can view the scripts I use as well as other configuration information in <a href="https://git.sr.ht/~jbauer/dotfiles">my dotfiles repo</a>. My custom builds for each of the suckless tools I use are contained in the <code>custom</code> branch of each tool’s repository: <a href="https://git.sr.ht/~jbauer/dwm">dwm</a>, <a href="https://git.sr.ht/~jbauer/st">st</a>, <a href="https://git.sr.ht/~jbauer/slstatus">slstatus</a>, and <a href="https://git.sr.ht/~jbauer/dmenu">dmenu</a>. The patches I chose to apply are in the <code>patches</code> folder in each repository. Please note that the dotfiles repo is going to be retired to <code>dotfiles-legacy</code> as I switch over to using dwm full time on all of my machines. I am keeping the <code>dotfiles-legacy</code> repository around so others can view and use my configuration for things like <code>bspwm</code> and <code>neomutt</code>.</p> +<p><em>This is my forty-first post for the <a href="https://social.paritybit.ca/tags/100DaysToOffload">#100DaysToOffload</a> challenge. You can learn more about this challenge over at <a href="https://100daystooffload.com" class="uri">https://100daystooffload.com</a>.</em></p>]]></description> +</item> +<item> <title>Setting Up a Status Page</title> <link>https://www.paritybit.ca/blog/setting-up-a-status-page</link> <guid>https://www.paritybit.ca/blog/setting-up-a-status-page</guid> diff --git a/public/img/dwm-laptop-thumb.png b/public/img/dwm-laptop-thumb.png Binary files differ. diff --git a/public/img/dwm-laptop.png b/public/img/dwm-laptop.png Binary files differ. diff --git a/public/sitemap.xml b/public/sitemap.xml @@ -3,6 +3,7 @@ <url><loc>https://www.paritybit.ca</loc></url> <url><loc>https://www.paritybit.ca/home</loc></url> <url><loc>https://www.paritybit.ca/blog</loc></url> + <url><loc>https://www.paritybit.ca/blog/trying-out-dwm</loc></url> <url><loc>https://www.paritybit.ca/blog/setting-up-a-status-page</loc></url> <url><loc>https://www.paritybit.ca/blog/scripting-my-way-to-success</loc></url> <url><loc>https://www.paritybit.ca/blog/curating-my-blogroll</loc></url>