12 killer apps for linux
This will not be the usual list of apps that every ubuntu wannabe thinks are cool after they’ve been dabbling in linux from a dualboot windows box for a couple of months. These are applications that provide me with the reasons that I’ve been using linux for the last 11 years. These are my killer apps – the reason I use linux on the desktop both at home and at work.
mplayer is a light weight, full featured media player. In fact it’s so light weight, it doesn’t even bother with a gui. Just run it from a terminal, and up pops a simple window showing the video and the video only. Manipulating the video (fast forward, pause, toggling subtitles, volume controls etc) is done through keyboard commands, which quickly become second nature. Mplayer plays any video or audio codec/container you can name and supports a number of display drivers, including displaying video on a terminal using ascii.
I have a number of video players on various machines of different types, including Windows and OSX, which have a number of different video playing apps on them, including VLC, quicktime, WMP, but my preference is always to move the video file to my linux box and play it in mplayer. It just feels right. Check out this article with some useful tips and tricks for getting the most out of mplayer.
The humble window manager is an often overlooked part of a desktop software stack. However, if like me, you swap between the mainstream desktop OSes – Windows, OSX – and linux, you certainly notice it when it’s not up to scratch. Even more importantly, with the mainstream desktops (Windows 8, OSX Lion, iOS and Linux with Unity/Gnome3) moving towards forcing desktop users into an interface more suited to “single-tasking” devices, a good quality window manager that is optimised for multi-tasking, is going to become harder to find.
kwin is abundant with features. With the 4.x series, it has built on top of an extremely robust base to add eyecandy and some great usability features. The things I miss from kwin when using OSX or Windows 7 are:
- Working focus stealing prevention. There is nothing more annoying in Windows when you’re working on something and Windows decides it has something more important for you to deal with, forcing you to have to click on what you were working on to get back to the task at hand;
- “keep window on top of others”. Great for keeping reference material visible while you switch between other windows;
- The option to switch to a tiling window manager. Very useful for tasks that require several windows to be visible all at once – works best with a large screen;
- Glow around the focussed window;
- Per application/window configuration. Allows you to specify window management attributes for specific applications;
- Alt+Left Click to drag a window or just click on a blank part of the window. You don’t have to aim the mouse at the title bar to drag it;
- Cover flow style Alt+Tab switching. Gives you a nice live view of windows as you switch between them. Makes them easier to find;
- Eye candy galore. Adds visual interest, as well as usability enhancements;
- Configurable button position. Left or right or both – you choose;
- Tabbed windows.
Conky is a highly configurable “canvas” for displaying all sorts of information, including system information about your computer, as well as other information from around the internets, including weather, rss feeds and twitter feeds. It is extremely light weight and with a bit of tweaking, will fit in seamlessly to any linux desktop. Having all this information in a compact and elegant format on your desktop is incredibly useful.
Wget is one of those classic unix programs. It does one thing very well, and as such can be used for all sorts of things either on its own, or in combination with other tools. Wget is a terminal program for downloading files from the internet – be it recursively downloading a tree of links, or a single file.
Wget is built for robustness, so if a download does not complete due to network issues, it will keep trying until the file is downloaded. Very useful for slow or dodgy connections, which graphical web browsers often choke on.
kio is KDE framework which allows all sorts of protocols and resources to be used as if they were a local file system. This means that these resources can be used from within applications through the open/save file dialog. kio slaves give access to network resources such as ftp, sftp, webdav, fish, smb and nfs. This means you can open a remote file in your text editor, edit and save it, all without downloading it to the local file system. Likewise, you can copy files between two remote systems as if they were on your local machine.
There are other things you can do, for example if you put an audio cd in the disk drive, and go to audocd:/ in dolphin, you’ll be presented with a number of folders of the audiocd in several formats, including .mp3, .wav, .flac and .ogg. Open up the folder, and the CD will be ripped in the desired format.
mediatomb is a fantastic dlna server for serving media on your network to a number of devices. Mediatomb is incredibly robust and supports transcoding and auto-detection of new media. It can be configured via a nice clean web interface and is very robust – it’s been running happily on my home server with an uptime of 272 days.
avidemux is a video editor. It is not a full featured non-linear video editor for making home movies, although it will allow you to do rudimentary editing, such as cutting a section of video out. It is not a video ripper, although it will allow you to transcode video. avidemux is basically the swiss army knife of video utilities.
It can be used to fix videos that have defects, such as bad A/V sync, or other artifacts from poor encoding. It can be used for transcoding and resizing videos to suit different formats and devices – particularly where there is something funky with the audio track. Always useful to have around if you are a heavy consumer/creator of video.
If you’re a terminal junky, screen is indispensable. Screen was designed as a kind of “window manager” for terminals. It allows you to have several different terminal sessions running in a single terminal. Now that we have “actual” window managers, and can run several terminals at once, and indeed have several terminals in each window in different tabs, this is not why it’s in my list.
It’s in my list because it allows you to have persistent sessions on remote machines that are not vulnerable to unstable connections, or the termination of a connection. This means you can have a program such as rtorrent or wget running on a remote machine and just leave it running – checking on it when you need to. This is how I use rtorrent. I have it running on my home server (which acts as a NAS among other things) in a screen session. When I need to download something, I drop the torrent file in a directory that rtorrent watches for new torrents and away it goes. If I need to check on anything, I log into the NAS and resume the screen session and there is rtorrent working away in the background.
rtorrent is a terminal based bittorrent client. It is fully featured, despite not being “flashy”. One of its killer features is that it will watch a directory, and will start downloading any torrent that gets dropped into that directory. But the best thing about it from my perspective is that it can run on a NAS box (which is usually headless), so that you don’t need to transfer the files from a desktop machine to the NAS box once they’re downloaded. This feature also makes it very easy to automate grabbing torrent files from the internets for download – for example via RSS feed – for unattended downloads.
krename is a powerful file renaming application. If you’ve ever needed to rename thousands of photos or music files, you’ll know the value of having a powerful renaming application. krename has a myriad of amazing features, including adding prefixes and suffixes to filenames, using regular expressions to rename, using file metadata, or other attributes (such as modification/creation time) to generate file names. It will preview image files and can be used via a wizard interface if you prefer a linear workflow.
Having a standalone colour choosing application is invaluable for a number of applications. I often find, when doing web based work, that I need to know what the HTML or RGB code is for a particular color. Or I want to select a colour I see on my screen. kcolorchooser allows me to do this very simply, without having to open another application – it’s built into the desktop.
Spam is the scourge of modern communication. spamassassin is an incredibly robust anti-spam program. Its filters are frequently updated and can be “trained” to more accurately detect spam. It runs independently of the email client. One of my great frustrations with using a spam filter inside the client, is that downloading email was just so slow, and resulted in my machine slowing down while it churned its way through each email testing its spamminess. So I moved the spam filtering functionality onto a server. Using fetchmail to download the mail, procmail to sort it, spamassassin to filter it, and dovecot imap server to store it, email at the client side is so simple. What’s more, I can read email from anywhere in the world by just connecting to my home imap server. Once set up, the system is incredibly robust, and almost maintenance free.