Before reading further... Are you looking for great Linux hosting from a company that cares about GNU/Linux? Pick Dreamhost hosting, get a 10% bonus to the disk space (and support Free Software Magazine in the meantime!)
Hotwire: a combined terminal/GUI for GNU/Linux
A suitable peacemaker between command-line purists and pragmatists?
Download the whole article as PDF
- 2008-06-24
- User space | Easy
-
Write a full post in response to this!
This content was sponsored by:
There is nothing more guaranteed to ignite a bad tempered, incandescent flame war that an outbreak of hostilities between the rival Gnome and KDE camps. Well, except perhaps a slanging match between the champions of the GUI and the command line. Enter stage left the compromise candidate which might just unite the warring factions: Hotwire.
Whenever I first stumbled across upon Hotwire (released under the GPL 2 for the user interface and a permissive MIT-style licence for everything else), certain childhood rhymes sprang irresistibly to mind: Jack of all trades, master of none, Jack Spratt could eat no fat, his wife could eat no lean, amongst them. The problem is actually trying to give a pithy and accurate definition of Hotwire without tripping up yourself, so who better to describe it than its developer, Colin Walters of Red Hat, who has described Hotwire as “an object oriented hypershell” and “a modern Python-based extensible crossplatform shell environment”. Walters’ inspirational cue was the less powerful Windows Powershell and to make Hotwire a better, rich visual interface without recourse to yet another new scripting language. It leverages Python.
Now, you are probably thinking that GNU/Linux needs another shell about as much as it needs another patent trolling predator, but you just might be wrong because what Hotwire tries to do is to unify the GUI and CLI in one powerful, unique and productive application which gives the user, both novice and advanced, the best of both worlds. It does this by using Python and GTK to render an interface which has familiar elements of a GUI but with the granular power of the command line.
Get it. Install it
The target platform of Hotwire is primarily GNU/Linux and Gnome but it will run happily on KDE too. The major dependencies are Python version 2, Sqlite3 and Python Gnome VFS bindings; so, you will either need to upgrade to those versions either via your distro’s package manager or upgrade your distro to the next version which does support it. I installed Hotwire on Ubuntu 7.10 with no complaints about dependencies. If installation throws up any missing dependency messages then simply install them from your comfort of your package manager. As of the time of writing, version 0.700 seems to be out and it offers more bug fixes and improved features (version 0.700 once again will support Python 2.4). For a list, see the the Hotwire changelog.
Although Hotwire is described as alpha software, it is very stable and I was unable to crash or freeze it. The only sense it will it can be described as alpha software is that, as even its creator admits, it does not yet match the full feature set of Bash - but it is about eighty per cent of the way there and every update should be inch ever nearer to feature parity.
Binaries or source?
Despite being described as alpha software Hotwire is already available in binary form for a number of distros: Fedora 8, OpenSuse, Debian, Ubuntu, Mandriva, Archlinux and Gentoo. You can get them here. Just follow the links. (Followers of PClinuxOS can install from the repositories but the version is 0.44 which is rather out of date.) Binary is best for ease of installation and removal, as well as installing Hotwire in the Start menu, with the option to create a desktop shortcut. A Debian binary for Ubuntu (version 0.620) is available at the Getdeb website. Debian packages are also available for download at Linux App Finder. If you cannot get an RPM for your distro you might get some mileage using Alien to convert the Debian package.
If you are having problems with locating a binary for your distribution the solution is simply to download the source code from the above link. The version to look for is 0.620. Download to the directory of choice and extract it. Cd to where you extracted it and run the following in a console: python ui/hotwire & (and you could always set up an alias for this to reduce typing). The ampersand is optional—I added it to run Hotwire in the background and free up the terminal for other tasks. That’s it. Extract and run the Python script. No ./configure, make and make install and if you decide you don’t like it, uninstalling is as simple as deleting the extracted folder. For binary installs, removal is either by the GUI of the package manager or apt-get remove hotwire.
First run
When you run Hotwire for the first time the default screen opens with some helpful information:
It doesn’t look like any terminal/console you’ve ever seen before but you’ll soon feel right at home as soon as you type something in the box at the bottom of the screen. Let’s have a look at the contents of etc. Just type cd /etc and hit the return key. You’re in for your first pleasant surprise. Normally, that command will simply change your directory and if you want to see the contents you would have to follow it up with ls (and any additional arguments). With Hotwire you have killed two birds with one stone. The cd command not only changed directory, it also automatically listed the contents of etc —and what’s more listed them just as you would expect in a conventional file manager complete with icons (in this case, Ubuntu defaults):
You might be thinking that what you see here means that Hotwire is based on XML but in fact it based on “objects”. In a thoughtful touch for the beginner, Hotwire helpfully arranges titles for the command output by categories like owners, permissions and size etc. Some of this is also available in a console but in a less transparent fashion and with less information. Like a file manager, right clicking on a file will pop up a contextual menu for viewing or editing. The nearest I have seen to this is when Konqueror is in file-manager mode and showing a horizontally-split screen with a terminal emulator. However, there the resemblance breaks down because while cd in the terminal follows what you click on in the main Konqueror screen (albeit an excellent way to navigate around the the GNU/Linux file system if you hate typing and can’t always remember the exact nomenclature of the commands) it doesn’t work the other way around.
Write a full post in response to this!
Similar articles
Do you like this post?
Vote for it!
Copyright information
Biography
An aspiring wanabee--geek whose background is a B.A.(hons) and an M.Phil in seventeenth-century English, twenty five years in local government and recently semi-retired to enjoy my ill-gotten gains.
- Login or register to post comments
- 16471 reads
- Printer friendly version (unavailable!)




Looking for Linux hosting, reviews, coupons, etc.? See out user-voted list
Best voted contents
-
Why sharing matters more than marketshare to GNU/Linux
Terry Hancock, 2008-08-01 -
Is Microsoft trying to kill Apache?
Gary Richmond, 2008-08-08 -
The Bizarre Cathedral - 15
Ryan Cartwright, 2008-07-28 -
More evidence of Microsoft "tying up" the Asus EeePC
Tony Mobily, 2008-07-28
Similar entries
Buzz authors
All news
Other sites
- The Top 10 Everything (Dave). The good, the bad and the ugly.
- Free Software news (Dave & Bridget). All about free software -- free as in freedom!
- Book Reviews: Illiterarty (Bridget). Book reviews, blogs, and short stories.
Hot topics - last 60 days
-
Don't compare GNU/Linux with Windows or MacOS - they are not in the same game
Ryan Cartwright, 2008-07-07 -
Self-signed certificates and Firefox 3 - a possible solution
Ryan Cartwright, 2008-08-05 -
Dictators in free and open source software
Tony Mobily, 2008-07-22 -
Why sharing matters more than marketshare to GNU/Linux
Terry Hancock, 2008-08-01 -
Why did Javascript/AJAX mop the floor with Java, Flash and Silverlight? Or, why open standards eventually win
Tony Mobily, 2008-07-30
Hot topics - last 21 days
-
Self-signed certificates and Firefox 3 - a possible solution
Ryan Cartwright, 2008-08-05 -
Why sharing matters more than marketshare to GNU/Linux
Terry Hancock, 2008-08-01 -
Why did Javascript/AJAX mop the floor with Java, Flash and Silverlight? Or, why open standards eventually win
Tony Mobily, 2008-07-30 -
How do Drigg and Pligg compare?
Tony Mobily, 2008-08-17


Dedicated server
nice
Submitted by cwwitt on Tue, 2008-06-24 18:16.
Vote!This is the first article I ever voted for.
it was going so well until...
Submitted by Ryan Cartwright on Wed, 2008-07-16 11:55.
Vote!I was catching up on some old posts and I thought this sounded really interesting. Until I read…
And my brain ran away screaming “Noooooooo - take it away!”. If I want to ls the contents of a directory I don’t usually cd to it first I usually cd when I want to do something in there so — and I know this is a personal preference — the idea that typing cd /etc would change to and list the contects of /etc would be annoying to the nth degree. Shame it was going so well until then.
Nice article though - where do you dig up these gems?
cheers
Ryan
Why is that annoying?
Submitted by Terry Hancock on Wed, 2008-07-16 17:21.
Vote!Why is that a problem? I can't see how showing the listing of the contents of the directory would interfere with doing something in that directory.
Are you possibly confusing it with the reverse idea? I.e. that typing "ls" would take you into the directory before listing it?
because...
Submitted by Ryan Cartwright on Fri, 2008-07-18 13:53.
Vote!It would be annoying because I don’t want or need it to happen. I don’t want to sit and wait (for however many milliseconds) for the directory listing to come up. I sometimes want to see the stuff I’ve just done prior to changing to that directory.
Not at all. I am talking about cd listing the contents after it has changed to that directory. As said if I want to list the contents of a directory I am not in, I do “ls /directory”. If I want to change to it I usually don’t want to list the entire contents. My /etc/ directory has 298 items in it I know the sort of things that are in there and I very much doubt I’ll need to ls them. The same applies to countless other directories on my system. What would happen if you did “cd /usr/bin”? Do I really need to list all 2700-odd items in there whenever I change to it?