monochromatic

monochromatic blog: http://blog.z3bra.org
git clone git://z3bra.org/monochromatic
Log | Files | Refs

commit 15526701c0ac1f0628ad6f332217a4034feff274
parent fc4c9e9667bce24d3631f6cec8e24a54d05a41aa
Author: z3bra <willy@mailoo.org>
Date:   Thu, 13 Mar 2014 01:14:17 +0100

Wrote a new article

Diffstat:
2014/03/toolbox.html | 456+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
index.html | 19+++++++++++++++++++
rss/feed.xml | 10++++++++++
3 files changed, 485 insertions(+), 0 deletions(-)

diff --git a/2014/03/toolbox.html b/2014/03/toolbox.html @@ -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>&mdash; <a href='/about.html'>z3bra</a>, the stripes apart</h2> + </header> + <div id='wrapper'> + <section> + <h1> + <a href='#'>Toolbox</a> + </h1> + <h2> + &mdash; 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> + &mdash; 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> &mdash; + <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> &mdash; + <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> &mdash; + <a href="/img/2014-03-13-dtach.jpg">SHOT</a> + </p> + + <p> + I often see newbies asking this question: + </p> + <blockquote> + <p> + newbie &mdash; How can I move one application from one terminal to another ? + </p> + <p> + stranger1 &mdash; you need screen.<br/> + stranger2 &mdash; tmux is better !<br/> + stranger1 &mdash; How so ?<br/> + stranger3 &mdash; It has vertical splits !<br/> + stranger2 &mdash; It's scriptable<br/> + newbie &mdash; how does it works ?<br/> + stranger1 &mdash; There is a vsplit patch fro screen<br/> + stranger3 &mdash; 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!" &gt; 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 &lt;enter&gt;, 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 &lt;enter&gt;. + </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> &mdash; + <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> &mdash; + <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> <!-- &hearts; -->// + <a href='http://www.wtfpl.net/about/'>wtfpl</a> <!-- &copy; -->// + <a href='mailto:willy@mailoo.org'>mail</a> <!-- &#9993; -->// + <a href='http://z3bra.org'>root</a> <!-- &#9774; -->// + <a href='http://blog.z3bra.org/rss/feed.xml'>rss</a> <!-- &#9733; --> + </footer> + <!-- }}} --> + </body> +</html> +<!-- vim: set sw=2 et ai fdm=marker ft=html: --> diff --git a/index.html b/index.html @@ -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> + &mdash; 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> diff --git a/rss/feed.xml b/rss/feed.xml @@ -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>