Hacker News new | past | comments | ask | show | jobs | submit login
Life in Text Mode (aperiodic.net)
77 points by miles on Nov 26, 2010 | hide | past | favorite | 59 comments



Nice to see like-minded folks out there. Like him, I run X mostly for having multiple full-height rxvt+screen sessions (three per virtual desktop).

I only use three graphical apps: Firefox, pidgin (grudgingly), and the Qt interface for VirtualBox. The rest are text apps and custom shell scripts for accomplishing tasks in tandem with those apps (such a "find | random | mpg123" for shuffling music directories).

I highly recommend "evilwm" for managing such a setup. Its single-pixel window borders with no window decorations is desktop minimalism as its finest. It's also got the lightest memory footprint of all the minimal WMs out there. Windows can be moved, re-sized, and snapped to locations with keystrokes. For fine-tuned placement of regularly-used apps, a simple shell script can be crafted to launch them with the precise geometry you require (or ALT+MOUSE_LEFT to lift the window). I have hot-keys defined (using "xbindkeys") that will populate virtual desktops to exact specifications.

My only gripe with this setup is the competition for key chords amongst emacs, screen, and evilwm itself. That, and every once in a while, some web page will throw a Firefox window that I simply cannot close without the "x" screen decoration (at least not without closing Firefox itself -- grrr...).


Haven't tried evilwm, but the reasons you list for liking it apply also to XMonad, which I use and love.

I've tried awesome, wmii, dwm and a couple other tiling window managers and XMonad is by far my favorite.

Bit of a learning curve if you aren't into Haskell already, but it's very sensible and intuitive syntax that you can easily grasp from the many examples in the XMonad config archive.

Highly recommended. Active community, easy to extend. Lot's of reference configs. Changed my entire computing life...

It's tiles, all the way down.


I've tried quite a few window managers but I must say the automatic tiling wm actually make me prefer gnome, what really seems to do well with me is ratpoison or stumpwm. The control of tiling seems to work great and both are quite customizable (especially stumpwm). (I use C-, for my prefix and C-t in tmux) Recently I just use gnome though because my laptop just works there and have a full screen web browser and a full screen tmux (so I at least have some tiling).


Evilwm is awesome. I like to compile it with mouse support turned off on my netbook, so that all window manipulation is performed by keyboard only (Vi compatable keystrokes). I also turn off solid drag.

For tiling window managers, I find Ratpoison to be the best, but I also like Dwm.


I used XMonad for a while until I realized how much time I was spending customizing configuration files, tiling layouts, rc files, and whatnot. I like floating window managers, specifically evilwm, because it isn't very configurable or extensible. It just does what I expect, and I don't have to think about it.


Just a nit, but what version of random works like that? BSD random(6) "reads lines from the standard input and copies them to the standard output with a probability of 1/denominator. The default value for denominator is 2."

I ended up writing my own (overengineered) program, but I'd be interested in knowing what you use.


I use "foo | random -f -" but I omitted that for the sake of brevity, hoping it would be taken as a generic name for a script/program that shuffled lines for illustrative purposes. I personally use textproc/rl for shuffling lines, as it's faster than stock random(6).


For the overlaping keychords problem, I've found that it helps if I bind my window manager actions to the Super_L (the windows button). I've also mapped that to the capslock key for easy access. As practically no programs use the windows key, I can be sure I won't accidentally send commands to unintended programs and mess things up while trying to move windows around.


You can throw away pidgin if you really want to, and just use an IRC gateway to the IM networks: http://www.bitlbee.org/main.php/news.r.html


I need to update the page...

I actually use stumpwm now, which seems to fit all the things you like about evilwm. (Plus you can connect to the Common Lisp instance running it and poke around in the environment any way you want.)


You can also control virtualbox from the command line such as:

VBoxManage startvm "Your Machine Name"

http://andunix.net/info/virtualbox/cli


You can't use finch instead of pidgin?


I could, but since the core engine is the same as that of pidgin, the memory usage is almost as high. If I'm gonna use that much RAM for the console app, I may as well keep the GUI version up and running.


Ever considered using just a straight Jabber client and a gateway for each non-Jabber protocol that you use? I am quite partial to http://psi-im.org/ .


I've tried a few of the dedicated console clients for various protocols. However, I'm lazy and find its just easier to put up with pidgin. That, and I like the OTR crypto plugin.

The only reason I use IM at all is for a long-standing client who insists on using it for 99% of real-time communications.

I've been on the 'net since 1990, and I've never even used IRC (I know, I know -- I should hand in my geek card...). I've always been a store-and-forward kind of person, and have always preferred email and (in its heyday) USENET.


finch's sudo-graphical ncurses interface is a little awkward. I know there's an xmpp plugin for irssi, so that might be nicer if you just use GTalk.


  > finch's sudo-graphical ncurses interface is a little awkward.
It tries to replicate all of the windows that the GUI interface creates, but in a text environment where you can only view one window at a time. It's almost like someone didn't want to figure out a way to redesign the interface to work better in a text environment (and maybe just take some cues from the text-based irc clients out there).

[ This may be somewhat inaccurate, I've had little experience with it, but this was my impression. It left a bad taste in my mouth.]


Finch is actually pretty easy to use once you memorize the keyboard shortcuts.

On a related note, I recently switched from Pidgin to Finch, and it boosted my productivity at work. I'm a bit OCD, and every time my Pidgin window would blink, I would feel compelled to read the new message immediately. The end result was that I was allowing myself to get interrupted a lot, all day, every day.

Now that I've switched to PuTTY/ssh+screen+Finch (the original goal was privacy-at-work, the boost in productivity was just icing on the cake!), I find that I only check for new instant messages on MY schedule; e.g., when I'm doing a big compile, or need a break anyway.

I would highly recommend it to anyone looking for a productivity boost.


I have a similar setup, and love evilwm as well. I haven't run into too many key conflicts, though I do mainly use vi instead of emacs, and tmux instead of screen. I start evilwm with "-mask1 mod4 -mask2 mod4" to bind the meta key to the Windows button.

You can do meta-Esc to close those Firefox windows.


I've replaced screen with tmux.


If you like tmux and it works for you, great! The last time I played with tmux, it couldn't do all the things that I use in screen. In addition to the usual multiple-pty-management, I also like the fact that screen gives digraphs for extended UTF-8 character input, can connect directly to serial ports (i.e. act as a serial terminal), and remap codepages on the fly (I've still got that CP 437 serial terminal).


What are the advantages of tmux? (I have been using screen for persistent sessions on production servers.)


I still use screen on a few servers but have switched to tmux everywhere else. They're quite similar, but tmux has a number of small advantages that add up.

* Better support for panes and splits. Besides vertical splits (which you can get in screen if you're willing to patch), with tmux you can for instance quickly join two existing windows together with a split, break a pane out of a split and into its own window, or arrange panes into a predefined layout.

* You also have the ability to name windows, reorder them, swap them, and generally move them around with tmux.

* With tmux, activity notifications are persistent and per-window. While screen can monitor windows for activity -- I always monitor one window that runs mutt, and another that runs irssi -- screen notifies you by flashing the caption once, briefly or until a keystroke, and doesn't mark the active window until the caption gets redrawn. This doesn't work so well if you're typing away in your editor window. ;) I got really tired of missing notifications, especially chats. Not an issue anymore with tmux, which immediately marks the active window.

* Session sharing works without having to setuid the tmux binary.

* Copy mode is mostly the same, but tmux maintains a stack of paste buffers, and keeps a viewable history of everything you've copied. One thing screen has though that tmux still doesn't (afaik) is the ability to copy rectangular blocks of text, not just complete lines.

* The scripting / programmatic interface for tmux is much nicer.


Thank you.


I haven't used tmux, but from some blog posts and the manpage it looks like some are:

* Each tmux 'server' (the equivalent of a screen 'session') can exchange windows with another server.

* Better support for vertical splitting.

* BSD License (this is important to some)



Does anyone still use "mc" ?

I like vifm (vi-like file manager), although i can't say i fire it up too often.

microemacs (jasspa's) has a nice inbuilt file manager (F10).


> Does anyone still use "mc" ?

Midnight Commander is great!

I use it for file management on my wife's iMac (I'm usually ssh'd in, while she uses the console). I also use it to keep her small business web site updated (it supports ftp, which is what my wife's web host uses).


> it supports ftp, which is what my wife's web host uses

Ouch!

By all means, please switch to a protocol of the 21th century!

Midnight commander supports secure protocols like SCP or SFTP as well.

Also, there's sshfs which allows you to handle the remote directory like a local one without any special features of mc (or KDE or Gnome). However, I don't know whether sshfs is available on the Mac.

Anyway, there's hardly any reason to use FTP, unless your hosting provider doesn't care a lot about security.


MacFUSE exists, and sshfs is usually the 'flagship' file system for FUSE, so I would gamble that it exists. It's off-topic, but a few years ago I remember someone creating a bunch of nifty file system plugins to MacFUSE to do things like create a file system that represented the open applications and/or windows on OSX. They seemed to be mostly tech demos, but I found it interesting.


Yes, "mc -a" is deeply ingrained into my muscle memory for the specific situation where I need to copy/move a few files out of a directory with lots of other files.


I was just about to badmouth his tool choices when I noticed that the post is from 2006.


what are your updated/better choices ? Thanks.

I use links (i/o lynx). And vim.


I think he made a lot of good choices. These days I would pick tmux over screen and newsbeuter over snownews.

ion really was a great and influential window manager, but now, it'd probably be better to pick XMonad, awesome, or i3.

vimperator has been a lifesaver for me, but I'm switching to luakit because it doesn't seem to allow flash to steal the keyboard focus.


Is luakit a Linux only software, or does it work on OSX, too.


I saw compiler flags for OSX in the source tarball [1] but to install on OSX probably requires installing from source, and if my experience with using macports to install Conkeror and uzbl is any indication, installing all of the dependencies correctly is likely to be something that requires hours of tedious effort unless one is an expert. The reason for that is that luakit (and Conkeror and probably uzbl) rely on a very large stack of "non-Mac-like" software including the GTK toolkit and the X windowing system.

If you can get around in Linux, I would test drive the software on Linux to make sure it is as useful to you as you imagine it to be before doing the work of figuring out how to install it on OSX.

I will add that the difficulty of installing relatively unpopular Linux packages on OSX is one of the biggest disadvantages of OSX for me. (The unavailability of laptops in which everything Just Works is of the biggest disadvantages of Linux for me.).

I've tentatively given up on relying on software that requires X while I am using OSX: I plan to keep on test-driving such software (on Linux), and if I decide I have got to have access to it, I will switch back to Linux.

[1] https://github.com/mason-larobina/luakit/blob/develop/config...


Last year my laptop got stolen, and while I shopped for a replacement at work, I had to use my (previously headless) server machine for other tasks at home. Beyond what the linked article discusses, I'll also mention:

elinks (http://elinks.or.cz/) is far more featureful than links, w3m or lynx, to the point where it even supports CSS and a little JS.

libcaca (http://caca.zoy.org/) comes with an image-viewing tool, "cacaview", which is handy when somebody sends you a picture and you don't have a graphical framebuffer handy.


The page is a little dated now. I use elinks instead of w3m these days. cacaview is pretty neat-looking, though!


Ugh. procmail is disgusting. Consider maildrop instead (part of the courier mail server suite: http://www.courier-mta.org/maildrop/ )


Procmail exemplifies the leanness, speed, and precision that all Unix utilities should strive for.

That said, I've never used maildrop, being quite smitten with procmail myself. But since the size of maildrop's source distribution is ten times that of procmail, I'll stick with the latter out of principle.


Good list, but where's ffmpeg?

Though I come from the design world, I realized how much speed and power advantage there is in the command line, and spent the time – over several years – learning how to use it. The speed advantage is so apparent in comparison to GUIs, and now Web Apps, but I guess that's the geek appeal;)


I use ffmpeg a lot to extract the audio from video's I've downloaded from youtube. Does anyone use any command-line youtube downloaders that still work? I use one written in awk (pete krumins). The others stopped working a while back.


youtube-dl!


The title is ambiguous. I expected to see a text mode implementation of Conway's Game of Life. ;-)


Here's what I'd add to this nice list:

- emacs-jabber: the best IM client in the world and you can use various "jabber2any" gateways to stay in touch with your "legacy" contacts. emacs-jabber allowed me to get off using pidgin grudgingly :)

- ratpoison for managing shell windows under X (and I've heard stumpwm is great, for all you lisp lovers :))

- conkeror (or vimperator) for keyboard-driven web browsing: not character mode, but surely helps a lot when most of your software is.

- urxvt (rxvt-unicode).

- gnus for mailer: probably. I've heard it's even better than mutt, but I don't use email often enough to warrant the switch yet.


  > and I've heard stumpwm is great, for all you lisp lovers :)
IIRC, the creator of ratpoison is also the creator of stumpwm (though I could be mis-informed).

  > gnus for mailer: probably. I've heard it's even better than
  > mutt, but I don't use email often enough to warrant the
  > switch yet.
A couple of years back I tried to get Gnus working, but I ran into: (i) confusing documentation, (ii) not much help through blogs/Google, and (iii) Gnus users on IRC telling me "not to bother" trying to learn Gnus because there were better solutions out there. I've also heard complaints on a number of occasions that Gnus is a dog when trying to load up large mailboxes (and that mutt is better at this).


"These screenshots are specifically designed to trigger a feverish commitment to stumpwm." http://www.nongnu.org/stumpwm/screenshot.html


Another simple yet efficient cli todo is todo.txt http://ginatrapani.github.com/todo.txt-cli/

and for all vim users out there, I would highly recommend http://code.google.com/p/vimwiki/ which is a portable wiki right inside vim.


Love to see posts like this. I've the feeling I'll be happier in keyboard+text land but haven't had the courage to take the leap yet. My favorite use of screen space is a ginormous editor window.

If anyone is interested, the October issue of Linux Journal has a pretty good roundup of command-line tools. It should be online soon (first of December?)


Why would you do that?

I can understand using only the keyboard, because it's faster and easier to automate and whatnot, but giving up on a normal browser just to be "in text mode"? Why not Firefox + Vimperator, for example?


Typically in a tiling window manager you will have a main window open with, say, an editor, and other windows open with man pages or documentation.

Sometimes you just want to browse through something that is text, online documentation for example. In a tiling window manager, your browser might be in a window that is, say, only a quarter of the screen's real estate, so you definitely don't want the browser to be filled with cruft like scroll bars or menus. Since the viewport is so small, you want all of it to be "content" and none of it to be "browser". So a text browser makes a lot of sense.

I do this all the time, usually with elinks. Mind you, I still have chrome open in a different group (or tab).


Google "uzbl".


He does use Firefox, for sites that don't work in w3m.

My setup on Linux is pretty similar, and I use w3m a fair bit, especially for reading documentation--it's fast, and for text-heavy sites suits me better than a graphical browser.

That said, doing without a 'normal' browser entirely seems a bit masochistic/text-obsessive to me too.


if anyone's curious, well, I was, So I just started up 30 terminals under awesome wm.

I did 30 gnome-terminals, and then 30 xterms, and then 30 urxvts

I start out at 150 mb of ram, and then with 30 gnome-terminals I go up to 250. With 30 xterms, I end up at 230. With 30 urxvts, I ended up at around 210

I used htop to measure memory.

I've always wondered how much lighter the lighter terminals are, they aren't enough to make me switch, but there you go, there's definitely a difference, since I'm usually at least running 1 graphical we browser(like chrome) that always dominates my memory usage


Now, try that with different shells and report back to us. ;-)

I'm pretty sure that "pdksh" is the smallest (or very close), but I think it's static, so in the context of opening up 30 instances of that shell at once, one of the others (most of which are dynamically linked) might beat it.


One of my favorite bloggers is K. Mandla, who runs command line only systems on older hardware:

http://kmandla.wordpress.com/



I agree with you . ttp://www.braceletpandora.uk.co ttp://www.pandorajewellerymall.uk.co That’s very interting.


If you're an emacs user, why don't you just use org-mode for todo lists?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: