Tag Archives: instructions

Enabling the hardware power button in Ubuntu Server 11.04 (Natty)

Just a quick note for my reference and for Google: If you want your Ubuntu Server machine to respond to the power button, you have to install acpid first.  Once installed, it will run by default (and start up during the install process), so the power button should be functional from then on.  This should also create the /etc/acpi directory and scripts that folks mention when discussing Linux power management.

Credit where credit is due: figured it out from this bug report resolved as INVALID with this workaround which, while old, still applies to the latest Ubuntu release.

Setting a “Task Manager” keyboard shortcut in GNOME

If you’re much of a Windows user, you’re probably aware that Ctrl-Shift-Esc will quickly open the task manager there, which is a handy thing to be able to access quickly – take care of an out-of-control app, see what’s pulling so much CPU power, etc. On GNOME (for instance, Ubuntu Linux), the System Monitor does the same task, but there’s no equally quick way to open it by default. You can add the system monitoring applet to your panel which will give you one-click access, but if you’re like me, you find yourself reaching for Ctrl-Shift-Esc first anyway.

Without further ado, how to make Ctrl-Shift-Esc do the same thing! (This is on Ubuntu Lucid, but should be pretty similar on most GNOME desktops.)

  1. Open the Keyboard Shortcuts control panel. For me, it’s in System, Preferences. (This is a per-user setting.)
  2. You might want to collapse all the existing groups so you can see where your new item will be added.
  3. Click “Add”, and enter:
    • Name: System Monitor
    • Command: gnome-system-monitorCustom Shortcut Window
  4. Click on the newly-added entry, and press Ctrl-Shift-Esc to record the new shortcut.Keyboard Shortcuts Window
  5. Close the control panel and try it out!

VR Juggler 3.0 packages updated for Ubuntu Natty

Just a quick heads-up: I’ve updated the VR Juggler Ubuntu/Debian packages I maintain on Gitorious and that are built in this PPA repository. There is now a Ubuntu 11.04 (“Natty”) build of VR Juggler 3.0 and its dependencies alongside the other distributions. The instructions I previously posted on installing VR Juggler on Ubuntu from packages is still accurate and now applies to those of you using the latest Ubuntu release.

There were only minor changes from the Maverick packages. Most notably, the Audiere plugin for Sonix is gone because Audiere is no longer being packaged or distributed by Ubuntu or Debian. (If someone would like to pick up where they left off I’d be happy to collaborate!)  Also, I temporarily disabled the VRPN Gadgeteer driver until I get a chance to make an updated, nice package of a recent version of VRPN. I’m almost done with one – just have to test it. When that’s done, I’ll push a new build with this driver re-enabled.

If they work, or don’t work, for you, let me know! You’re welcome to help maintain these packages – many hands make light work. Their source is over on that gitorious link above, and there’s docs in the gitorious wiki, though they’re sparse – happy to help clarify if you’re interested.  I’d also be interested in trying some alternate build service together with/instead of the Launchpad PPA’s – the openSUSE Build Service looks promising but I haven’t had the time to really look into it. So, there’s a side project for you 🙂

VR Juggler tools and binaries on GitHub

Now that the semester’s over, I’ve been able to catch up on a bit of a backlog and put up a few VR Juggler-related items on GitHub. For all these items, click the link to visit the GitHub repo, which will also show you a nicely-rendered README with more information.

  • Jconf Grapher – This is a Python script for parsing jconf files (including their inclusions) and outputting Doxygen code to draw a graph of devices, proxies, and proxy aliases. I’ve included a silly shell script wrapping this to directly output PDF files, and have also made a minimal GUI for exploring these graphs, using XDot and PyGTK. Cross-platform: runs anywhere Python, PyGTK, and Doxygen do. (Tested on Linux and Windows.) Free and open source (Boost Software License 1.0, a very permissive license), feel free to fork and improve!
  • Jconf Display Merger – As I’ve discovered that VR Juggler on Windows works better with fewer windows in favor of more viewports per window, I put together this Python script to automate the process of merging display windows in jconf files (appropriately re-adjusting origins and sizes, etc).  There’s a command-line version that works everywhere and merges all windows into a single one, and for more control, you can use the GUI that lets you select which windows to merge. GUI is built on PySide (the LGPL replacement for PyQt). Cross-platform (command-line requiring Python 2.4, GUI requiring Python 2.5, Qt 4.6+, and PySide), though I have only tested on Linux. Free and open source (Boost Software License 1.0, a very permissive license), feel free to fork and improve!
  • METaL JConf files – Our group at Iowa State University recently got a new virtual reality system, a three-wall CAVE called METaL. We’re using VR Juggler to build applications for it, and in the interest of both easily maintaining configuration files and providing an up-to-date example, I’m hosting the VR Juggler 3.0 jconf files for the system on GitHub. They’re still a bit of a work in progress, but definitely usable – if you have a similar system it might be easiest to fork them on GitHub for easy integration of improvements.
  • VR Juggler 3.0 Windows binaries – Building VR Juggler can be a bit tricky, and building software on Windows can be a bit of a hassle, so you can imagine that combining them isn’t necessarily something you want to be doing every day. The most recent “official” Windows binaries are for the ancient 2.2.1.  I’ve started building from SVN, on the 3.0 branch, and pushing the installed tree to GitHub, so I don’t have to build VR Juggler separately on every machine I use: I can just clone the repo, and pull when I update the build.  Right now I only have the 32-bit builds for VC9, but I anticipate eventually adding other variants. (They’ll be in different branches named accordingly.)

As always with any of my grad school-related work, if you use or build on anything I make available, I’d really appreciate hearing from you. Information on how our work is used is helpful when providing reports and seeking renewal of the funding that makes this possible.

Git version control, Xcode, and Linux

Git and I

Within the last year, I’ve started to use Git (a distributed version control system) to manage changes to my personal and academic projects.  If you’ve used SVN or CVS before, the basic concept of storing multiple versions and committing changes is similar, but it’s otherwise a bit different: with Git, branching and merging is cheap (time-wise) and very easy, so you’re encouraged to branch and merge often.  This fosters a healthy “keep the master (trunk) branch stable” habit while you continue development of features, each in their own branch.  Additionally, Git has a concept of “staging” your changes – it doesn’t commit all of your modifications by default, so you can make sure that each commit is “atomic” – that it accomplishes only one thing.  Even when doing weekly class assignments now, I use Git as a way to track my progress, incentivize rapid progress (committing changes gives a rush of energy), and store working versions without making many messy copies of my source directory.  Read on for what I’ve learned and how to get started! Continue reading