Heads Up Display

For the Ubuntu Unity HUD design (January 2012) allowing access to application menus, see:


  • sudo add-apt-repository ppa:unity-team/hud ;
    sudo apt-get update && sudo apt-get dist-upgrade


  • sudo apt-get install ppa-purge ;
    sudo ppa-purge ppa:unity-team/hud

Command-line Tools:

  • sudo apt-get install indicator-appmenu-tools

br br br br br For a previous HUD design from early 2006 see:

Head Up Display (2006)

This is something that places information in front of the user:


For GNOME, there is currently some support in gnome-settings-daemon (source: control-center. For KDE there is some in kmilo.


  • gnome-hud done (Python). Listen on D-Bus for SystemBus()/org/freedesktop/hud.Feedback() events and displays icon/percentage/text in the middle of the current screen (containing the pointer) for 1200msec.

  • hud-send done (Python). Sends command-line passed messages over the D-Bus on SystemBus()/org/freedesktop/hud.Feedback().

  • /etc/acpi/*.sh 20% (Shell). Modify existing functions to include test -x /etc/hud/foo && /etc/hud/foo Paramters calls.

  • /etc/acpi/keycodes/* 0% (C). Attach to /dev/input, provide mapping of normal keyboard keycodes to ACPI events (or HUD events).

  • /etc/hud/* 20% (Shell). Create files.

  • /usr/share/gnome-hud/icons/* 20%. Find suitable approx 48x48 icons.

  • /etc/acpi/pmu-brightness-{up,down} 0%. Copy Framebuffer code from gnome-settings-daemon. (Don't have a way of testing).

  • thinkpad-keys 0% (C). Modify to only send HUD events for ThinkLight and Brightness. Video stretch.

  • /etc/acpi/ done (Shell). Switch through available Xmodes using xrandr.

  • Package hud. 0%.

  • Package gnome-hud. 0%.

  • Modify kmilo. 0%. To listen to the D-Bus input.

  • Disable gnome-setting-daemon 0%. Disable currently active acme code in gnome-settings-daemon (gnome-control-center)

  • thinkpad-alsa-mute-sync done (Python). Synchronize Alsa software mute status to Hardware so they keep in step. (Where to load this from? It requires write access to '/dev/nvram').


   ACPI_KEYS        Keyboard code        thinkpad-keys / other
       v                  \______________________/
/etc/acpi/events/*                    |
       v                              v
  /etc/acpi/*  ----->  kernel remapping (hotkey-setup)
       v                              v
/etc/acpi/events/*      gnome-settings-daemon (ACTION)

With HUD (proposal):

                    Keyboard code        thinkpad-keys / other
                       kernel remapping (hotkey-setup)  <---.
   ACPI_KEYS                  ________v___________          |
       v                     /                    \         |
/etc/acpi/events/*     keycode hooker           ACTION      |
        \_________ _________/                               |
                  v                                         |
            /etc/acpi/* ----------> acpi-fakekey -----------'
          /              \
       ACTION        /etc/hud/*
                 hud-sent (via D-Bus)
               gnome-hud / kmilo-dbus

Notifiactions / Actions / Feedback

Two types of notifications:

  1. That something needs to be done.
  2. That something has happened.

"Things that have happened" are done in hardware (by the BIOS). On a ThinkPad these are:

  1. Needs action: Black, Suspend, Wifi/Bluetooth, Eject, Hibernate, Mute(*)
  2. Happened: Brightness changed, Thinkpad Light, Video Expand, Volume Change, Mute(*)

HUD Dialogue variations

* Range:

  • Volume/Mute: On, Off [done, done], Progress Bar (from Alsa mixer)
  • Brightness: Sun [done], Progress Bar (from ThinkPad nvram, or Mac framebuffer)

* State:

  • Thinkpad light: On, Off

* Action:

  • Eject: Eject [done]
  • Blank: Blank
  • Suspend: Sleepy
  • Hibernate: Very Sleepy
  • Zoom: xrandr video mode

* Multi-State:

  • Video/VGA: (two icons), Internal bright/dark ("TFT"), External bright/dark ("VGA")
  • Wifi: (two or more icons), Wifi on/off ("eth1"), Bluetooth on/off ("hci0")

* Multi-States:

  • Rotate: Icons: left, right, inverted, normal (Avoid text!)
  • Videomode: Video ("1024x768", "800x600", "640x480")

PaulSladen/HUD (last edited 2012-01-25 03:16:31 by sladen)