Playing with TermKit in Linux with Chrome

TermKit is graphical replacement for the old Unix terminal developed by Steven Wittens. It is based on the WebKit HTML rendering engine used in Safari and Chrome. The only ‘problem’ with TermKit is that you need a Mac with OS X to use it. Since we are Linux users we wanted to at least give it a try and found that you can test it using Chrome. In this post I cleaned up the instructions for testing TermKit on a machine with Ubuntu.

The idea is detailed in this fork at Github: https://github.com/Floby/TermKit/commit/2e18c8d622443a671a626a7815006ce187743ea2.

Make sure you have git, libssl-dev and Google Chrome installed. To install git and libssl-dev do: sudo aptitude install git libssl-dev and sudo aptitude install google-chrome-beta will install Google Chrome.

With those two installed (most developers already have them) then follow these commands to build Node.js, npm and finally run TermKit. To compile this you may need to include other dependencies but in my machine they were already installed.

The following steps will create a directory called TermKitProj in your home directory and install everything you need inside it.

$ cd ~
$ mkdir TermKitProj
$ cd TermKitProj
$ git clone https://github.com/joyent/node.git
$ cd node
$ ./configure
$ make

wait a while until Node compiles …

$ sudo make install
$ cd ..
$ git clone http://github.com/isaacs/npm.git
$ cd npm
$ sudo make install

wait a little more …

$ cd ..
$ git clone https://github.com/Floby/TermKit.git --recursive
$ cd TermKit/
$ npm install
$ node Node/nodekit.js

The last command starts the backend in your terminal. You should see something like this:

miquel@inspire:~/Develop/TermKitProj/TermKit$ node Node/nodekit.js
21 May 13:10:27 - Your node instance does not have root privileges. This means that the flash XML policy file will be served inline instead of on port 843. This will slow down initial connections slightly.
21 May 13:10:27 - socket.io ready - accepting connections
server listening at http://localhost:2222
21 May 13:10:41 - Initializing client with transport "websocket"
21 May 13:10:41 - Client 8840208831243217 connected
worker:  config @{}@

Once this is running fireup Chrome and open this URL: http://localhost:2222 and you should see something like this:

Stop SOPA!

SOPA breaks our internet freedom!
Any site can be shut down whether or not we've done anything wrong.

Stop SOPA!