tWrote a new article - monochromatic - monochromatic blog: http://blog.z3bra.org
(HTM) git clone git://z3bra.org/monochromatic
(DIR) Log
(DIR) Files
(DIR) Refs
---
(DIR) commit 15526701c0ac1f0628ad6f332217a4034feff274
(DIR) parent fc4c9e9667bce24d3631f6cec8e24a54d05a41aa
(HTM) Author: z3bra <willy@mailoo.org>
Date: Thu, 13 Mar 2014 01:14:17 +0100
Wrote a new article
Diffstat:
A 2014/03/toolbox.html | 456 +++++++++++++++++++++++++++++++
M index.html | 19 +++++++++++++++++++
M rss/feed.xml | 10 ++++++++++
3 files changed, 485 insertions(+), 0 deletions(-)
---
(DIR) diff --git a/2014/03/toolbox.html b/2014/03/toolbox.html
t@@ -0,0 +1,456 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset='utf-8'/>
+ <link rel='stylesheet' href='/css/monochrome.css'/>
+ <link rel='stylesheet' href='/css/code.css'/>
+ <link rel='stylesheet' href='/css/phone.css' media='screen and (max-width: 540px)'/>
+ <title>z3bra.org - monochromatic blog</title>
+ </head>
+ <body>
+ <header>
+ <h1><a href='/'>Monochromatic</a></h1> <h2>— <a href='/about.html'>z3bra</a>, the stripes apart</h2>
+ </header>
+ <div id='wrapper'>
+ <section>
+ <h1>
+ <a href='#'>Toolbox</a>
+ </h1>
+ <h2>
+ — 12 March, 2014
+ </h2>
+ <article>
+ <p>
+ Please, allow me to start this one with a smart quote, to let you
+ know what will follow:
+ </p>
+ <blockquote>
+ <p>
+ Show me what's the output of your '<code>ls /usr/bin</code>', and
+ I'll tell you who you are ...
+ </p>
+ — Nobody (because that's freakin' stupid)
+ </blockquote>
+ <p>
+ That being said, we can move on. I'll keep this article updated in
+ time, because it's <em>more</em> than an article. It's a list. A
+ list of the tools I use (or have used maybe) daily, and that I think
+ are worth mentionning. You'll find tools written by me, or by other.
+ Shell scripts, or compiled program. Everything that I find 'nice'.
+ </p>
+
+ <p>
+ Those tools are (most of the time) not important or complex enough
+ to get a dedicated post, so I'll just write a paragraph here about
+ them. If you feel that one of them require a bigger description,
+ email me and I'll consider writing an article about it.
+ </p>
+
+ <p>
+ Let's start with my current setup ! Every tool in this list is
+ installed on my main computer (a desktop one). I'll avoid
+ mentionning server administration tools, because that's too
+ specific.
+ </p>
+ </article>
+
+ <h3>Computer</h3>
+ <article>
+ <ul>
+ <li>CRUX 3.0</li>
+ <li>AMD A10-5800k</li>
+ <li>Nvidia GeForce GTx 650 Ti</li>
+ <li>Roccat Kone Pure</li>
+ <li>Razer Vespuala</li>
+ </ul>
+ </article>
+
+ <h3>Tool list</h3>
+ <article>
+ <ul>
+ <li><a href="#2bwm">2bwm</a></li>
+ <li><a href="#bar">bar</a></li>
+ <li><a href="#dtach">dtach</a></li>
+ <li><a href="#fcount">fcount</a></li>
+ <li><a href="#hsetroot">hsetroot</a></li>
+ <li><a href="#ii">ii</a></li>
+ <li><a href="#instagram">instagram</a></li>
+ <li><a href="#mcount">mcount</a></li>
+ <li><a href="#meh">meh</a></li>
+ <li><a href="#popup">popup</a></li>
+ <li><a href="#prout">prout</a></li>
+ <li><a href="#prtmk">prtmk</a></li>
+ <li><a href="#ptii">ptii</a></li>
+ <li><a href="#uplay">uplay</a></li>
+ <li><a href="#vim">vim</a></li>
+ <li><a href="#wendy">wendy</a></li>
+ </ul>
+
+ <p>
+ <strong>TLDR;</strong> dumbass, don't lurk on blogs if you can't
+ read!
+ </p>
+ </article>
+
+ <h3 id="2bwm">2bwm</h3>
+ <article>
+ <p>
+ <a href="http://git.z3bra.org/cgit.cgi/2bwm">LINK</a> —
+ <a href="/img/2014-01-08-2bwm.jpg">SHOT</a>
+ </p>
+ <p>
+ It means <q>Two borders window manager</q>. This is my WM of choice.
+ It is a fork of <a href="http://hack.org/mc/hacks/mcwm/">mcwm</a>,
+ but the author, Venam, added so many feature that it became a new
+ tool.
+ </p>
+
+ <p>
+ 2bwm is a floating WM. It means that your computer will never change
+ the window geometry if you don't ask him (but tilling WM will).
+ </p>
+
+ <p>
+ With 2bwm, you can resize window horiz/vertically, or grow them
+ keeping aspect ratio. You can move them in any direction, or gut
+ them in the corners or in the middle, all that, just with your
+ keyboard !
+ </p>
+
+ <p>
+ I personnally forked it myself to add a specific feature: window
+ groups. It works kinda like traditionnal workspaces, except that you
+ can show or hide them independently, allowing you to show multiple
+ workspaces at the same time. See a showcase
+ <a href="http://raw.z3bra.org/vid/2bwm.webm">here</a>.
+ </p>
+ </article>
+
+ <h3 id="bar">bar</h3>
+ <article>
+ <p>
+ <a href="http://git.z3bra.org/cgit.cgi/bar">LINK</a> —
+ <a href="/img/2014-03-13-bar.jpg">SHOT</a>
+ </p>
+
+ <p>
+ Bar (or (b)ar (a)in't (r)ecursive) is a lightweight status bar
+ application written on top of XCB. You can pipe text to it, and it
+ will be displayed within the bar. You can also use escape sequences
+ to add colored backgrounds, foregrounds or underlining.
+ </p>
+
+ <p>
+ It allow the use of <a href="http://git.z3bra.org/cgit.cgi/scripts/tree/bar/status.sh">complicated</a>
+ scripts to get a tons of infos within that thin, lovely bar.
+ </p>
+
+ <p>
+ I forked it to add a little feature: change the width of the bar on
+ startup, allowing to use bar as a notification <a href="#popup">popup</a>
+ </p>
+ </article>
+
+ <h3 id="dtach">dtach</h3>
+ <article>
+ <p>
+ <a href="http://dtach.sourceforge.net/">LINK</a> —
+ <a href="/img/2014-03-13-dtach.jpg">SHOT</a>
+ </p>
+
+ <p>
+ I often see newbies asking this question:
+ </p>
+ <blockquote>
+ <p>
+ newbie — How can I move one application from one terminal to another ?
+ </p>
+ <p>
+ stranger1 — you need screen.<br/>
+ stranger2 — tmux is better !<br/>
+ stranger1 — How so ?<br/>
+ stranger3 — It has vertical splits !<br/>
+ stranger2 — It's scriptable<br/>
+ newbie — how does it works ?<br/>
+ stranger1 — There is a vsplit patch fro screen<br/>
+ stranger3 — Yes but ...<br/>
+ str...
+ </p>
+ </blockquote>
+
+ <p>
+ The problem here, is that screen AND tmux are terminal MULTIPLEXER.
+ Their main job is to give access to multiple terminal within on
+ PHYSICAL terminal. The possibility to detach and reattach them is
+ just a feature.
+ </p>
+ <p>
+ But that feature was so good, that a small team wrote a tool with
+ ONLY the ability to detach an application, and reattach it somewhere
+ else. Here came dtach.
+ </p>
+ <p>
+ The advantages of dtach are its small size, (not only the code,
+ because it only depends on glibc), and that you don't have to
+ remember a million commands. There is one only bind: <code>^\</code>
+ to detach the process. You can also disable this key and use signals
+ to detach it from elsewhere.
+ </p>
+ <p>
+ I personnaly use it to reattach to my irssi session, as it's the
+ only application I need on a remote server. You will also be able to
+ send an application from one screen/tmux session to another. Isn't
+ that cool ?
+ </p>
+ </article>
+
+ <h3 id="fcount">fcount</h3>
+ <article>
+ <p>
+ <a href="http://git.z3bra.org/cgit.cgi/fcount">LINK</a>
+ </p>
+
+ <p>
+ That is a tool I made. It is REALLY DUMB, but totally usefull in a
+ particular case.<br/>
+ </p>
+ <p>
+ fcount counts the number of files within a directory. NOTHING.
+ F**KING. MORE.<br/>
+ It's basically a "<code>ls -rAa1 | wc -l</code>" within one process.
+ </p>
+ <p>
+ I agree that you can find stupid to use a program like that, but
+ within a script that will be executed every second to display the
+ number of unread mails in a status bar, it is usefull to gain some
+ miliseconds.<br/> Take it or not, this is your choice.
+ </p>
+ </article>
+
+ <h3 id="hsetroot">hsetroot</h3>
+ <article>
+ <p>
+ <a href="http://thegraveyard.org/hsetroot.php">LINK</a> (dead)
+ </p>
+
+ <p>
+ I like this one. This is a tool to display images on the root window
+ (humans: understand "change wallpaper"). You can fit/expand/tile
+ images, create gradients, add tint to images... Everything you could
+ want to do with a wallpaper can be done with it. And it's light as
+ I like ! Forget that crappy feh ! You can barely get rid of the
+ .fehbg that pisses you off !
+ </p>
+ </article>
+
+
+ <h3 id="ii">ii</h3>
+ <article>
+ <p>
+ <a href="http://tools.suckless.org/ii/">LINK</a>
+ </p>
+
+ <p>
+ Okay, I don't use it <em>that</em> often.<br/>
+ II stands for Irc It, and is a filesystem based irc client.
+ Upon starting, ii will create a file hierarchy looking like this:
+ </p>
+ <pre><code>
+$ tree irc/irc.oftc.net/
+irc/
+├── irc.oftc.net
+│ ├── int
+│ ├── out
+│ └── #shblah
+│ ├── int
+│ └── out
+└── irc.iotek.org
+ ├── in
+ ├── nickserv
+ │ ├── in
+ │ └── out
+ ├── out
+ └── #wizards
+ ├── in
+ └── out</code></pre>
+
+ <p>
+ The first folder is the server, and the subfolders are the channels
+ which you are connected to. The 'in' and 'out' files are named pipes
+ that you can read from and write to to interact with
+ servers/channels.<br/>
+ Example:
+ </p>
+
+ <pre><code> echo "Hi, people of shblah!" > irc/irc.oftc.net/\#shblah/in</code></pre>
+
+ <p>
+ Will effectively send a message to the channel "#shblah" on server
+ "irc.oftc.net".
+ </p>
+
+ <p>
+ I agree that this is not the most practical client you've used, but
+ it's a simple and good unix tool. I use it within a tiny script
+ along with a tool of mine (<a href="#ptii">ptii</a>) to get a quick
+ access to the IRC without having to fire up irssi with 4 server
+ connection, 10 channel autojoins, and such..
+ </p>
+ </article>
+
+ <h3 id="instagram">instagram</h3>
+ <article>
+ <p>
+ <a href="http://git.z3bra.org/cgit.cgi/scripts/tree/instagram">LINK</a>
+ </p>
+
+ <p>
+ My swiss-knife for screen shots. At first, I wrote it to be able to
+ take a shot of only one of my two screens. It's now a script with a
+ lot of features, like uploading, thumbnail creation, and such.
+ </p>
+ <p>
+ It will also open a preview of the shot you just took, and put it in
+ a predifined folder. You can write your own 'upload' function to
+ upload the way you want
+ </p>
+ </article>
+
+ <h3 id="meh">meh</h3>
+ <article>
+ <p>
+ <a href="http://www.johnhawthorn.com/meh/">LINK</a>
+ </p>
+
+ <p>
+ I've spit on feh before (see <a href="#hsetroot">hsetroot</a>. I
+ have effectively some problems with it. Feh is impossible to use. it
+ displays the images in full size, no matter what the window size
+ is. And that's freaking annoying... I just want my image viewer to
+ display an image at the maximum size for the window, and to resize
+ when I change the window size.
+ </p>
+
+ <p>
+ That is what meh does. And (almost) nothing more ! Meh take a list
+ of images as arguments, and fits them in its window. Meh can also
+ read a list from stdin. You can then cycle through images using
+ h,j,k,l,left,down,up,right.
+ </p>
+
+ <p>
+ When you press <enter>, meh outputs the current image name to
+ stdout. It allows cool stuffs like <code>meh *.jpg | xargs rm</code>
+ to delete the images upon pressing <enter>.
+ </p>
+ </article>
+
+ <h3 id="popup">popup</h3>
+ <article>
+ <p>
+ <a href="http://git.z3bra.org/cgit.cgi/scripts/tree/popup">LINK</a>
+ </p>
+
+ <p>
+ This is just a simple script that uses my fork of
+ <a href="#bar">bar</a> to display a small notification bar at the
+ top left hand corner of your desktop.
+ </p>
+ </article>
+
+
+ <h3 id="prout">prout</h3>
+ <article>
+ <p>
+ <a href="http://git.z3bra.org/cgit.cgi/prout">LINK</a>
+ </p>
+ <p>
+ Did you notice? If you want to send a document to the printer
+ configured to /etc/client.conf using the <code>lp</code> command,
+ you need (at least, on Archlinux) to install the full cups server!
+ That's a shame, isn't it?
+ </p>
+
+ <p>
+ That's the reason why I wrote prout. The only dependency is libcups.
+ This tool only sends a file given as argument to the default
+ printer. Nothing else. You can't actually send options along with
+ the document, but I'm not sure that I want to implement this
+ feature...
+ </p>
+
+ <p>
+ Anyway, this is pretty neat to me! I hope you'll enjoy it.
+ </p>
+ </article>
+
+ <h3 id="ptii">ptii</h3>
+ <article>
+ <p>
+ <a href="http://git.z3bra.org/cgit.cgi/ptii">LINK</a> —
+ <a href="/img/2014-03-13-ptii.jpg">SHOT</a>
+ </p>
+
+ <p>
+ Here is an <a href="#ii">ii</a> helper. Just fire it up in the ii's
+ directory, and you will be able to talk on multiple channels easily.
+ Using simple commands like <code>/cn</code>, <code>/cp</code>,
+ <code>/cl</code>, you will be able to list and switch between
+ channels.
+ </p>
+
+ <p>
+ The interresting point of this tool is that it uses inotify to
+ automatically add channels to your list when ii create the folders.
+ </p>
+ </article>
+
+ <h3 id="wendy">wendy</h3>
+ <article>
+ <p>
+ <a href="http://git.z3bra.org/cgit.cgi/wendy">LINK</a> —
+ <a href="/img/2014-03-13-wendy.jpg">SHOT</a>
+ </p>
+
+ <p>
+ Wendy makes my life better. I first wrote it as an exercise to learn
+ inotify, but it turned out to be a good replacement to inotifywait.
+ </p>
+
+ <p>
+ Wendy let you watch a directory/file and execute a command when a
+ watched event is received. <br/>
+ As an example is worth a thousand explications, there you go:
+ </p>
+
+ <pre><code>
+# watch mail directory for new mails and raise an alert
+wendy -C ~/var/mail/INBOX/new -t 60 -e beep
+
+# automatic recompilation
+wendy -M wendy.c -e make</code></pre>
+ <p>
+ Every inotify mask can be used, and they can be combined (eg, whatch
+ creation AND modification).
+ </p>
+
+ <p>
+ I tried to make this tool the most simple possible, to extend the
+ possibilities. Be creative!
+ </p>
+ </article>
+
+ </section>
+ </div>
+ <!-- footer {{{ -->
+ <footer>
+ <a href='http://www.acme.com/software/thttpd/'>thttpd</a> <!-- ♥ -->//
+ <a href='http://www.wtfpl.net/about/'>wtfpl</a> <!-- © -->//
+ <a href='mailto:willy@mailoo.org'>mail</a> <!-- ✉ -->//
+ <a href='http://z3bra.org'>root</a> <!-- ☮ -->//
+ <a href='http://blog.z3bra.org/rss/feed.xml'>rss</a> <!-- ★ -->
+ </footer>
+ <!-- }}} -->
+ </body>
+</html>
+<!-- vim: set sw=2 et ai fdm=marker ft=html: -->
(DIR) diff --git a/index.html b/index.html
t@@ -35,6 +35,25 @@
0. You just DO WHAT THE FUCK YOU WANT TO.
}}} -->
<section>
+ <!-- Toolbox{{{ -->
+ <h1>
+ <a href='/2014/03/toolbox.html'>Toolbox</a>
+ </h1>
+ <h2>
+ — 13 March, 2014
+ </h2>
+ <article>
+ <p>
+ Yeah, yet another list of unix tools. Feel free to avoid it, but you
+ probably miss some nice tools you've probable never heard of!<br/>
+ I'll keep this list updated, so don't forget to check it from time
+ to time.
+ </p>
+ </article>
+ <!-- }}} -->
+
+ <br />
+
<!-- Images in terminal{{{ -->
<h1>
<a href='/2014/01/images-in-terminal.html'>Images in terminal</a>
(DIR) diff --git a/rss/feed.xml b/rss/feed.xml
t@@ -6,6 +6,16 @@
<link>http://blog.z3bra.org</link>
<item>
<title>
+Toolbox
+</title>
+<description>
+Yeah, yet another list of unix tools. Feel free to avoid it, but you
+I'll keep this list updated, so don't forget to check it from time
+to time.
+</description>
+</item>
+<item>
+<title>
Images in terminal
</title>
<description>