Inspired mostly by Mark Pilgram's 2007 Good Easy post.
Update 2009-05-05
I also posted some of my dotfiles on dotfiles.org
I login on the command line rather than use one of the Display Managers. I like the feel of it, and XDM is not very featureful. GDM and KDM don't seem appropriate, since I don't use Gnome or KDE. And really, I don't need any of the things a DM provides.
I pass the option "vga=791" through Grub2 to the kernel, so I get a nice, high resolution Vesa frame buffer interface (that's 1024x768 with 16 bit color). I am currently using bash, since right now I don't really need anything zsh offers.
.bashrc
.bash profile
.aliases
.evars
.inputrc
.bash logout
As you can see, I split out my aliases and environmental settings. I find it is easier to keep track of them and them this way. I also included my inputrc, which changes settings for all readline-using programs. On many systems D-Bus (session bus) and PulseAudio might be started by the session manager, but since I don't have a SM, I start them in my bash profile. Many people don't like PulseAudio, but it has worked wonderfully for my and solved the issues I had with multiple apps using sound simultaneously, and Flash locking issues.
Next, I start X with ~/bin/xstart.sh. This little script lets me choose which Window Manger or Desktop Environment to use. These days, I use Awesome 3. It is a tiling WM like Ion, DWM or wmii. Unlike some of those WMs, Awesome is not very minimal, and is getting less minimal. The point of Awesome is to be the most awesome tiling WM in the world, not the smallest. Since I am using a tiling, keyboard-oriented WM, I now use unclutter to make the mouse pointer disappear after a few seconds. Awesome 3 has some advantages over Awesome 2, including embedded lua for almost unlimited flexibility, a dbus interface and the use of XCB. XCB is the X C Bindings, designed to replace Xlib. XCB is autogenerated from the XML descriptions of the X11 protocol, is asynchronous, and generally much more pleasant to work with. Awesome 3 is one of the first major projects to use XCB, and the first window manager to do so. Awesome 3 also uses the XDG base dirs.
.xinitrc
.xenv (X-related environmental vars)
.config/awesome/rc.lua
My Awesomerc changes a lot, simply because Awesome is under heavy development, and besides adding new features in each release, JD always seems to change the syntax. Then there was the huge change from the libconfuse format to the lua format, and even the lua syntax has evolved somewhat. I need to get up to speed with dbus, so I can write controller scripts for awesome, xmms2 and other dbus-using programs.
I am just starting to use GNU screen. Not really for multiplexing terms (that is what X is for), but for term sessions to be persistent across X restarts. Right now I am using it for irssi (for irc), irssi-xmpp (for IM) and for my su'ed admin session. The reason for the latter is that I run Debian Sid, and for a while I was experiencing some X problems, and it is not good to have aptitude open in an X term, and then have X suddenly die. With screen, the session is just detached and can be reattached after restarting X.
My terminal of choice is urxvt aka rxvt-unicode-ml (multilingual). It is lightweight, fast and configurable. It also handles Unicode very well (I avoid apps that don't handle unicode as a matter of principle). Urxvt also has many features I haven't tried or don't use, including transparency, an embedded perl interpreter and some client-server screen-like functionality.
.Xresources (Xdefaults is a symlink to Xresources)
Not much in there right now; it may grow in the future, but it works for now. I did have to change some colors - in X (but not on the tty) they where too dark and hard to read.
I have just recently started using IRC a lot. In the past my casual IRC needs were served very well by Chatzilla. Now I moved on to irssi, which is a ridiculously powerful command line client. I have also installed the xmpp plugin, so I can do my Jabber (Gtalk) instant messaging in irssi as well. The xmpp plugin is limited, but that is ok, since I have about 1 IM per month. I have decided to run a separate instance of irssi for xmpp, mostly due to screen real estate issues, since irssi does horizontal splits (=) but not vertical splits (||). I recently setup ssl cert authentication on oftc.net, and it is very convenient, as well as being secure.
.irssi/config
.irssi/xmpp config
I also setup the xmpp plugin to autoload and setup auto-identify for freenode and oftc. I need to look into setting up the client ssl cert system for oftc. I also need to figure out some notification systems so I can be on other tags in awesome and still know if someone messages me. This may become easier since apparently Awesome 3.0 will use dbus instead of awesome-client, and irssi is written in perl and perl has perfectly good dbus bindings.
I recently switched from the excellent Newsfox (Firefox|SeaMonkey extension) feed reader to the CLI Newsbeuter. The speed and the way my perception changes when looking at a CLI has allowed me to increase the number of feeds I read, while also decreasing the amount of time it takes to read them.
As far as music, I recently moved from Amarok to xmms2. I will probably still use Amarok sometimes for building new playlists, and for integrated things like lyrics and wikipedia lookup, and magnatune. But for day-to-day music playing, xmms2 is where it is at. I have some keybindings for basic controls and I use the command line client for other things. I also wrote a perl script to display the current track in an Awesome statusbar. I don't feel like the code is good enough to show off yet, however. The low resource use of xmms2 is great, and it gives me another reason to practice perl, and now I can restart X without stopping my music.
I use Mozilla for all my web browsing needs. I started back with Mozilla 0.7 (~1999/2000) or so, when Firefox wasn't even a gleam in Hyatt and Ross's eyes, and I continue to use it now with the alpha of 1.9.1, or "SeaMonkey" 2.0a as the Mozilla Foundation prefers you call it.
Mozilla is by far my most used GUI app. Just as I leave my computer on all the time, I always leave Mozilla running. These days Firefox seems to have caught up in stability, but at one time Mozilla was by far the better option for continuous operation. Now, my continued loyalty to Mozilla is assured by it's need for fewer extensions to be useful, it's richer option set, the proper sidebar and the "Modern" theme. To me a browser just isn't comfortable without the Modern theme.
I use adblock plus and NoScript as my essential extensions. Firefox extension compatibility is somewhat limited right now, but should be very good by the time 1.9.1/2.0 final comes out. So for now, if I need to do heavy web dev work, I use FF with Web Dev, Firebug, Live HTTP headers, etc. I have also be experimenting with vimperator, which makes FF act rather like vim. I love the vim keybindings, but so far the difficulty of the graphical mouseless browsing problem has kept me from using it extensively.
I start out a fresh browsing session by opening something like 25 tabs, including mail, news, and webcomics. I sometimes then close the less interesting/amusing comics of the day, but after that the tab count starts to rise. I probably average 25-35 tabs, unless I am doing some in-depth project. Then the tab count is higher, sometimes 45-65 range, and on occasion I go briefly over 100 tabs. Depending on how stable the nightly build I am using is, the browser stays up for 2-4 days before I close it or it crashes (now that Mozilla has session restore, this is much less of a problem). When I am using a stable release, 4-9 days is the range.
(todo: vim)
