I find that xubuntu leaves me wanting for very little feature-wise. The only thing I’ve ever felt disappointed by is its lack of a readily available Heads-Up Display (HUD) for searching through app menus with. It now looks like this one issue has been resolved with the hud-menu script.
You may now be asking, ‘What is a HUD and why should I care?’ A Heads-Up Display allows you to search through an application’s appmenu. So if you’re trying to find that single filter in GIMP but can’t remember which filter category it fits into or if you can’t recall if preferences sits under File, Edit or Tools on your favourite browser, you can just search for it rather than hunting through the menus.
This post details an updated version of Rafaël Bocquet’s i3-hud-menu. When called, the script opens a rofi (the original used dmenu but rofi offers better customisation) instance at the top of the screen which can be instantly searched and navigated through with the keyboard (you could also get patches that make rofi respond to the mouse allowing for a more Unity-HUD-like experience). The scripts used are provided in the following zip file:
Before use you’ll need to sure that you have python3, python-dbus and rofi installed. You also should ensure that appmenu-qt, unity-gtk2-module and unity-gtk3-module are installed. All these packages can be installed together through the following command:
sudo apt-get install python3 python-dbus rofi appmenu-qt unity-gtk2-module unity-gtk3-module
Once installed you’ll also need to add the following to your .profile file:
export APPMENU_DISPLAY_BOTH=1 if [ -n "$GTK_MODULES" ] then GTK_MODULES="$GTK_MODULES:unity-gtk-module" else GTK_MODULES="unity-gtk-module" fi if [ -z "$UBUNTU_MENUPROXY" ] then UBUNTU_MENUPROXY=1 fi export GTK_MODULES export UBUNTU_MENUPROXY
On some systems it may be better to place this code snippet at the top of the .bashrc file.
The download contains two scripts which should be unpacked from the zip and put somewhere you can easily call them (like a folder in your home directory). The first script, hud-menu-service.py, should be set to start up with the session (on xubuntu this can be easily done with the ‘Session and Startup’ app by adding an entry where the command is just path/to/hud-menu-service.py).
The second script, hud-menu.py, should be bound to a shortcut. The most useful setup for the second script is to bind it to a keyboard shortcut (which in xubuntu can be done with the ‘Keyboard’ app by adding an entry where the command is just path/to/hud-menu.py), I use ctrl + the special/windows key. You could also create a visible shortcut on a panel (such as through a launcher on an xfce panel, as shown in the image bellow).
The ReadMe on the github repository for the updated scripts explains the workings and usage of the scripts in more detail. Note that some apps just won’t play nice such as Firefox while others may need a bit of tweaking to work (for example, Java based apps may need additional libraries installed, though Eclipse actually does work without any additional tweaking). Though tested on xubuntu 14.04 only, this should work for most recent versions of the OS and may also work to an extent on other Linux distributions as long as they support the rofi, dbus and python.
Note: On some distributions you may need to install unity-gtk-module-standalone-bzr to get the unity-gtk-modules. If you need to do this run this code in a terminal:
gsettings set com.canonical.unity-gtk-module gtk2-shell-shows-menubar false
(or change this setting to false through the dconf editor) and reboot to ensure the menu-bars in GTK applications are shown.
Warning: Installation of unity-gtk-modules may disable the global-menu on some distributions as its constituent packages conflict with those the menus may depend on.
Update: There is now a fork of this work bringing the functionality to Ubuntu MATE.