= Heads Up Display =
''For the '''Ubuntu Unity HUD''' design (January 2012) allowing access to application menus, see:''
* Mark Shuttleworth (2012-01-24). [[http://www.markshuttleworth.com/archives/939|Introducing the HUD. Say hello to the future of the menu.]] ''Here Be Dragons''
* Ted Gould (2012-01-24). [[http://gould.cx/ted/blog/Searching_menus|Searching Menus]]. ''Ted``Page''
* Olli Ries (2012-01-24). [[http://www.olli-ries.com/?p=669|Welcome to the HUD]]. ''Olli's random thoughts and impressions''
* Gold Allott (2012-01-24). [[https://plus.google.com/112811220238447511854/posts/XWYJQhYATdG|HUD]]. ''Google Plus''
* Ubuntu Developers (2012-01-24). [[http://www.youtube.com/watch?v=w_WW-DHqR3c|Introducing the HUD to Ubuntu]] (video). ''YouTube''
* Barry Collins (2012-01-24). [[http://www.pcpro.co.uk/news/372385/ubuntu-rips-up-drop-down-menus|Ubuntu rips up drop-down menus]]. ''PC Pro''
* Steven J. Vaughan-Nichols (2012-01-24). [[http://www.zdnet.com/blog/open-source/beyond-the-desktop-ubuntu-linuxs-new-head-up-display/10204|Beyond the desktop: Ubuntu Linux's new Head-Up Display]]. ''ZDNet''
* Joey Sneddon; John Lea (2012-01-24) [[http://www.omgubuntu.co.uk/2012/01/hud-new-unity-feature/|Meet HUD: Ubuntu’s New Way of Using App Menus in Unity]]. ''OMG!Ubuntu''
* Unity Team, [[https://launchpad.net/~unity-team/+archive/hud|HUD pre-release testing]]. Launchpad PPA, ''Launchpad''
Enable:
`sudo add-apt-repository ppa:unity-team/hud ;`<
>
`sudo apt-get update && sudo apt-get dist-upgrade`
Disable:
`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:
{{http://www.paul.sladen.org/ubuntu/hud/g-s-d-volume.png}}
For GNOME, there is currently some support in `gnome-settings-daemon` (source: `control-center`. For KDE there is some in `kmilo`.
== Status: ==
* `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/thinkpad-zoom.sh` '''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').
== Current: ==
{{{
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)
v
ACTION
}}}
== With HUD (proposal): ==
{{{
Keyboard code thinkpad-keys / other
\______________________/
v
kernel remapping (hotkey-setup) <---.
ACPI_KEYS ________v___________ |
v / \ |
/etc/acpi/events/* keycode hooker ACTION |
\_________ _________/ |
v |
/etc/acpi/* ----------> acpi-fakekey -----------'
_______v______
/ \
ACTION /etc/hud/*
v
hud-sent (via D-Bus)
v
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")