<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Cli on Chris Irwin</title>
    <link>/tags/cli/</link>
    <description>Recent content in Cli on Chris Irwin</description>
    <generator>Hugo -- 0.147.7</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 11 Mar 2026 01:36:19 -0400</lastBuildDate>
    <atom:link href="/tags/cli/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Alt Tab With Ptyxis</title>
      <link>/posts/alt-tab-with-ptyxis/</link>
      <pubDate>Wed, 11 Mar 2026 01:36:19 -0400</pubDate>
      <guid>/posts/alt-tab-with-ptyxis/</guid>
      <description>&lt;p&gt;GNOME has a wonderful feature of grouping applications in the Alt+Tab menu. Pressing Alt+Tab lets you quickly switch from Terminal to Firefox, without having to iterate through each of your multiple Terminal or Firefox windows.&lt;/p&gt;
&lt;p&gt;The issue is that not all Terminal windows are equal. Perhaps you&amp;rsquo;ve got specific dev tools you want separated from other Terminals. In my case, I use &lt;code&gt;mutt&lt;/code&gt; for email, and I want to be able to quickly Alt+Tab to my email without having to sift through a half-dozen terminals I&amp;rsquo;m using for other things.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Offlineimap repeatedly deleting All Mail</title>
      <link>/posts/offlineimap-deletes-everything/</link>
      <pubDate>Thu, 28 Feb 2013 01:58:00 +0000</pubDate>
      <guid>/posts/offlineimap-deletes-everything/</guid>
      <description>&lt;p&gt;or &amp;ldquo;That&amp;rsquo;s why you read changelogs&amp;rdquo;&lt;/p&gt;
&lt;p&gt;I was having some significant difficulties with offlineimap after upgrading to 6.5.4 (I&amp;rsquo;m using Ubuntu currently, so I upgraded straight from 6.3.4).&lt;/p&gt;
&lt;p&gt;The original issue was a FolderValidity error, which is covered by the &lt;a href=&#34;http://docs.offlineimap.org/en/latest/FAQ.html#what-is-the-uid-validity-problem-for-folder&#34;&gt;offlineimap FAQ&lt;/a&gt;. This affected my &amp;ldquo;All Mail&amp;rdquo; folder (It also affected my &amp;ldquo;Sent Mail&amp;rdquo;, but it got lost in the noise of the 67964 messages in All Mail). The recovery process is simply to remove that folder (and it&amp;rsquo;s sync history), and start over. Unfortunate, but fine. That&amp;rsquo;s why I&amp;rsquo;ve got a 28Mbit connection, after all.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using devtodo with multiple projects</title>
      <link>/posts/using-devtodo-with-multiple-projects/</link>
      <pubDate>Mon, 12 Jul 2010 15:34:29 -0700</pubDate>
      <guid>/posts/using-devtodo-with-multiple-projects/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve tried (and failed) to use many different pieces of software
designed to manage todo lists. The main reasons I&amp;rsquo;ve failed is because
the software either has a high learning curve, bad documentation, or it
is cumbersome to use.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve finally struck gold with devtodo. Out of the box, it is almost
perfect, but there are a few little issues:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It expects .todo in the current directory&lt;/li&gt;
&lt;li&gt;It has no ability to track what you are working on.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;rsquo;ve managed to work around both of those with some extra functions in
my .bash_profile.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reverse Find</title>
      <link>/posts/reverse-find/</link>
      <pubDate>Mon, 12 Jul 2010 14:54:00 -0700</pubDate>
      <guid>/posts/reverse-find/</guid>
      <description>&lt;p&gt;I recently had need to do a reverse find, and couldn&amp;rsquo;t discover any programs that offer this functionality. I decided to work around the issue using a bash function, loops, and &lt;code&gt;find&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This function can be stuffed into your ~/.bash_profile, and referenced wherever you need it.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;rfind()
{
    rfind_path=&amp;amp;quot;${PWD}&amp;amp;quot;
    while [[ &amp;amp;quot;${rfind_path}&amp;amp;quot; != &amp;amp;quot;/&amp;amp;quot; ]]; do
        rfind_search_paths=&amp;amp;quot;${rfind_search_paths} ${rfind_path}&amp;amp;quot;
        rfind_path=$(dirname &amp;amp;quot;${rfind_path}&amp;amp;quot;)
    done
    
    find ${rfind_search_paths} / -maxdepth 1 $@ -print -quit
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As an example, let&amp;rsquo;s say I&amp;rsquo;m in /home/user/docs, and I execute &lt;code&gt;rfind somefile.txt&lt;/code&gt;. rfind will actually build a command and execute the following:&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
