<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
	<title>bardman&#39;s website</title>
	<link>https://bardman.dev/</link>
	<description>Recent content in Bardman&#39;s website on bardman&#39;s website</description>
	<generator>Hugo -- gohugo.io</generator>
	<language>en-us</language>
	<lastBuildDate>Wed, 21 Jan 2026 15:44:25 -0500</lastBuildDate>
    
        <atom:link href="https://bardman.dev/index.xml" rel="self" type="application/rss+xml" />
	
	
	<item>
		<title>Alternative BOOX Stylus</title>
		<link>https://bardman.dev/technology/boox-stylus/</link>
		<pubDate>Wed, 21 Jan 2026 15:44:25 -0500</pubDate>
		
		<guid>https://bardman.dev/technology/boox-stylus/</guid>
		<description>&lt;p&gt;
Recently, I have been using my BOOX tablet much more to take handwritten notes in all my classes. This has increased the wear on the nib, as I use it for roughly 1-3 hours a day, 5 days a week. I have already had the nib for a long time, since I got this device in December of 2024. The wear was so bad I couldn&amp;#39;t even take the nib out anymore. It was also writing without me touching the screen, which is apparently a sign of wear on EMR pens (or perhaps static electricity).&lt;/p&gt;
&lt;p&gt;


&lt;figure class=&#34;vid &#34;&gt;&lt;figcaption&gt;
    My old stylus writing 2-3 cm above the surface
  &lt;/figcaption&gt;&lt;video
    src=&#34;https://bardman.dev/vids/old-stylus.mp4&#34;
    
    
    controls
    
    
    
    
  &gt;
    Your browser does not support the video tag.
  &lt;/video&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;
I already wanted a stylus with an eraser button, so I went ahead and purchased a Kindle Premium instead of buying more nibs from BOOX or an alternative company. I had heard that the Kindle Scribe premium pen worked pretty well and I liked the shape it had when I borrowed a friend&amp;#39;s (he has a Kindle Scribe).&lt;/p&gt;
&lt;p&gt;
Today I used it for the first time, and I would like to say that so far it&amp;#39;s been a good experience. The button is out of the way so I don&amp;#39;t click it accidentally, but it&amp;#39;s close enough to comfortably reach. The other end of the stylus also acts as a good tool for bulk erasing. Somehow the button and back of the pen worked for erasing automatically. I not sure how but I&amp;#39;m glad I don&amp;#39;t need to charge it. The Kindle stylus is a bit heavier, but also thinner. This is certainly a major enhancement that will allow me to continue facilitating my learning.&lt;/p&gt;
&lt;p&gt;

&lt;figure &gt;&lt;img src=&#34;https://bardman.dev/img/new-stylus.jpg&#34;&gt;&lt;/figure&gt;
&lt;/p&gt;
</description>
	</item>
	
	<item>
		<title>Tracking Time With Denote Journal and Org Clock</title>
		<link>https://bardman.dev/technology/time-tracking/</link>
		<pubDate>Sun, 18 Jan 2026 23:44:46 -0500</pubDate>
		
		<guid>https://bardman.dev/technology/time-tracking/</guid>
		<description>
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Introduction
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;I have recently started tracking my time in org mode more. This helps me know whether or not I wasted a lot of time on the computer that day. I have a special heading for &amp;#34;time I wasted loafing about&amp;#34; where I clock in when I want to watch YouTube, for example. For other time spent I make a quick note about what I plan to do. This also helps me stay on track.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-2&#34;&gt;
Purpose of the workflow
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-3&#34;&gt;
&lt;ol&gt;
&lt;li&gt;Increase mindfulness about how much time I spend on certain tasks that are productive or unproductive.&lt;/li&gt;
&lt;li&gt;Limit how many tasks I accomplish per day by writing down what I think I can actually accomplish on days when I have a large pile of things to do.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Workflow
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-4&#34;&gt;
Step one - Denote journal
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;I create my daily file with &lt;code&gt;C-c n j&lt;/code&gt; and clock in or write something that I need to do. I have a template managed by denote. Additionally it is not part of my denote+org-roam system which I talked about extensively &lt;a href=&#34;https://www.youtube.com/watch?v=ZyrPaLL1sJQ&amp;amp;t=4s&#34;&gt;in this video&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
Ideally I want to keep track of &lt;strong&gt;all&lt;/strong&gt; the time I spend on the computer to find out how much I have wasted on a given day with this file. For now, I want to see just how much time I waste and then focus on minimizing it.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-5&#34;&gt;
Step two - decide on task and clock in
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Simply clock in to a task that you want to track time for with &lt;code&gt;(org-clock-in)&lt;/code&gt; and start working! When you finish with the task, clock out with &lt;code&gt;(org-clock-out)&lt;/code&gt;. It&amp;#39;s very simple. There is a bit more to this however, discuss&lt;/p&gt;
&lt;p&gt;
You can add effort to items that you want to work on. I think the intended use is to add your time spent, i.e. setting the effort to 0:15 because you want to spend 15 minutes on something. I do this naturally as part of thinking about what I will work on, so this is something that I wanted to show on the mode line as well.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-6&#34;&gt;
Modeline info
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;In my literate emacs configuration I have a section for showing time tracking in the mode line. It&amp;#39;s a custom mode line indicator built in the same style as Protesilaos&amp;#39;s modeline. I don&amp;#39;t like having the full name of the task cluttering up the modeline, so I made a custom indicator using the same functions that Emacs uses to build the default modeline indicator.&lt;/p&gt;
&lt;p&gt;

&lt;figure class=&#34;centered-image&#34;&gt;&lt;figcaption&gt;Time currently spent on the task at hand is 34 minutes.&lt;/figcaption&gt;&lt;img src=&#34;https://bardman.dev/img/time-tracking-modeline.png&#34;&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;
In the modeline the effort is represented like this:

&lt;figure class=&#34;centered-image&#34;&gt;&lt;figcaption&gt;I wanted to spend 50 minutes on a task and it&amp;#39;s almost done!&lt;/figcaption&gt;&lt;img src=&#34;https://bardman.dev/img/time-tracking-modeline-effort.png&#34;&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;
But if I go over what I intended:

&lt;figure class=&#34;centered-image&#34;&gt;&lt;figcaption&gt;Oops, I went over the time...&lt;/figcaption&gt;&lt;img src=&#34;https://bardman.dev/img/time-tracking-modeline-effort-2.png&#34;&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-7&#34;&gt;
Video
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-2&#34;&gt;


    
    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/ofm-11LmLJg?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;
</description>
	</item>
	
	<item>
		<title>Introducing My Literate Emacs Configuration</title>
		<link>https://bardman.dev/technology/dotemacs-announcment/</link>
		<pubDate>Fri, 26 Dec 2025 22:03:41 -0500</pubDate>
		
		<guid>https://bardman.dev/technology/dotemacs-announcment/</guid>
		<description>
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Announcement
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;div class=&#34;emphasis-block&#34;&gt;
&lt;p&gt;Direct link: &lt;a href=&#34;https://bardman.dev/dotemacs&#34;&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;
A new page has appeared under my projects section that has my literate Emacs configuration. It&amp;#39;s going to be a continuous work-in-progress, but I hope to document most of it before the end of my school break.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
	</item>
	
	<item>
		<title>Emacs PDF Processing Workflow</title>
		<link>https://bardman.dev/technology/emacs-pdf/</link>
		<pubDate>Fri, 19 Dec 2025 20:13:38 -0500</pubDate>
		
		<guid>https://bardman.dev/technology/emacs-pdf/</guid>
		<description>
&lt;div class=&#34;emphasis-block&#34;&gt;
&lt;p&gt;This post is related to previously discussed topic: &lt;a href=&#34;https://bardman.dev/technology/boox-and-emacs&#34;&gt;Boox Notes, Linux and Emacs&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Purpose of Workflow
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Annotate the pages/sections of a pdf to look back on it later to build a better text note.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Input:&lt;/strong&gt; PDFs&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Output:&lt;/strong&gt; structured, annotated notes in org mode&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Workflow
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;I was getting ready to write a package to facilitate this workflow, but I found this to be much easier.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-3&#34;&gt;
Step 1: &lt;code&gt;org-attach&lt;/code&gt;
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Org attach is included in Emacs as a method for attaching files to org headings using different methods. There are several methods that you can view when you run org-attach. The one that I prefer is &lt;code class=&#34;verbatim&#34;&gt;s - Set a specific attachment directort for this entry. Sets DIR property.&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;
This attaches the file as a property and associated the current heading with the document which will be useful later&lt;/p&gt;
&lt;p&gt;
The default binding for &lt;code&gt;org-attach&lt;/code&gt; is &lt;code&gt;C-c C-a&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-4&#34;&gt;
Step 2: &lt;code&gt;org-noter&lt;/code&gt;
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;After step 1 we have an attachment added to our heading, so let&amp;#39;s begin annotating with &lt;code&gt;org-noter&lt;/code&gt;. I need to do this to process the PDF later when I want to view examples without having to type them out again.&lt;/p&gt;
&lt;p&gt;
I go through each page and type &lt;code class=&#34;verbatim&#34;&gt;i&lt;/code&gt; when I want to create a new heading for that page.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-5&#34;&gt;
Step 3: Refractoring
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The ultimate purpose of this process is to reflect on the content and also type it into a more wiki-like structure for my own understanding. This is especially helpful for deep understanding of topics, especially for math. You can read about how I aspire to study math from this external article: &lt;a href=&#34;https://www.math.uh.edu/~dblecher/pf2.html&#34;&gt;How to Study Mathematics - Dr. Lawrence Neff Stout&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-6&#34;&gt;
Addendum — 2026-01-09
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;I realized that this is essentially an easier to index version of the Cornell Note Taking system. The notes I add to the pdf are like the main body of the note, and the ones I take in the org document are like the marginalia. Since I live in Emacs, this is second process of adding notes about what is on the pages improves the searchability of my notes since I want them to end up in org mode eventually.&lt;/p&gt;
&lt;p&gt;
By the way, I&amp;#39;m continuing with this workflow because it has been working well since coming back to school after the winter break.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-7&#34;&gt;
Video Demo
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-2&#34;&gt;


    
    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/95WUVP10GG4?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;
</description>
	</item>
	
	<item>
		<title>Stationary and Writing Instruments</title>
		<link>https://bardman.dev/general/stationary/</link>
		<pubDate>Fri, 17 Oct 2025 23:23:17 -0400</pubDate>
		
		<guid>https://bardman.dev/general/stationary/</guid>
		<description>
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Writing Instruments
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-2&#34;&gt;
Pencils
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Since elementary school, I&amp;#39;ve been looking sought ways to make writing on paper more enjoyable. I would randomly find pencils around my house and test them to see which one I liked the most. I still remember my first mechanical pencil that my grandma gave me in 2nd grade. It was a dark green Pentel pencil with a twisting eraser.&lt;/p&gt;
&lt;p&gt;
In high school I was getting more school supplies and I wanted to get something new. I got a Kokuyo Campus eraser (used up since them), a Zebra Delguard 0.5mm and Uni Kurutoga Advance. Both of these didn&amp;#39;t last very long because they were made of plastic — the clip broke on the Delguard and the lead pusher broke on the Kurutoga Advance. It was in around 10th grade when I discovered the
Rotring 600 and thought about getting one. I searched some more and found the 800 was on sale. I bought it with an Amazon giftcard I had lying around from Microsoft Edge points that I had accumulated before I quit using the browser. It was basically a free pencil that would typically cost $50-$75 without a discount. Ever since I have loved this pencil and it&amp;#39;s very durable. I believe this pencil will last a lifetime.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-3&#34;&gt;
Pens
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;My first fountain pens were given to me by my grandma. They were cheap Chinese pens she bought in bulk. They were really cheap, so the ink feeds were really finicky and I could never get them to work. I started using them around 7th-8th grade, and they felt really nice at the time. But later they stopped working. For the first day school in 12th grade, I decided to get a budget fountain pen. I got the TWISBI Eco and the clip broke because I tried to open it when it was stuck. I keep it at home because it&amp;#39;s a bit too big to fit into a pocket.&lt;/p&gt;
&lt;p&gt;
Later for my 18th birthday I got a Kaweco AL Sport. It&amp;#39;s really small and portable. This is my main pen that I carry with me along with my Rotring pencil and traveler&amp;#39;s notebook.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-4&#34;&gt;
Pictures
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;

&lt;figure class=&#34;centered-image&#34;&gt;&lt;figcaption&gt;Left to right: Kaweco AL Sport, Rotring 800, TWSBI Eco, Uniball Zento, Pentel Graphgear 500, Ticonderoga Black; Eraser: Pentel Hi-polymer Eraser&lt;/figcaption&gt;&lt;img src=&#34;https://bardman.dev/img/stationary4.png&#34;&gt;&lt;/figure&gt;


&lt;figure class=&#34;centered-image&#34;&gt;&lt;img src=&#34;https://bardman.dev/img/stationary3.png&#34;&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-5&#34;&gt;
Notebooks
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-2&#34;&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-6&#34;&gt;
Traveler&amp;#39;s Notebook
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;I got this as a present for my 18th birthday to myself. It has Midori MD paper from the traveller&amp;#39;s company inserts. It has one plain unlined paper and another with graph paper. I use the blank one for reminders, todo lists, and important dates or deadlines. The graph notebook is for long term notes from meetings or presentations at school. I also have a plastic wallet insert, which I use to store papers, business cards, etc.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-7&#34;&gt;
Pictures
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;
&lt;figure class=&#34;centered-image&#34;&gt;&lt;img src=&#34;https://bardman.dev/img/stationary2.png&#34;&gt;&lt;/figure&gt;


&lt;figure class=&#34;centered-image&#34;&gt;&lt;img src=&#34;https://bardman.dev/img/stationary1.png&#34;&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
	</item>
	
	<item>
		<title>Note Silos and Sequential Notes</title>
		<link>https://bardman.dev/general/sequential-notes/</link>
		<pubDate>Wed, 16 Jul 2025 20:34:17 -0400</pubDate>
		
		<guid>https://bardman.dev/general/sequential-notes/</guid>
		<description>
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Introduction and Background
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;

&lt;details class=&#34;note&#34;&gt;
  &lt;summary&gt;📝  Please watch protesilaos&amp;#39;s video about both packages before reading this&lt;/summary&gt;
  &lt;p&gt;
Parts of this article will seem confusing. Especially if you don&amp;#39;t watch the video about sequencing. That one is more important I think to understand the technicalities of what I&amp;#39;m trying to convey.&lt;/p&gt;
&lt;/details&gt;

&lt;p&gt;
I have been preparing for starting my University journey this fall and with that comes &lt;del&gt;spring&lt;/del&gt; summer cleaning of my notes. This is something I kind of look for because it gives me an excuse to reevaluate my workflow for notes. I stay away from this during the school year, &lt;em&gt;typically&lt;/em&gt;, but summer time is good for re-evaluating my workflows.&lt;/p&gt;
&lt;p&gt;
Something that was always confusing for me was the usecase for Denote&amp;#39;s &lt;a href=&#34;https://protesilaos.com/emacs/denote-sequence&#34;&gt;sequence&lt;/a&gt; and &lt;a href=&#34;https://protesilaos.com/emacs/denote-silo&#34;&gt;silo&lt;/a&gt; features. I wanted to figure out a way that I could use them. And that is precisely what I achieved recently.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
How I Decided To Use Denote Silo Functionality
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;I have a lot of old notes from past classes that I have taken, but rarely reference. I still want to hold onto them. It just feels bad to throw away information that I have synthesized into a way that I understand. I may work on something related to the notes that I took, or take a class with similar topics (e.g. AP United States History notes will apply to an American History course more or less)&lt;/p&gt;
&lt;p&gt;
As such, I have created a silo for my old notes in &lt;code&gt;~/Notes/Old Notes&lt;/code&gt; and they have a structure like this:&lt;/p&gt;
&lt;div class=&#34;src src-sh&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#fff;background-color:#000;-moz-tab-size:2;-o-tab-size:2;tab-size:2;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  tree &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;~/Notes/Old Notes/&amp;#34;&lt;/span&gt; -d -L &lt;span style=&#34;color:#00bcff&#34;&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  /home/bard/Notes/Old Notes/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  ├── Old Notes &lt;span style=&#34;color:#00d3d0&#34;&gt;(&lt;/span&gt;2022-2023&lt;span style=&#34;color:#00d3d0&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  ├── Old Notes &lt;span style=&#34;color:#00d3d0&#34;&gt;(&lt;/span&gt;2023-2024&lt;span style=&#34;color:#00d3d0&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  └── Old Notes &lt;span style=&#34;color:#00d3d0&#34;&gt;(&lt;/span&gt;2024-2025&lt;span style=&#34;color:#00d3d0&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#00bcff&#34;&gt;4&lt;/span&gt; directories&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-3&#34;&gt;
Not the most traditional method
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Now I know that this isn&amp;#39;t the way your really &amp;#34;supposed to do it&amp;#34;. The traditional way (as far as Org Roam/denote) would suggest the user to put all of their notes in a single directory. But for me the Old Notes silo is an organizational barrier to &lt;em&gt;let go&lt;/em&gt;  of my old notes. This not only removes the temptation to reorganize them to fit a new note taking convention that I have taken up, but also de-clutters my current working notes directory from quasi-irrelevant ones.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-4&#34;&gt;
How I Decided To Use Denote Sequence Functionality
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;NOTE: For the longest time I thought this was the most useless thing ever (no offence. I just didn&amp;#39;t get it until now)&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-5&#34;&gt;
How howm Inspired Me To Take Another Look
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;It was today (date of writing) that I finally figured out how anyone could make sense of a possible use case for this. This insight came up as a random thought that popped up when I was pontificating the simplicity of &lt;a href=&#34;https://github.com/kaorahi/howm/&#34;&gt;howm&lt;/a&gt;. I was interested in howm before thanks to this &lt;a href=&#34;https://www.youtube.com/watch?v=o1x_UM0HDhE&#34;&gt;a video by qnnnp&lt;/a&gt;, aka Андрей Суховский, that details his &lt;em&gt;zettlekasten-esque&lt;/em&gt; workflow using this tool. I think the home page and it&amp;#39;s minimal approach to linking between files was the main drawing factor, but at the end of the day I have a system that already works for me.&lt;/p&gt;
&lt;p&gt;
Суховский comes at it with the approach of a Картотека system (zettlekasten). He makes physical card notes and then transfers them into the indexing system. When he shows his methods it seemed a lot more natural and free-flowing than my sort of hierarchical&lt;/p&gt;
&lt;p&gt;
This video got me thinking again about how my system currently works. And I arrived a this conclusion:&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-6&#34;&gt;
The Old System
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Basically I would have notes with a keyword &amp;#34;meta&amp;#34; that would mean they were kind of a link hub for other notes. They used the &lt;code&gt;denote-org&lt;/code&gt; feature of &lt;em&gt;dynamic blocks&lt;/em&gt; to link a set of notes with a similar keyword (e.g. biology meta note would have links to all biology notes). The fundamental flaw with this is that it&amp;#39;s exactly like any normal workflow in a notebook. You have a notebook for each subject and the concepts contained within never really interact.&lt;/p&gt;
&lt;p&gt;
Although I wasn&amp;#39;t exactly trying to get a zettlekasten system, I was trying to create something like it that would flow freely. But I had unintentionally done the opposite.&lt;/p&gt;
&lt;p&gt;
I had done something like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a note (with denote prompts like title and keywords)&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Then I think about how it could relate to a possible topic that I have written about before&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Link if necessary&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Write the note&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;There are elements of the second step in the process that I can&amp;#39;t exactly explain, but it would just create a rigidity that I no longer want.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-7&#34;&gt;
The &amp;#34;New?&amp;#34; System
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-3&#34;&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-8&#34;&gt;
The Unconventionally Rigid Way Of Using Sequences
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;&lt;span style=&#34;text-decoration: underline;&#34;&gt;When having this epiphany about sequential note taking, I later realized I had actually not had an epiphany.&lt;/span&gt; I stumbled upon a &lt;a href=&#34;https://share.tube/w/mu7fMr5RWMqetcZRXutSGF&#34;&gt;series of videos&lt;/a&gt; by Ĝabbo while searching for other example workflows. He explained that the point of the sequence was to &lt;strong&gt;track a series of thoughts&lt;/strong&gt;. The way I had thought they were useful for is a hierarchy like this:&lt;/p&gt;
&lt;div class=&#34;src src-text&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#fff;background-color:#000;-moz-tab-size:2;-o-tab-size:2;tab-size:2;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20250716T201152==1--tea-research__research.org
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20250123T053843==1=1--effects-of-roasted-green-tea-on-human-responses__research.org
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20250313T191558==1=2--green-tea-consumption-and-cognitive-function__research.org
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20250313T203914==1=3--green-tea-enhances-parieto-frontal-connectivity__research.org
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20250313T213601==1=4--the-cognitive-benefits-of-
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   green-tea-the-neural-and-behavioral-effects__research_writing.org&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
My thought was that the highest level signature (&lt;code&gt;==1&lt;/code&gt;) would serve as the top of the hierarchy and subsequent topics stemmed from it. But his is not organic as you would have to reorganize it all the time to get the topical hierarchy in order.&lt;/p&gt;
&lt;p&gt;
However, this example could be a traditional sequence. I could be writing a note about tea research and then move on to writing some notes on papers I had stumbled upon, continuing &lt;span style=&#34;text-decoration: underline;&#34;&gt;a line of thinking&lt;/span&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-9&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-9&#34;&gt;
What I Ended Up With
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-9&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;A traditional sequence would feels more like a serendipitous and fleeting moment. You are taking notes on something and you feel like your writing is branching away from the main topic. Just make a new sequence (because it stemmed from the original note), and continue writing. In the end you will having something like this:&lt;/p&gt;
&lt;div class=&#34;src src-text&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#fff;background-color:#000;-moz-tab-size:2;-o-tab-size:2;tab-size:2;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20250717T151648==2--taking-sequential-notes__productivity_writing.org
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20250717T151744==2=1--book-notes.org
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20250717T151920==2=2--other-note-structures.org
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20250717T185559==2=2=1--система-картотека-в-емакс__abstract_productivity.org&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;I started with a note that I took when following along with the video series  (&lt;code&gt;==2&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;I decided to write about how this new method can be used to take notes on books (&lt;code&gt;==2=1&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;I thought about some other smaller examples of this system (~==2~=2)&lt;/li&gt;
&lt;li&gt;And one of those was a note about Андрей Суховский&amp;#39;s methods (&lt;code&gt;==2=2=1&lt;/code&gt;)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Hopefully you can look at the signatures (==2 being the parent) and see how over time the ideas gradually develop into a train of thought.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-10&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-10&#34;&gt;
Conclusion
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-10&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;At the end of the day, most people will never think about any of this. And that&amp;#39;s fair. Nobody really needs sequences and silos, and there are marginal gains being made through this workflow. But I like doing stuff like this in my free time. Refining my system is something that I find satisfaction in doing. And I want to share with others who may enjoy it as well.&lt;/p&gt;
&lt;p&gt;
These things don&amp;#39;t make anyone objectively more productive (it may be the opposite). But they do make writing and organization more fluid and can take a lot of the though of it off of your mind. And I supposed that&amp;#39;s enough to keep me tinkering. &lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
	</item>
	
	<item>
		<title>Desktop Customization Gallery</title>
		<link>https://bardman.dev/technology/gallery/</link>
		<pubDate>Fri, 07 Mar 2025 19:16:52 -0500</pubDate>
		
		<guid>https://bardman.dev/technology/gallery/</guid>
		<description>
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
FAQ
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-2&#34;&gt;
Where are the dots????
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;They are on &lt;a href=&#34;https://github.com/BardofSprites/&#34;&gt;my GitHub&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-3&#34;&gt;
Why are windows floating in twm?
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;I think it looks nice for screenshot, but normally the windows are not like that.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-4&#34;&gt;
2025
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-2&#34;&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-5&#34;&gt;
Gruvbox dwm
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;I have been using this setup since late October/early November I think. It&amp;#39;s funny how the circle goes around and around.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-6&#34;&gt;
Open windows (left to right)
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;
&lt;strong&gt;Image one:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
org-mode document alongside pdf with zen browser opening org-roam-ui&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Image two:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
nsxiv and st terminal running tmux (serving hugo site)&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Image three:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
Emacs lisp buffer opening my &lt;a href=&#34;https://github.com/BardofSprites/denote-roam&#34;&gt;denote-roam&lt;/a&gt; Emacs package, html file, &lt;a href=&#34;https://bardman.dev/dotemacs&#34;&gt;literate Emacs configuration&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-7&#34;&gt;
Pictures
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;
&lt;figure class=&#34;centered-image&#34;&gt;&lt;img src=&#34;https://bardman.dev/img/gruvbox-dwm-1.png&#34;&gt;&lt;/figure&gt;


&lt;figure class=&#34;centered-image&#34;&gt;&lt;img src=&#34;https://bardman.dev/img/gruvbox-dwm-2.png&#34;&gt;&lt;/figure&gt;


&lt;figure class=&#34;centered-image&#34;&gt;&lt;img src=&#34;https://bardman.dev/img/gruvbox-dwm-3.png&#34;&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-8&#34;&gt;
NixOS + i3
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;
&lt;figure class=&#34;centered-image&#34;&gt;&lt;img src=&#34;https://bardman.dev/img/nixos-i3.png&#34;&gt;&lt;/figure&gt;


&lt;figure class=&#34;centered-image&#34;&gt;&lt;img src=&#34;https://bardman.dev/img/nixos-i3-floating.png&#34;&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-9&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-9&#34;&gt;
XMonad and Ef Elea Dark Theme
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-9&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;It&amp;#39;s summer time :D&lt;/p&gt;
&lt;p&gt;
Open windows (L-&amp;gt; R): Emacs with &lt;a href=&#34;https://github.com/BardofSprites/conductor&#34;&gt;conductor&lt;/a&gt; project, nsxiv, Emacs with notmuch, Emacs with &lt;a href=&#34;https://bardman.dev/technology/elfeed&#34;&gt;Elfeed&lt;/a&gt;, Emacs calendar, Emacs with &lt;a href=&#34;https://bardman.dev/technology/emms&#34;&gt;EMMS&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
Lately I have been refining my email workflow with Emacs, might make an article about how I do it in the future when the school year starts.&lt;/p&gt;
&lt;p&gt;
And also, I randomly found out that Emacs can use true transparency, and I love it so much better than picom.&lt;/p&gt;
&lt;p&gt;

&lt;figure class=&#34;centered-image&#34;&gt;&lt;img src=&#34;https://bardman.dev/img/XMonad-Ef-Full.png&#34;&gt;&lt;/figure&gt;


&lt;figure class=&#34;centered-image&#34;&gt;&lt;img src=&#34;https://bardman.dev/img/XMonad-Ef-Main.png&#34;&gt;&lt;/figure&gt;


&lt;figure class=&#34;centered-image&#34;&gt;&lt;img src=&#34;https://bardman.dev/img/XMonad-Ef-Side.png&#34;&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-10&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-10&#34;&gt;
WindowMaker Scylla Theme and Gruber Darker
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-10&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;I have been toying around with &lt;a href=&#34;https://windowmaker.org&#34;&gt;WindowMaker&lt;/a&gt; for around a week. My favorite feature (unsurprisingly if you check the post below) would be the dock. I also how it feels like if FVWM without all the extensibility and more &lt;em&gt;desktop-environmenty&lt;/em&gt;. At first I found the icons to be really annoying, but I finally figured it out. The open windows are Emacs &lt;code&gt;dired&lt;/code&gt;, &lt;code&gt;nsxiv&lt;/code&gt; image viewer and &lt;code&gt;URxvt&lt;/code&gt; with &lt;code&gt;tmux&lt;/code&gt;. The wallpaper is doctored with the calendar generated by my &lt;a href=&#34;https://github.com/BardofSprites/dotfiles-stow/blob/master/bin/.local/bin/scripts/wallpaper-annotate.sh&#34;&gt;wallpaper-annotate.sh&lt;/a&gt;

&lt;figure class=&#34;centered-image&#34;&gt;&lt;img src=&#34;https://bardman.dev/img/wmaker.png&#34;&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-11&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-11&#34;&gt;
FVWM3 With Gruber Darker on Artix-openrc
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-11&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;I played with &lt;a href=&#34;https://www.windowmaker.org/&#34;&gt;WindowMaker&lt;/a&gt; for a little bit. I didn&amp;#39;t actually end up liking or using it, but I did enjoy the &lt;a href=&#34;https://www.dockapps.net/&#34;&gt;dockapps&lt;/a&gt;. I swallowed these little widgets into the left panel that I have on the side. The bar has wmcore, &lt;code&gt;wmacpi&lt;/code&gt;, &lt;code&gt;wmamixer&lt;/code&gt;, &lt;code&gt;wmusic&lt;/code&gt;, and &lt;code&gt;wmclock&lt;/code&gt;. The grid on the top is &lt;code&gt;FvwmPager&lt;/code&gt; and the window list is &lt;code&gt;FvwmIconMan&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;
The windows shown are Emacs with a lisp project open (so I can look super productive) and a terminal running &lt;code&gt;fastfetch&lt;/code&gt; (I have it aliased to neofetch). I finally wrote an Fvwm colorset when I figured out which colors I like for &lt;/p&gt;
&lt;p&gt;

&lt;figure class=&#34;centered-image&#34;&gt;&lt;img src=&#34;https://bardman.dev/img/fvwm3-dockapps.png&#34;&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-12&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-12&#34;&gt;
Xmonad with gruber darker
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-12&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Made myself a silly wallpaper to match with the gruber darker theme for fun :)&lt;/p&gt;
&lt;p&gt;

&lt;figure class=&#34;centered-image&#34;&gt;&lt;figcaption&gt;Open window: Emacs writing this article&lt;/figcaption&gt;&lt;img src=&#34;https://bardman.dev/img/xmonad-2.png&#34; title=&#34;xmonad&#34;&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-13&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-13&#34;&gt;
i3wm
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-13&#34; class=&#34;outline-text-3&#34;&gt;

&lt;figure class=&#34;centered-image&#34;&gt;&lt;figcaption&gt;open windows: Emacs with Elfeed&lt;/figcaption&gt;&lt;img src=&#34;https://bardman.dev/img/i3wm-1.png&#34; title=&#34;pretty default i3wm setup&#34;&gt;&lt;/figure&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-14&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-14&#34;&gt;
Summer 2024-2025
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-14&#34; class=&#34;outline-text-2&#34;&gt;
&lt;div id=&#34;outline-container-headline-15&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-15&#34;&gt;
FVWM
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-15&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;I have many themes, the ones in these are &lt;code class=&#34;verbatim&#34;&gt;modus-vivendi&lt;/code&gt; and &lt;code class=&#34;verbatim&#34;&gt;ef-frost&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;

&lt;figure class=&#34;centered-image&#34;&gt;&lt;figcaption&gt;open windows: Emacs with Elfeed&lt;/figcaption&gt;&lt;img src=&#34;https://bardman.dev/img/fvwm-old.png&#34; title=&#34;pretty default i3wm setup&#34;&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;

&lt;figure class=&#34;centered-image&#34;&gt;&lt;figcaption&gt;open windows: Emacs with Elfeed&lt;/figcaption&gt;&lt;img src=&#34;https://bardman.dev/img/fvwm-1.png&#34; title=&#34;pretty default i3wm setup&#34;&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;

&lt;figure class=&#34;centered-image&#34;&gt;&lt;figcaption&gt;open windows: Emacs with Elfeed&lt;/figcaption&gt;&lt;img src=&#34;https://bardman.dev/img/fvwm-frost.png&#34; title=&#34;pretty default i3wm setup&#34;&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;

&lt;figure class=&#34;centered-image&#34;&gt;&lt;figcaption&gt;open windows: Emacs with Elfeed&lt;/figcaption&gt;&lt;img src=&#34;https://bardman.dev/img/fvwm-frost-horizontal-bar.png&#34; title=&#34;pretty default i3wm setup&#34;&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
	</item>
	
	<item>
		<title>Watch YouTube with Emacs Elfeed and GNU EMMS</title>
		<link>https://bardman.dev/technology/elfeed/</link>
		<pubDate>Tue, 11 Feb 2025 15:19:09 -0500</pubDate>
		
		<guid>https://bardman.dev/technology/elfeed/</guid>
		<description>
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Description
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;From the GitHub README:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Elfeed is an extensible web feed reader for Emacs, supporting both Atom and RSS.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;

&lt;figure class=&#34;centered-image&#34;&gt;&lt;figcaption&gt;My elfeed configuration that is browsing emacs articles&lt;/figcaption&gt;&lt;img src=&#34;https://bardman.dev/img/elfeed-feed.png&#34; title=&#34;elfeed is awesome 😉&#34; style=&#34;width:75%&#34;&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Installation/Setup
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Elfeed is available on &lt;a href=&#34;https://melpa.org&#34;&gt;melpa&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#fff;background-color:#000;-moz-tab-size:2;-o-tab-size:2;tab-size:2;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#f78fe7&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;elfeed&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f78fe7&#34;&gt;:ensure&lt;/span&gt; t
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f78fe7&#34;&gt;:config&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#00d3d0&#34;&gt;global-set-key&lt;/span&gt; (&lt;span style=&#34;color:#00d3d0&#34;&gt;kbd&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;C-c r&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#39;elfeed&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#f78fe7&#34;&gt;setq&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;elfeed-search-filter&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;+unread&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  )&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
How I Like To Use It
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-4&#34;&gt;
Elfeed-org
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;I subscribe to too many feeds to keep them all in one emacs &lt;code&gt;setq&lt;/code&gt; option list. I would rather have them in a text file that can be read by &lt;code&gt;elfeed-org&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-5&#34;&gt;
YouTube Feed
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;I try to not get stuck browsing YouTube for hours and using RSS is one of the methods that helps me limit my usage. Not many people know that each YouTube channel has it&amp;#39;s own RSS feed that anyone can subscribe to. The way that I am able to discover them is using a find RSS feed extension. The one that I prefer at the moment is &lt;a href=&#34;https://addons.mozilla.org/en-US/firefox/addon/feedbroreader/&#34;&gt;FeedBro&lt;/a&gt; because it&amp;#39;s the one works. It sucks that it&amp;#39;s proprietary, but I don&amp;#39;t even use it that often (only for scraping the RSS feeds from websites like YouTube that don&amp;#39;t show them).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-6&#34;&gt;
Watching YouTube with Elfeed + EMMS
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;I have already written an article about &lt;a href=&#34;https://bardman.dev/technology/emms&#34;&gt;GNU EMMS&lt;/a&gt;, the excellent Emacs media player. In addition to local files like video/audio I can stream videos with mpv (already bundled with &lt;code&gt;yt-dlp&lt;/code&gt; for that).&lt;/p&gt;
&lt;p&gt;
The big thing that I hated doing was copying the url from elfeed and then opening a terminal and then running mpv with the url and then finally getting to watch the video. But what if I wanted to watch another? Well then I would have to go back and open elfeed and copy the url and then…you get the idea.&lt;/p&gt;
&lt;p&gt;
What I wanted was to run a keybind on an elfeed entry that links to YouTube and to automatically spawn a process that plays it in mpv.  That&amp;#39;s what &lt;code&gt;(bard/play-elfeed-video)&lt;/code&gt; does.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#fff;background-color:#000;-moz-tab-size:2;-o-tab-size:2;tab-size:2;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#f78fe7&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;bard/play-elfeed-video&lt;/span&gt; ()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;Play the URL of the entry at point in mpv if it&amp;#39;s a YouTube video.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#f78fe7&#34;&gt;interactive&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#f78fe7&#34;&gt;let&lt;/span&gt; ((&lt;span style=&#34;color:#00d3d0&#34;&gt;entry&lt;/span&gt; (&lt;span style=&#34;color:#00d3d0&#34;&gt;elfeed-search-selected&lt;/span&gt; &lt;span style=&#34;color:#f78fe7&#34;&gt;:single&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#f78fe7&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;entry&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        (&lt;span style=&#34;color:#f78fe7&#34;&gt;let&lt;/span&gt; ((&lt;span style=&#34;color:#00d3d0&#34;&gt;url&lt;/span&gt; (&lt;span style=&#34;color:#00d3d0&#34;&gt;elfeed-entry-link&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;entry&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#f78fe7&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#f78fe7&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;url&lt;/span&gt; (&lt;span style=&#34;color:#00d3d0&#34;&gt;string-match-p&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;https?://\\(www\\.\\)?youtube\\.com\\|youtu\\.be&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;url&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              (&lt;span style=&#34;color:#f78fe7&#34;&gt;progn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                (&lt;span style=&#34;color:#00d3d0&#34;&gt;async-shell-command&lt;/span&gt; (&lt;span style=&#34;color:#feacd0&#34;&gt;format&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;mpv &amp;#39;%s&amp;#39;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;url&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                (&lt;span style=&#34;color:#00d3d0&#34;&gt;elfeed-search-untag-all-unread&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            (&lt;span style=&#34;color:#feacd0&#34;&gt;message&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;The URL is not a YouTube link: %s&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;url&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#feacd0&#34;&gt;message&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;No entry selected in Elfeed.&amp;#34;&lt;/span&gt;))))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
But then I thought, what if I want to use my good friend EMMS? I sometimes want to make a backlog and save it to a playlist or have them play automatically in succession. That&amp;#39;s when I made this function:&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#fff;background-color:#000;-moz-tab-size:2;-o-tab-size:2;tab-size:2;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#f78fe7&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;bard/add-video-emms-queue&lt;/span&gt; ()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;Play the URL of the entry at point in mpv if it&amp;#39;s a YouTube video. Add it to EMMS queue.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#f78fe7&#34;&gt;interactive&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#f78fe7&#34;&gt;let&lt;/span&gt; ((&lt;span style=&#34;color:#00d3d0&#34;&gt;entry&lt;/span&gt; (&lt;span style=&#34;color:#00d3d0&#34;&gt;elfeed-search-selected&lt;/span&gt; &lt;span style=&#34;color:#f78fe7&#34;&gt;:single&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#f78fe7&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;entry&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#f78fe7&#34;&gt;let&lt;/span&gt; ((&lt;span style=&#34;color:#00d3d0&#34;&gt;url&lt;/span&gt; (&lt;span style=&#34;color:#00d3d0&#34;&gt;elfeed-entry-link&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;entry&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            (&lt;span style=&#34;color:#f78fe7&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#f78fe7&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;url&lt;/span&gt; (&lt;span style=&#34;color:#00d3d0&#34;&gt;string-match-p&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;https?://\\(www\\.\\)?youtube\\.com\\|youtu\\.be&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;url&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                (&lt;span style=&#34;color:#f78fe7&#34;&gt;let*&lt;/span&gt; ((&lt;span style=&#34;color:#00d3d0&#34;&gt;playlist-name&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;Watch Later&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                       (&lt;span style=&#34;color:#00d3d0&#34;&gt;playlist-buffer&lt;/span&gt; (&lt;span style=&#34;color:#feacd0&#34;&gt;get-buffer&lt;/span&gt; (&lt;span style=&#34;color:#feacd0&#34;&gt;format&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34; *%s*&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;playlist-name&lt;/span&gt;))))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  (&lt;span style=&#34;color:#f78fe7&#34;&gt;unless&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;playlist-buffer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    (&lt;span style=&#34;color:#f78fe7&#34;&gt;setq&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;playlist-buffer&lt;/span&gt; (&lt;span style=&#34;color:#00d3d0&#34;&gt;emms-playlist-new&lt;/span&gt; (&lt;span style=&#34;color:#feacd0&#34;&gt;format&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34; *%s*&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;playlist-name&lt;/span&gt;))))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  (&lt;span style=&#34;color:#00d3d0&#34;&gt;emms-playlist-set-playlist-buffer&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;playlist-buffer&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  (&lt;span style=&#34;color:#00d3d0&#34;&gt;emms-add-url&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;url&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  (&lt;span style=&#34;color:#00d3d0&#34;&gt;elfeed-search-untag-all-unread&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  (&lt;span style=&#34;color:#feacd0&#34;&gt;message&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;Added YouTube video to EMMS playlist: %s&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;url&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              (&lt;span style=&#34;color:#feacd0&#34;&gt;message&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;The URL is not a YouTube link: %s&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;url&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        (&lt;span style=&#34;color:#feacd0&#34;&gt;message&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;No entry selected in Elfeed.&amp;#34;&lt;/span&gt;))))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-7&#34;&gt;
Demonstration
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;First I open Elfeed to a video that I want to view, then I run &lt;code&gt;bard/add-video-emms-queue&lt;/code&gt; for each entry I want to add to my queue (bound to &lt;code&gt;C-c C-e&lt;/code&gt;). After that I open EMMS (bound to &lt;code&gt;&amp;lt;f8&amp;gt;&lt;/code&gt;). Then I click enter on the video and hooray it&amp;#39;s playing. I can even save to a playlist and replay later.&lt;/p&gt;
&lt;p&gt;


    
    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/V0c8CPk9LHk?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-8&#34;&gt;
References and Documentation
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-2&#34;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/BardofSprites/.emacs.d/blob/master/bard-elisp/bard-web.el&#34;&gt;My Emacs Lisp Functions For Sending Elfeed Videos to EMMS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/skeeto/elfeed&#34;&gt;https://github.com/skeeto/elfeed&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/remyhonig/elfeed-org&#34;&gt;https://github.com/remyhonig/elfeed-org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/yt-dlp/yt-dlp&#34;&gt;https://github.com/yt-dlp/yt-dlp&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
	</item>
	
	<item>
		<title>Top 5 Tempel.el Snippets For Emacs</title>
		<link>https://bardman.dev/technology/top-snippets/</link>
		<pubDate>Sat, 01 Feb 2025 17:00:21 -0500</pubDate>
		
		<guid>https://bardman.dev/technology/top-snippets/</guid>
		<description>
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Introduction
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/minad/tempel&#34;&gt;Tempel.el&lt;/a&gt; is a package written by Daniel Mendler, a developer of many projects (many of which are fantastic Emacs packages). It provides a way to define text snippets with lisp-like syntax. You can embed Emacs Lisp code into the snippets to obtain programmatically obtained efficiency.&lt;/p&gt;
&lt;p&gt;
It&amp;#39;s based off of the ancient tempo library from Emacs, but it&amp;#39;s modernized and updated. I&amp;#39;ve never tried plain tempo, but it&amp;#39;s one of Emacs&amp;#39;s several ancient text-templating systems.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-2&#34;&gt;
Setup
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The setup for tempel is very simple. Here is my configuration for the package:&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#fff;background-color:#000;-moz-tab-size:2;-o-tab-size:2;tab-size:2;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#f78fe7&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;tempel&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f78fe7&#34;&gt;:ensure&lt;/span&gt; t
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f78fe7&#34;&gt;:demand&lt;/span&gt; t
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a8a8a8&#34;&gt;;; Require trigger prefix before template name when completing.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f78fe7&#34;&gt;:bind&lt;/span&gt; ((&lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;M-i&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;tempel-complete&lt;/span&gt;) &lt;span style=&#34;color:#a8a8a8&#34;&gt;;; Alternative tempel-expand&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           (&lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;M-S-i&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;tempel-insert&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f78fe7&#34;&gt;:init&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a8a8a8&#34;&gt;;; Setup completion at point&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#f78fe7&#34;&gt;defun&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;tempel-setup-capf&lt;/span&gt; ()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#a8a8a8&#34;&gt;;; Add the Tempel Capf to `completion-at-point-functions&amp;#39;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#a8a8a8&#34;&gt;;; `tempel-expand&amp;#39; only triggers on exact matches. Alternatively use&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#a8a8a8&#34;&gt;;; `tempel-complete&amp;#39; if you want to see all matches, but then you&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#a8a8a8&#34;&gt;;; should also configure `tempel-trigger-prefix&amp;#39;, such that Tempel&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#a8a8a8&#34;&gt;;; does not trigger too often when you don&amp;#39;t expect it. NOTE: We add&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#a8a8a8&#34;&gt;;; `tempel-expand&amp;#39; *before* the main programming mode Capf, such&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#a8a8a8&#34;&gt;;; that it will be tried first.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#f78fe7&#34;&gt;setq-local&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;completion-at-point-functions&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  (&lt;span style=&#34;color:#feacd0&#34;&gt;cons&lt;/span&gt; &lt;span style=&#34;color:#feacd0&#34;&gt;#&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#00d3d0&#34;&gt;tempel-expand&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                        &lt;span style=&#34;color:#00d3d0&#34;&gt;completion-at-point-functions&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f78fe7&#34;&gt;:hook&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ((&lt;span style=&#34;color:#00d3d0&#34;&gt;conf-mode&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;tempel-setup-capf&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;color:#00d3d0&#34;&gt;prog-mode&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;tempel-setup-capf&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;color:#00d3d0&#34;&gt;text-mode&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;tempel-setup-capf&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f78fe7&#34;&gt;:config&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#f78fe7&#34;&gt;setq&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;tempel-path&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;~/.emacs.d/tempel-snippets.el&amp;#34;&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Next, create a &lt;code&gt;temple-snippets.el&lt;/code&gt; file in your &lt;code&gt;.emacs.d&lt;/code&gt; directory and type away.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-3&#34;&gt;
Defining a snippet
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;In my &lt;code&gt;tempel.snippets.el&lt;/code&gt; file, I have around 24 snippets. You can look at it on my &lt;a href=&#34;https://github.com/BardofSprites/.emacs.d&#34;&gt;emacs configuration&lt;/a&gt;. The structure of the file is like this:&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#fff;background-color:#000;-moz-tab-size:2;-o-tab-size:2;tab-size:2;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00d3d0&#34;&gt;desired-mode-for-snippet&lt;/span&gt; &lt;span style=&#34;color:#a8a8a8&#34;&gt;;; (eg. fundamental, org, c++)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#00d3d0&#34;&gt;snippet-name&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;snippet body&amp;#34;&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-4&#34;&gt;
Top 5 Snippets
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-2&#34;&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-5&#34;&gt;
#1 - &lt;code&gt;up&lt;/code&gt;
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;This is my most used snippet. I use it all the time for when I need to make a use-package declaration in my Emacs configuration.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#fff;background-color:#000;-moz-tab-size:2;-o-tab-size:2;tab-size:2;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#00d3d0&#34;&gt;up&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;(use-package &amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#00d3d0&#34;&gt;p&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;n&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;:ensure t&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;n&amp;gt;&lt;/span&gt; (&lt;span style=&#34;color:#00d3d0&#34;&gt;s&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;configuration&lt;/span&gt;) &lt;span style=&#34;color:#00d3d0&#34;&gt;q&lt;/span&gt;&lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;)&amp;#34;&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-6&#34;&gt;
#2 - &lt;code&gt;today&lt;/code&gt;
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;today evaluates the native Emacs function &lt;code&gt;format-time-string&lt;/code&gt;. This is a great example of how tempel can use existing functions in it&amp;#39;s snippets.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#fff;background-color:#000;-moz-tab-size:2;-o-tab-size:2;tab-size:2;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#00d3d0&#34;&gt;today&lt;/span&gt; (&lt;span style=&#34;color:#feacd0&#34;&gt;format-time-string&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;%Y-%m-%d&amp;#34;&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-7&#34;&gt;
#3 - &lt;code&gt;begin&lt;/code&gt;
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Begin starts a LaTeX begin macro for formatting anything. When you type begin, it moves you to the brackets and then you can fill out both ends of the begin at once with equation, center, aligned, etc.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#fff;background-color:#000;-moz-tab-size:2;-o-tab-size:2;tab-size:2;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#00d3d0&#34;&gt;begin&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;\\begin{&amp;#34;&lt;/span&gt; (&lt;span style=&#34;color:#00d3d0&#34;&gt;s&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;env&lt;/span&gt;) &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;}&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;r&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;n&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;\\end{&amp;#34;&lt;/span&gt; (&lt;span style=&#34;color:#00d3d0&#34;&gt;s&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;env&lt;/span&gt;) &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;}&amp;#34;&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-8&#34;&gt;
#4 - &lt;code&gt;mode&lt;/code&gt;
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Emacs has &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/emacs/Specifying-File-Variables.html&#34;&gt;a feature&lt;/a&gt; for adding local file variables with a prop line at the beginning of files. I use this to give a mode to files without an extension like scheme scripts I write.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#fff;background-color:#000;-moz-tab-size:2;-o-tab-size:2;tab-size:2;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#00d3d0&#34;&gt;mode&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;-*- mode: &amp;#34;&lt;/span&gt; (&lt;span style=&#34;color:#00d3d0&#34;&gt;s&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;mode&lt;/span&gt;) &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34; -*-&amp;#34;&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-9&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-9&#34;&gt;
#5 - Programming-related snippets
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-9&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;These are things I would type anyway while programming that are condensed. They could probably be converted into &lt;code&gt;abbrev-mode&lt;/code&gt; expansions, but I just cooked these up quickly while I was working.&lt;/p&gt;
&lt;div class=&#34;src src-emacs-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#fff;background-color:#000;-moz-tab-size:2;-o-tab-size:2;tab-size:2;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#00d3d0&#34;&gt;sh-mode&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#00d3d0&#34;&gt;!&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;#!/usr/bin/bash&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;n&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;q&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#00d3d0&#34;&gt;perl-mode&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#00d3d0&#34;&gt;!&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;#!/usr/bin/perl&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;n&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;use strict;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;n&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;use warnings;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;n&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;n&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;q&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#00d3d0&#34;&gt;c++-mode&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#feacd0&#34;&gt;log&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;std::cout &amp;lt;&amp;lt; \&amp;#34;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;p&lt;/span&gt; &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;\&amp;#34; &amp;lt;&amp;lt; std::endl;&amp;#34;&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-10&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-10&#34;&gt;
Conclusion
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-10&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Snippets/templates are a really useful way to speed up your text-editing. If you&amp;#39;re going to repeat typing something a bunch, you might as well make a snippet for it.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-11&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-11&#34;&gt;
Yasnippet
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-11&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;I used to use &lt;a href=&#34;https://github.com/joaotavora/yasnippet&#34;&gt;yasnippet&lt;/a&gt; (probably the most popular snippet package), but I realized it&amp;#39;s not for me because I didn&amp;#39;t like making a new file for every snippet. I was too lazy to figure out the syntax to make my own, so I switched to tempel. I could probably still use it, but I&amp;#39;ll use what works.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
	</item>
	
	<item>
		<title>Boox Notes, Linux and Emacs</title>
		<link>https://bardman.dev/technology/boox-and-emacs/</link>
		<pubDate>Mon, 27 Jan 2025 18:36:33 -0500</pubDate>
		
		<guid>https://bardman.dev/technology/boox-and-emacs/</guid>
		<description>
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Introduction
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;I recently got a BOOX Go 10.3 e-ink tablet this past Christmas. I use this device to take notes that require handwriting (Math/Physics), and annotating/reading a lot of notes/books/documents.&lt;/p&gt;
&lt;p&gt;

&lt;figure class=&#34;centered-image&#34;&gt;&lt;img src=&#34;https://bardman.dev/img/boox-3.jpg&#34; title=&#34;BOOX tablet with orange case&#34; style=&#34;width:50%&#34;&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;

&lt;details class=&#34;warning&#34;&gt;
  &lt;summary&gt;🚩 &lt;span style=&#34;text-decoration: underline;&#34;&gt;A note about the BOOX company&lt;/span&gt; 🚩&lt;/summary&gt;
  &lt;p&gt;
BOOX is a Chinese company that specializes in E-ink tablets that run Android. They have continued to violate the GPL license of Android by not releasing source code to their custom build. I don&amp;#39;t like that they violate GPL, but sacrificing privacy sometimes necessary for convenience. As far as I know, there isn&amp;#39;t a free and open source e-ink tablet with all the same features.&lt;/p&gt;
&lt;p&gt;
&lt;a href=&#34;https://appsec.space/posts/onyx-boox-go-10.3/&#34;&gt;Here is a guide on how to de-spook your tablet&lt;/a&gt;&lt;/p&gt;
&lt;/details&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Benefits of Android OS
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Because this tablet runs android (which is a heavily modified Linux) we can do a lot of &amp;#34;Linux-y&amp;#34; things with it. I can run &lt;code class=&#34;verbatim&#34;&gt;syncthing&lt;/code&gt;, GNU Emacs, and &lt;code class=&#34;verbatim&#34;&gt;scrcpy&lt;/code&gt; on it. I have sideloaded fdroid which is my app store. I don&amp;#39;t log in to google or the BOOX sync service. I created zero accounts for this device. If enough interest is gathered, I can release an article about my setup.&lt;/p&gt;
&lt;p&gt;

&lt;figure class=&#34;centered-image&#34;&gt;&lt;figcaption&gt;Running GNU Emacs 30 from Fdroid&lt;/figcaption&gt;&lt;img src=&#34;https://bardman.dev/img/boox-4.jpg&#34; title=&#34;BOOX tablet with orange case&#34; style=&#34;width:50%&#34;&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Default notes app export
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The default notes app has the ability to export notes to pdf after saving. I use syncthing to access these new documents. It was super easy to set up&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-4&#34;&gt;
Organizing with epic Emacs tools
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;A big dilemma with handwriting notes is that they are hard to search. I devised a plan to organize these notes using &lt;a href=&#34;https://protesilaos.com/emacs/denote&#34;&gt;denote&lt;/a&gt; (org-mode), &lt;a href=&#34;https://github.com/vedang/pdf-tools&#34;&gt;pdftools&lt;/a&gt;, and &lt;a href=&#34;https://github.com/fuxialexander/org-pdftools&#34;&gt;org-pdftools&lt;/a&gt;.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-5&#34;&gt;
Methodology
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;
I start with one main file, I call it pdf-notes. This will be the main hub. Next I created other files for certain subjects. These have the keywords: pdfs and meta. They are &lt;em&gt;&amp;#34;notes about notes&amp;#34;&lt;/em&gt; thus &lt;em&gt;&amp;#34;meta&amp;#34;&lt;/em&gt; notes about pdfs.&lt;/p&gt;
&lt;p&gt;

&lt;figure class=&#34;centered-image&#34;&gt;&lt;figcaption&gt;A dired buffer with all my pdf meta-notes&lt;/figcaption&gt;&lt;img src=&#34;https://bardman.dev/img/pdf-notes.png&#34; title=&#34;dired buffer in Emacs &#34;&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;
The main note contains a heading for table of contents, and a heading for the actual content of the files. Both are generated with &lt;code&gt;denote-org-extras-dblock-insert-links&lt;/code&gt; and &lt;code&gt;denote-org-extras-dblock-insert-files&lt;/code&gt;. All of the blue underlines are org links to pdfs (from org-pdftools) that are in a syncthing folder on my pc. I can open up the link and start reading my notes again. I also use &lt;code&gt;consult-outline&lt;/code&gt; and &lt;code&gt;consult-line&lt;/code&gt; to fuzzy search around these files when needed.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-6&#34;&gt;
Examples
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;

&lt;details class=&#34;gallery&#34;&gt;
  &lt;summary&gt;open to see images&lt;/summary&gt;
  


&lt;figure class=&#34;centered-image&#34;&gt;&lt;figcaption&gt;Main meta note&lt;/figcaption&gt;&lt;img src=&#34;https://bardman.dev/img/pdf-notes-landing.png&#34; title=&#34;landing page for all pdf notes&#34; style=&#34;max-height:550px&#34;&gt;&lt;/figure&gt;



&lt;figure class=&#34;centered-image&#34;&gt;&lt;figcaption&gt;Specific subject note&lt;/figcaption&gt;&lt;img src=&#34;https://bardman.dev/img/pdf-notes-subject.png&#34; style=&#34;max-height:550px&#34;&gt;&lt;/figure&gt;



&lt;figure class=&#34;centered-image&#34;&gt;&lt;figcaption&gt;side by side&lt;/figcaption&gt;&lt;img src=&#34;https://bardman.dev/img/pdf-notes-example.png&#34; style=&#34;max-height:550px&#34;&gt;&lt;/figure&gt;



&lt;figure class=&#34;centered-image&#34;&gt;&lt;figcaption&gt;same note but irl&lt;/figcaption&gt;&lt;img src=&#34;https://bardman.dev/img/boox-2.jpg&#34; style=&#34;max-height:550px&#34;&gt;&lt;/figure&gt;


&lt;/details&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
	</item>
	
	<item>
		<title>My EmacsConf 2024 Presentation</title>
		<link>https://bardman.dev/technology/emacsconf-2024/</link>
		<pubDate>Sun, 08 Dec 2024 17:37:00 +0000</pubDate>
		
		<guid>https://bardman.dev/technology/emacsconf-2024/</guid>
		<description>
&lt;p&gt;
TLDR: I had gave a talk for EmacsConf 2024 about student workflows.&lt;/p&gt;
&lt;p&gt;


    
    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/ofUQMq8ZK3U?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;
      &gt;&lt;/iframe&gt;
    &lt;/div&gt;
&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Links
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://emacsconf.org/2024/talks/students/&#34;&gt;Talk on EmacsConf.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;Https://www.youtube.com/watch?v=7WTIKv5g6mw&#34;&gt;Official EmacsConf video&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=1enIJIW2P_w&#34;&gt;Official EmacsConf Q/A&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Motivation for talk
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;There is a lot of great content out there for all kinds of Emacs things, but it&amp;#39;s all jumbled around. If you don&amp;#39;t know what you want or where to look it&amp;#39;s scary. When I was learning Emacs, I could have been spared from too much tinkering (even though it&amp;#39;s fun) if someone had pointed me in the right direction. This presentation was a point in the right direction to students who want to get started with Emacs. It&amp;#39;s become increasingly often for me to see students and fans of &lt;a href=&#34;https://www.youtube.com/@jvscholz&#34;&gt;James Scholz&lt;/a&gt; (whom I also admire) to try using DOOM Emacs after seeing his videos. If people do try Emacs, I would be sad if they left because they couldn&amp;#39;t find their workflow. After all, Emacs can have almost &lt;span style=&#34;text-decoration: underline;&#34;&gt;any&lt;/span&gt; kind of workflow if you invest time into it.&lt;/p&gt;
&lt;p&gt;
Although their great, they don&amp;#39;t give a strong direction/recommendation on how to use Emacs. Starting out with Emacs can be very daunting because there are almost &amp;#34;too many&amp;#34; options. My talk presents the ones that I have settled with (for now). Hopefully students watch it and decide to try Emacs.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
How I made it
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;I created the slideshow using org-mode&amp;#39;s export to beamer. Beamer is a LaTeX presentation software that has great formatting. I recorded a voice over of me going reading through the rough script/outline I had made from that file. Afterwards, I recorded my screen flipping through the slideshow and doing the demos, combining the video with the audio in Kdenlive.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
	</item>
	
	<item>
		<title>Common Git Commands on the Command Line</title>
		<link>https://bardman.dev/technology/git_cli/</link>
		<pubDate>Thu, 24 Oct 2024 19:04:47 -0400</pubDate>
		
		<guid>https://bardman.dev/technology/git_cli/</guid>
		<description>
&lt;p&gt;
Hopefull you have read &lt;a href=&#34;https://bardman.dev/technology/git&#34;&gt;my previous article&lt;/a&gt; on the basics of git. This article will talk about how to use git on the command line. Hopefully this is not too scary, please email me if you have any questions.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Commits
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Let&amp;#39;s say you&amp;#39;re working on the basic pushbot code. You want to add forward/backward movement first, then turning.&lt;/p&gt;
&lt;div class=&#34;src src-sh&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#fff;background-color:#000;-moz-tab-size:2;-o-tab-size:2;tab-size:2;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a8a8a8&#34;&gt;# first, write your initial drive code&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a8a8a8&#34;&gt;# after testing that basic driving works:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  git add src/drive.cpp
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  git commit -m &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;Add basic forward/backward movement&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a8a8a8&#34;&gt;# later, you add turning functionality&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a8a8a8&#34;&gt;# after testing that turning works:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  git add src/drive.cpp
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  git commit -m &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;Add left/right turning functions&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Think of commits like save points. Each commit represents a working state of your code. If your turning code breaks something, you can always go back to the previous commit where just driving worked.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Pulling
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Before starting any work, you have to sync your local (on your computer) repo with the remote repo (GitHub). To do that, you have to run git pull. Before starting your work for the day always run:&lt;/p&gt;
&lt;div class=&#34;src src-sh&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#fff;background-color:#000;-moz-tab-size:2;-o-tab-size:2;tab-size:2;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  git checkout master
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  git pull origin master&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
After running this you will have a up-to-date version of the master branch and you are ready to work.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-3&#34;&gt;
Common Mistakes
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;If you forget to pull and make changes run:&lt;/p&gt;
&lt;div class=&#34;src src-sh&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#fff;background-color:#000;-moz-tab-size:2;-o-tab-size:2;tab-size:2;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  git pull origin master&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
You might see a bunch or warnings or messages about merge conflicts! This happens when git is trying to sync the files from the repo and finds them to have clashing changes before they &lt;span style=&#34;text-decoration: underline;&#34;&gt;merge&lt;/span&gt; together. To fix them:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open the files with conflicts with your editor&lt;/li&gt;
&lt;li&gt;Look for &lt;code&gt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; HEAD&lt;/code&gt; markers&lt;/li&gt;
&lt;li&gt;Decide which code to keep&lt;/li&gt;
&lt;li&gt;Save and commit the fixed files&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;The nuclear option:&lt;/strong&gt;
You can delete your changes by resetting the branch. This is outside the scope of this basic guide, but you can shoot me an email or ask me in person.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-4&#34;&gt;
&lt;span class=&#34;todo status-todo&#34;&gt;TODO&lt;/span&gt;
Stashing
&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-5&#34;&gt;
&lt;span class=&#34;todo status-todo&#34;&gt;TODO&lt;/span&gt;
Pushing
&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-6&#34;&gt;
Branches
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Here&amp;#39;s a practical example of branches:&lt;/p&gt;
&lt;p&gt;
Let&amp;#39;s say you had a main/master branch that has all of the features for a basic pushbot (driving, turning). Later, your team decides that they want to experiment with a claw design. This would be a good time to make a new branch.&lt;/p&gt;
&lt;div class=&#34;src src-sh&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#fff;background-color:#000;-moz-tab-size:2;-o-tab-size:2;tab-size:2;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a8a8a8&#34;&gt;# start from the master/main branch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  git checkout master
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a8a8a8&#34;&gt;# create your new branch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  git checkout -b feature/clawbot&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Now you can safely make commits without affecting the master branch. If you mess up the clawbot branch, you can delete it without breaking the stable part of your code that you know already works.&lt;/p&gt;
&lt;p&gt;
In summary here are the benefits:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Safety&lt;/li&gt;
&lt;li&gt;Easy to abandon/delete&lt;/li&gt;
&lt;li&gt;You can work in parallel on a feature while a teammate is doing something else&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Here&amp;#39;s a final example of a branch workflow:&lt;/p&gt;
&lt;div class=&#34;src src-sh&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#fff;background-color:#000;-moz-tab-size:2;-o-tab-size:2;tab-size:2;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a8a8a8&#34;&gt;# create branch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  git checkout -b feature/clawbot
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a8a8a8&#34;&gt;# make changes, test changes, add and commit them&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  git add src/clawbot.cpp
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  git commit -m &lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;Add clawbot feature&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a8a8a8&#34;&gt;# push feature branch to share with others on remote repo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  git push origin feature/clawbot
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a8a8a8&#34;&gt;# once you&amp;#39;re done, you can do a pull request to merge it into master&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  git checkout master
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  git merge feature/clawbot&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
	</item>
	
	<item>
		<title>Learning to use Git Version Control</title>
		<link>https://bardman.dev/technology/git/</link>
		<pubDate>Thu, 24 Oct 2024 11:42:24 -0400</pubDate>
		
		<guid>https://bardman.dev/technology/git/</guid>
		<description>
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Basics of Git
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-2&#34;&gt;
What is Git?
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Git is used to track different versions of files. It is useful for group projects, ensuring that everyone can work on it without overwriting each other. &lt;strong&gt;Think of it as the tracker of the multiverse versions of your files; it can manipulate the timelines&lt;/strong&gt;. &lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-3&#34;&gt;
Why Learn it?
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-3&#34;&gt;
&lt;ol&gt;
&lt;li&gt;It makes it a lot easier to keep track of changes between people.&lt;/li&gt;
&lt;li&gt;Easy to back up&lt;/li&gt;
&lt;li&gt;You can rollback changes that broke something&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-4&#34;&gt;
Essential Git Concepts
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-3&#34;&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-5&#34;&gt;
Repository (Repo)
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;A project folder that Git watches. It contains all the files in your project and their histories. Can be local or put on remote platform like GitHub/GitLab.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-6&#34;&gt;
Commits
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;A commit is a snapshot that you make of committed files at a specific point in time. The basic structure of a commit contains:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;unique identifier (hash)&lt;/li&gt;
&lt;li&gt;timestamp/author&lt;/li&gt;
&lt;li&gt;commit message describing what was changed (&lt;strong&gt;VERY IMPORTANT&lt;/strong&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can think of them as saves in the video game that can go back to.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-7&#34;&gt;
Branches
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;Branches work exactly like the parallel universes you see in movies. When you want to work on a major feature (by adding commits), you would typically create a new branch.&lt;/p&gt;
&lt;p&gt;
Create new branches to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;add a new feature&lt;/li&gt;
&lt;li&gt;fix a lot of bugs&lt;/li&gt;
&lt;li&gt;experiment with something&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is a bit more specifics of branches later.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-8&#34;&gt;
Common Workflows
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;This section describes the general overview of how git would be used without getting into the specifics on commands, those will come later.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-9&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-9&#34;&gt;
Starting a new project
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-9&#34; class=&#34;outline-text-3&#34;&gt;
&lt;ol&gt;
&lt;li&gt;Create a repo on GitHub&lt;/li&gt;
&lt;li&gt;Clone it to your computer (follow instructions it shows you)&lt;/li&gt;
&lt;li&gt;Add your files&lt;/li&gt;
&lt;li&gt;Commit and push changes to remote repo&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-10&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-10&#34;&gt;
Working on existing project
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-10&#34; class=&#34;outline-text-3&#34;&gt;
&lt;ol&gt;
&lt;li&gt;Clone repo&lt;/li&gt;
&lt;li&gt;Create a new branch for your feature&lt;/li&gt;
&lt;li&gt;Make your changes, commit regularly&lt;/li&gt;
&lt;li&gt;Push your branch to remote&lt;/li&gt;
&lt;li&gt;Create pull request to merge into master&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-11&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-11&#34;&gt;
Best Practices
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-11&#34; class=&#34;outline-text-3&#34;&gt;
&lt;ol&gt;
&lt;li&gt;Commit often, this allows for rolling back changes
This is still within reason, like don&amp;#39;t commit grammar changes to comments separately&lt;/li&gt;
&lt;li&gt;Write clear commit messages
Explain what you did so the owner of the repo can tell what&amp;#39;s going on&lt;/li&gt;
&lt;li&gt;Use branches in a group setting
Don&amp;#39;t work directly on master, it&amp;#39;s only for stable features&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
	</item>
	
	<item>
		<title>EMMS: Emacs Multimedia System</title>
		<link>https://bardman.dev/technology/emms/</link>
		<pubDate>Sun, 04 Aug 2024 22:37:00 +0000</pubDate>
		
		<guid>https://bardman.dev/technology/emms/</guid>
		<description>
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Description
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;From the official page: &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Emms is the Emacs Multimedia System. Emms displays and plays multimedia from within GNU/Emacs using a variety of external players and from different sources.&lt;/p&gt;
&lt;p&gt;
…&lt;/p&gt;
&lt;p&gt;
Emms can run as a minimalist player and controlled with a handful of M-x Emacs commands, or a fully-fledged, interactive media browser. Emms can display album art, play streaming audio, tag music files, search for lyrics, provide MPD connectivity, control the volume, and more. &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I cannot describe it better, this tool exemplifies the Emacs golden standard for extensibility and practicality.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Installation
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;EMMS is official GNU software, which means that it is available through the &lt;a href=&#34;https://elpa.gnu.org/&#34;&gt;GNU ELPA&lt;/a&gt; repository.&lt;/p&gt;
&lt;p&gt;
EMMS uses an external player, so you will need one. Mpv is what I use, but you can use VLC, MPD, and others (as described in the manual).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Example Configuration
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;This is a simple &lt;code&gt;use-package&lt;/code&gt; declaration that sets up some simple keybinds.&lt;/p&gt;
&lt;div class=&#34;src src-lisp&#34;&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#fff;background-color:#000;-moz-tab-size:2;-o-tab-size:2;tab-size:2;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#feacd0&#34;&gt;use-package&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;emms&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#79a8ff&#34;&gt;:ensure&lt;/span&gt; t
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#79a8ff&#34;&gt;:bind&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#79a8ff&#34;&gt;:map&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;emms-playlist-mode-map&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;M-&amp;lt;f8&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;emms-browser&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;A&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;emms-add-directory&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;T&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;emms-add-directory-tree&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;F&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;emms-add-file&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;U&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;emms-add-url&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;L&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;emms-toggle-repeat-track&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;&amp;lt;mouse-3&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;emms-pause&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          (&lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;&amp;lt;SPC&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;emms-pause&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#79a8ff&#34;&gt;:bind&lt;/span&gt; (&lt;span style=&#34;color:#79a8ff&#34;&gt;&amp;#34;&amp;lt;f8&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#00d3d0&#34;&gt;emms&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-4&#34;&gt;
How I Like To Use It
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;I have my music saved as mp3 files. Sometimes I download longer mixes from YouTube with &lt;code&gt;yt-dlp&lt;/code&gt; as mp4 or webm (usually mp4). I don&amp;#39;t need much in a multimedia player, and EMMS provides it.&lt;/p&gt;
&lt;p&gt;
Normally my process for playing music is like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open emms with &lt;code&gt;&amp;lt;f8&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Click the &lt;code&gt;A&lt;/code&gt; key to add a subdirectory in from my music library.&lt;/li&gt;
&lt;li&gt;Then I pick the song I want to listen to and start working.&lt;/li&gt;
&lt;/ol&gt;

&lt;figure class=&#34;centered-image&#34;&gt;&lt;figcaption&gt;EMMS Browser in action, sorry for the FFMPEG artifacts.&lt;/figcaption&gt;&lt;img src=&#34;https://bardman.dev/img/emms-demo.gif&#34;&gt;&lt;/figure&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-5&#34;&gt;
References and Documentation
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-2&#34;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.gnu.org/software/emms/&#34;&gt;Official Manual&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://mpv.io/&#34;&gt;mpv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/yt-dlp/yt-dlp/&#34;&gt;yt-dlp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/spotDL/spotify-downloader&#34;&gt;spotdl&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
	</item>
	
	<item>
		<title>Programs I Use</title>
		<link>https://bardman.dev/technology/programs/</link>
		<pubDate>Thu, 23 Nov 2023 00:00:00 +0000</pubDate>
		
		<guid>https://bardman.dev/technology/programs/</guid>
		<description>
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Gallery
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;You can view a gallery of my desktop screenshots &lt;a href=&#34;https://bardman.dev/technology/gallery/&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Philosophy For Programs
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-3&#34;&gt;
1. Functionality
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;I want my programs to be minimal, but not the point of being completely featureless. I&amp;#39;m can&amp;#39;t use a TTY for browsing the modern web. I&amp;#39;m also don&amp;#39;t need to use the behemoth that is the Gnome desktop environment. I use something in between these two.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-4&#34;&gt;
2. Bloat
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;
I use many of its features, and it is basically like a secondary operating system. It does make computing fun and efficient so I will continue using it despite its few flaws.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-5&#34;&gt;
3. Aesthetically Pleasing
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;The main reason why I got into Linux was to make my desktop look nice (no really). I stayed because of the utilities that are commonly associated with it. The programs I use should not be ugly and clunky.&lt;/p&gt;
&lt;p&gt;
I don&amp;#39;t go as extreme as the average hyprland zoomer and make my windows 30% opacity with rounded corners and animations, or the boomer with default themes for everything. I like to keep my programs functionally aesthetic.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-6&#34;&gt;
Why Choose These Tools Over Windows/MacOS
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;I can&amp;#39;t change many default behaviours of these proprietary operating systems. I want to enjoy using my computer. The tools that make my computing experience enjoyable work best on linux. If I didn&amp;#39;t have a choice, like in a work environment, I would have to comply. However, my preference would still be for Linux.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-7&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-7&#34;&gt;
Main Programs
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-7&#34; class=&#34;outline-text-2&#34;&gt;
&lt;div id=&#34;outline-container-headline-8&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-8&#34;&gt;
Operating System
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-8&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;GNU/Linux is my favorite choice for desktop computing. In the past I have used: PopOs!, Manjaro, ArcoLinux, Debian, Ubuntu Server.&lt;/p&gt;
&lt;p&gt;
&lt;del&gt;I settled with Debian and Gentoo as my main choices. Gentoo for my desktop and laptop, Debian 12 for my home server.&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;
As of October 2025, I have been using NixOS for a couple months. I like parts of it, others not so much, but I think that it is saving a lot of time. NixOS is not a minimal distribution of Linux, but it provides useful features that make me more productive. I use Gentoo on my desktop for now, but I might switch it to NixOS before the new year.&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Pros of NixOS:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Declarative setup, makes packages somewhat stable&lt;/li&gt;
&lt;li&gt;Configure system in code, just like n(vim)/Emacs&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cons of Nixos:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;kind of bloated&lt;/li&gt;
&lt;li&gt;small security concerns, I feel like Gentoo is better with it&lt;/li&gt;
&lt;li&gt;can&amp;#39;t just run &lt;code&gt;sudo make install&lt;/code&gt; whenever I want&lt;/li&gt;
&lt;li&gt;systemd&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Pros of Debian:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;quick to setup and easy to maintain&lt;/li&gt;
&lt;li&gt;wide range of avaiable software/drivers&lt;/li&gt;
&lt;li&gt;stable&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cons of Debian&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;systemd&lt;/li&gt;
&lt;li&gt;not as minimal as Gentoo&lt;/li&gt;
&lt;li&gt;outdated versions of some packages&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Pros of Gentoo:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ability to meticulously control everything about your system → how unstable/stable it is, how minimal it is, and so on&lt;/li&gt;
&lt;li&gt;compiling packages may increase performance&lt;/li&gt;
&lt;li&gt;more init system choices (systemd, openrc, etc)&lt;/li&gt;
&lt;li&gt;more benefits &lt;a href=&#34;https://wiki.gentoo.org/wiki/Benefits_of_Gentoo&#34;&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cons of Gentoo&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;not easy to setup/maintain for most people&lt;/li&gt;
&lt;li&gt;a pretty significant time investment&lt;/li&gt;
&lt;li&gt;takes a long time to install (might be my fault)&lt;/li&gt;
&lt;li&gt;compiling packages can take a long time&lt;/li&gt;
&lt;/ul&gt;
&lt;div id=&#34;outline-container-headline-9&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-9&#34;&gt;
(2025 addition)
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-9&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;I have started using Artix+openrc on my laptop&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-10&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-10&#34;&gt;
Web Browsing: Firefox and Librewolf
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-10&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;These are easy to use and don&amp;#39;t eat up as much RAM as chromium. They are also both free and open source which makes it easier to install them on linux.&lt;/p&gt;
&lt;div id=&#34;outline-container-headline-11&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-11&#34;&gt;
Extensions/Addons
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-11&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;I don&amp;#39;t use many extensions. Bitwarden is a password manager that I highly recommend. I also really like Tridactyl, a vim browsing extension. It provides vim bindings for actions like clicking on links, switching tabs, scrolling, etc. It&amp;#39;s great because I never have to touch my mouse &lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-12&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-12&#34;&gt;
Aesthetics
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-12&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;Both browsers can use a userChrome.css for customizing the interface. I use the &lt;a href=&#34;https://github.com/Dook97/firefox-qutebrowser-userchrome&#34;&gt;i3wm lookalike theme&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-13&#34; class=&#34;outline-4&#34;&gt;
&lt;h4 id=&#34;headline-13&#34;&gt;
Why Do I Have Two Browsers?
&lt;/h4&gt;
&lt;div id=&#34;outline-text-headline-13&#34; class=&#34;outline-text-4&#34;&gt;
&lt;p&gt;I like to seperate school/home browsing. Also some websites, like twitch.tv, don&amp;#39;t allow Librewolf users to log in because the browser is &lt;em&gt;&amp;#34;unsupported&amp;#34;&lt;/em&gt; even though I can watch streams perfectly fine. In this case I just use Firefox as a backup.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-14&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-14&#34;&gt;
Text Editor: GNU Emacs
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-14&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;This has been text editor of choice since I found DOOM emacs in 2022. I really like the extensible nature of Emacs lisp and the packages that are avaiable. If you want to here more about my Emacs workflow, click &lt;a href=&#34;https://bardman.dev/technology/workflow&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-15&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-15&#34;&gt;
Window Manager - DWM
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-15&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;I have jumped between different WMs. First preconfigured dwm on arcolinux, then i3, then xmonad, and then to Luke Smith&amp;#39;s dwm with my own configurations. &lt;del&gt;I don&amp;#39;t see myself moving away from dwm anytime soon.&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;
I have made several configurations for window managers and I kind of hope between them when I feel like it. Until I write my own wm, there is no perfect one. They don&amp;#39;t all have the same features, but one day there will be a wm that is perfect for me. I haven&amp;#39;t started working on it, but it will likely be called something like клетка-wm.&lt;/p&gt;
&lt;p&gt;

&lt;figure class=&#34;centered-image&#34;&gt;&lt;figcaption&gt;open windows: Emacs and Librewolf editing this article&lt;/figcaption&gt;&lt;img src=&#34;https://bardman.dev/img/dwm.png&#34; title=&#34;dwm window manager&#34;&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-16&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-16&#34;&gt;
Media
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-16&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;&lt;strong&gt;MPV:&lt;/strong&gt; I use this to play video files that I download from the internet/produce myself. It never lags and the UI is functionally minimal. I don&amp;#39;t customize it or script it with the Lua programming language. I use mpv to play video files from the command line.&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Emacs:&lt;/strong&gt; Emacs has a package called EMMS (Emacs Multi Media System) that I have been using since my start with DOOM Emacs. It uses MPV to play music/videos with Emacs. It&amp;#39;s very convenient as a music player because you can create playlists with Emacs text buffers. &lt;a href=&#34;https://bardman.dev/technology/emms&#34;&gt;Here&lt;/a&gt; is a more extensive description of my multimedia workflow with Emacs.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-17&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-17&#34;&gt;
Utilities
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-17&#34; class=&#34;outline-text-2&#34;&gt;
&lt;div id=&#34;outline-container-headline-18&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-18&#34;&gt;
Terminal - ST Suckless Terminal
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-18&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;Suckless terminal (st): It is fast, never crashes, minimal, and full of features. Since it is a suckless tool, you start with the original codebase and can add patches to it.&lt;/p&gt;
&lt;p&gt;
I never really felt the need to deeply customize it from the ground up as people have already done the hard work for me. I just cloned Luke Smith&amp;#39;s fork and changed the fonts and colors. It is patched to have support for Xresources themeing, changing font scale, scrolling, and much more.&lt;/p&gt;
&lt;p&gt;
I also have URxvt installed and customized as a backup incase something breaks one day because it offers almost the same experience. They look identical with certain customizations. The reaason I don&amp;#39;t use it is because I don&amp;#39;t know perl make it more extensible with scripts.&lt;/p&gt;
&lt;p&gt;

&lt;figure class=&#34;centered-image&#34;&gt;&lt;figcaption&gt;dired with hidden mode on to reduce clutter&lt;/figcaption&gt;&lt;img src=&#34;https://bardman.dev/img/stterm.png&#34; title=&#34;st terminal&#34;&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-19&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-19&#34;&gt;
File Manager - Emacs Dired
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-19&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;It&amp;#39;s pretty basic and easy to use. It is just a text buffer in Emacs that you can manipulate with its built-in functions. You can even generate thumbnails with it if you are in a directory with pictures with image-dired. Because its part of Emacs, it benefits from the extensibility of it.&lt;/p&gt;
&lt;p&gt;

&lt;figure class=&#34;centered-image&#34;&gt;&lt;figcaption&gt;tmux windows: terminal, btop, and plain terminal&lt;/figcaption&gt;&lt;img src=&#34;https://bardman.dev/img/dired.png&#34; title=&#34;st terminal&#34;&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-20&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-20&#34;&gt;
dmenu
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-20&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;dmenu stands for dynamic menu. A user can input options with stdin and select one with dmenu and get an output to stdout.&lt;/p&gt;
&lt;p&gt;
This is useful for scripts like my dired_selector scripts that gives me a selection of predefined directories and when I choose one, it opens a dired buffer in Emacs with that directory.&lt;/p&gt;
&lt;p&gt;
dmenu can also be used as a launcher for programs in a minimalist window manager. The options are nearly limitless.&lt;/p&gt;
&lt;p&gt;
Because this is suckless software, features can be added in. The only patches I have added are the Xresources, center, and lineheight patches that make it look nice.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-21&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-21&#34;&gt;
Notification Daemon - dunst
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-21&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;dunst is a minimal notification daemon. I don&amp;#39;t really get a lot of notifications, but it&amp;#39;s there for when I do. You can add sounds to it, rice it, script it and much more. Check out &lt;a href=&#34;https://dunst-project.org/&#34;&gt;the dunst project website&lt;/a&gt; to learn about more of its features.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-22&#34; class=&#34;outline-3&#34;&gt;
&lt;h3 id=&#34;headline-22&#34;&gt;
Image Viewer - nsxiv
&lt;/h3&gt;
&lt;div id=&#34;outline-text-headline-22&#34; class=&#34;outline-text-3&#34;&gt;
&lt;p&gt;nsxiv is a pretty basic image viewer. It has a nice gallery mode and I made it able to select/set my wallpaper with a feh script. It has stdin/stdout capabilities, just like most other suckless software.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
	</item>
	
	</channel>
</rss>
