at work i’ve been maintaining a cluster of g5 powermacs. doing simple administrative tasks on them was becoming a challenge. i’d either have to do the task 10 times or, if i was lucky and it was a non-interactive sort of thing, write a script to do it for me.

to this end i created keyboardcast.

essentially, you start up keyboardcast and select which windows you want it to type into. then you type. your keystrokes are relayed to all the windows that you selected.

it also has the ability to fire off a bunch of gnome-terminals in a group (for example to ssh into a few different hosts) and start broadcasting to these terminals.

here are some nice screenshots

i really only made it as a tool for myself so it’s a bit rough around the edges (no autotools, requires linux, etc.). none-the-less, code is available here: keyboardcast.

11 thoughts on “keyboardcast”

  1. There’s something called clusterssh that performs a similar task.

  2. Finally a nice-looking alternative for clusterssh, thanks Ryan :)

  3. I’m impressed – someone even lazier (i.e more efficient) than me. I don’t suppose it works with tabs within a gnome-terminal window, does it? I’m doing admin kind of work over six machines at the moment, resulting in around 4 terminals with 6 tabs each.

    A tool like this would be wonderful, but if it requires 24 separate windows open, it’d be trading one problem for another.

  4. No. No tabs, sorry. It works by delivering keystroke events to the application’s X window.

  5. That’s what I figured. Ah, well… I’ve got most things scripted, so it’s not too bad a problem.

  6. Nope. Straight up xlib (with a single call to libXmu far away from the main code path for the purposes of making the ‘Grab’ button work).

  7. Dennis: I didn’t expect that keyboardcast would receive very much attention. As such, I didn’t do any of the normal things involved with releases of software including specifying the license.

    It seems that you decided to attach a GPL license to my code.

    This is reasonable, but I don’t license my software under licenses which I have not yet read. As such, the “or at your option any later version” clause is inappropriate.

    The text should read (exactly):

    “This program is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation.”

    I’ll address these issues and integrate your .desktop file and manpages and do a 0.1.1 release. Thanks for your efforts!

  8. My sincere apologies about the license, I was working on serveral things at the same time and must have messed up. I will correct this at once.

  9. No problems. I’ve taken the liberty of assuming that your contributions to my code were made under the GPL. :)

Comments are closed.