Gnome 3 Stuff

This was branched from my Computer Stuff page, which was getting a bit large with all the new Gnome 3 stuff.
Post-release Ubuntu 12.04 stuff continued on the Ubuntu Stuff page.

Disclaimer - tinkering with settings and scripts can break your system.. all information here is presented as-is and without warranty.

Adapting Gnome 3

5/10/11 - As I suspected, it is possible to configure Gnome 3 (at least in Fedora 15) so that it works for the most part like Gnome 2...

A lot of stuff is still there, just well hidden. There is no (enabled) menu option for "Startup Applications", found the .desktop file trick in the Fedora 15 forum for getting Nautilus to run on startup and draw the desktop (without it desktop items don't appear until nautilus is run from Places etc). Later I discovered that the command gnome-session-properties brings up the startup config screen, probably could add nautilus there but didn't try. Any method breaks the "Files" menu option for running Nautilus but I don't care, that matters only if running Gnome Shell. I did get to sort-of see Gnome Shell in action but in a seriously broken state after installing the VB guest additions but the video was totally skewed and the keyboard was dead, disabled VB's 3D support [temporarily then forced] fallback mode. I saw a post about gnome-panel, it's not supposed to be locked down - Alt-right-click is supposed to access the normal setup menu, just not working in this configuration [note 11/7/11.. alt-right-click works fine in later versions of gnome-panel running under Ubuntu 11.10]. Most of the functionality I use it for (launchers) can be replaced using desktop shortcuts and installing alacarte to modify the applications menu.

So yes, for now it is possible to sweep aside the shell and use Gnome 3 like a normal GUI operating system, but presently the capabilities are not advertised beyond mentioning there is a fallback mode, and the developers hint that the functionality might be removed in later versions. Hopefully not. There's nothing wrong with the new ways for people who like that kind of stuff, but hopefully the configurators will see the light and realize that some people prefer (or need) the old way of doing things and at least allow the system to be reconfigured for those who want to. Of course it's their system, they can do what they want. So can users. Good old Gnome 2 in the form of Ubuntu 10.04 should be available for at least the next two years, that's a long time to figure all this GUI stuff out and see what will be the next usable system. KDE works now, just a bit on the flashy side, other alternatives like XFCE and LXDE are possibilities but for me they'd have to gain user file association abilities. I prefer a functional Gnome.

5/15/11 - It is possible to drag launchers onto the new Gnome panel... but getting them off without a functional right-click is tricky. Dragging them off while holding shift works (except when it gets set to a .desktop file in /usr/share then it's permission denied), the effect is not immediate until a killall gnome-panel command is issued. Also really buggy if trying to drag launchers around on the panel, makes multiple copies and eventually Gnome goes down hard. Builds up objects in dconf|org|gnome|gnome-panel, no GUI way to clean it up. Funky. Buggy. Threatened to be removed in the future... might as well ditch it now. Installed lxpanel (from LXDE), edited /usr/share/gnome-session/sessions/gnome-fallback.session and removed gnome-panel from the required items list, added lxpanel to gnome-session-properties startup apps. Removed the gnome volume control applet from startup apps as it didn't display right, lxpanel has its own volume control applet. Menu has no access to preferences and system menus (but neither did Gnome 3), however items appear where I put them in alacarte and it's easy enough to add back the few items I need. At first the panel menu had no icons but used gnome-tweak-tool to turn on menu icons and they magically appeared. No silly drag/drop stuff with the panel app launchers, instead right-click and select which menu items to include. And the panel looks lots better...

There are fancier panel replacements but this is VirtualBox, advanced compositing doesn't exactly work and lxpanel is functional. I prefer the minimalism yet it's got all the things I want from a panel... menu, show-desktop, app launchers, taskbar, systray and useful applets. It's kind of funny mixing elements of different GUI's to get the desired effect, but whatever it takes. I'm running this little virtual test system to evaluate the state of Gnome 3, if an update for gnome-panel comes through I'll try it again (can run it whenever I want, not removed just doesn't autorun).

Other tidbits... the alacarte menu editor works fine with lxpanel - items appear where I specify (Gnome 3's panel menu categorizes things as it sees fit with anything else appearing under Other or not at all, and doesn't honor the hide option). Alacarte depends on gnome-panel which depends on gnome-shell, gnome-tweak-tool also depends on gnome-shell so looks like shell and panel has to stay even if unused, gotta have the tweak stuff. The nautilus file manager seems to be mostly the same as in Gnome 2, as I gladly discovered it manages the desktop just fine, still has the very useful nautilus-scripts feature and has the open-with tab for file properties (which was missing when previously tried the Gnome 3 live CD). Assogiate can be installed to create new custom mime types. To run the Nautilus file manager from a shortcut or command line, a location parameter must be supplied in the command line, even "" to open the home folder. To add a Root File Manager option I installed beesu and used the command line beesu -lc nautilus "/" (beesu - nautilus "/" also works). Root has all power to totally mess up the system so you're on your own, if prone to breaking stuff then don't do it. Be careful when gediting files as root to make sure the permissions remain what they should be. When using lxpanel there is no Alt-F2 shortcut to run a launch prompt (or presumably anything else to do with gnome-panel)... for now assigned control-F2 to launch terminal in case I need it. The run option in lxpanel rocks... quickly shows all matching binaries on the path while typing.

The Fedora 15 beta, which I chose to represent "mainstream" for my Gnome 3 experiments, has for the most part been rock solid. I made a 12.5 gig virtual drive, it used 5.2 gigs of it for swap which mostly never gets used and 7.3 gigs for the main drive, presently with 2.5 gigs free (I reclaimed the swap space, too scary to document but it involved using swapoff, lvreduce, lvextend, resize2fs and mkswap and didn't have to exit the GUI, dangerous generic info here, now I have over 5 gigs free - it took a few tries to work out the commands and don't even think about doing it without a complete backup, in my case I simply made a copy of my VirtualBox F15 VM folder - but I was very impressed that I was able to resize a live filesystem without unmounting it or anything, like wow). I've run into a few bugs with F15/Gnome 3 (mostly Gnome 3)... moved/resized the Disk Utility window to see more information and it crashed Gnome with a "something went wrong" message (also saw a few of those when I was stressing out gnome-panel before giving up and replacing it with lxpanel). Can't replicate the crash but when on the VBOX drive screen (/dev/sda1) the window can't be resized. When shutting down the system there are harmless messages about not being able to detach a DM device. The graphical (yum) package manager has a couple of cosmetic glitches - selecting an item causes the selection field on the item below it to go away, and sometimes the apply button remains enabled when there is nothing to apply - but the tool seems to work fine and is very easy to use. For a beta with brand new GUI components running in Virtual Box with me tinkering with all kinds of crazy stuff, F15 works remarkably well.

5/17/11 - VB 4.0.8 runs much more of Gnome Shell, enough to get a better idea of what it's about... unfortunately the video still crashes after a short amount of interaction, also disrupts the video of any host window placed over the virtual window. VB in 3D mode really doesn't like my cheap Nvidia/PNY 210 graphics setup (but it runs so cool... I like it...). So much for that, but here's the really funny part... with Nautilus drawing the desktop, LxPanel at the bottom and tweaked to show all the window buttons, it wasn't bad at all. In fact it was rather neat. "Activities" becomes a cool-looking app launcher and running window selector, as soon as I click on the background [or press Esc] it all goes away and I'm back to my old fashioned Gnome 2 style desktop. Now if the 3D video stuff would stabilize...

5/21/11 - Hmm.. something like this could work...

This is in the Gnome 3 edition of OpenSUSE 11.4 running under VirtualBox 4.0.8. The VB-related video issues remain - if the VB window is minimized then restored it isn't refreshed until I force the guest to refresh (right-clicking the desktop does it), if Gnome Shell is activated (by clicking on Activities or moving the mouse to the upper left corner) it works for awhile but eventually the graphics mess up, and if the System Settings System Info applet is run the whole screen goes white (noted in a VB forum thread about Gnome Shell support). To compensate I set gnome-power-manager so that it does a proper shutdown if it receives a power-off signal. Nevertheless it works well enough to get an idea of how Gnome 3 plus LxPanel (or another panel/dock) and a bit of configuration can work to provide an efficient working environment.

Basically it's the same configuration I used in Fedora 15 - installed LxPanel, used gnome-tweak-tool to tell Nautilus to draw desktop icons, and added lxpanel and nautilus to the startup apps - except in this case I enabled 3D and didn't force fallback mode, tweaked to display all window buttons, and removed the clock and volume control from the panel as Gnome Shell's top bar handles these functions. LxPanel's first icon is a traditional "start" menu (Alacarte can be used to configure its contents), the 2nd icon is a minimize/restore control to quickly access covered desktop icons, the remaining panel icons are configurable launchers. Gnome Shell doesn't provide shutdown and restart options (just logout) so I used my shutdown script attached to LxPanel's logout function, with OpenSUSE I had to use "shutdown[command] -hP now", just -P wouldn't work.

This works - has my old-fashioned get-stuff-done environment, almost identical to Gnome 2 except for using a different panel, and Gnome Shell is there if I want to use it. Both worlds at the same time without having to give up functionality. At the moment I only find Gnome Shell useful for browsing applications (and it would be mostly useless for me if it were the sole interface) and it is somewhat slower (more clicks and movement) than doing it the old-fashioned way using the start menu, but it does look really good and the default mode of showing all installed apps in one list is a useful feature. If it remains possible to configure Gnome 3 to work like this then it should work for me when the time comes to upgrade, I'll see how it goes in my virtual test systems.

5/28/11 - [rewriting to incorporate newly discovered techniques] Yesterday after digging deeper into the system, I discovered that Gnome 3's Open With function only works with installed applications, not with user-written scripts or non-menu apps. That's unfortunate, it makes it difficult to configure the GUI to do what I need it to do, or at least the way I'm used to doing it (for the past 15+ years). User-specified associations is a very important function, but it only comes up when setting up a system to streamline particular tasks. For example, I write code for embedded processors and associate the source files to various scripts for assembling and compiling, then associate the resulting object files to tools for sending the code to the chip I'm working with. I also use this capability extensively for old comp (running antique binaries and simulator scripts), playing around with CoreWar (running the pmars simulator for various core sizes and benchmarking warriors), and adding new functions for text (unix2dos, dos2unix, file viewers, serial senders, etc). These are all custom scripts or apps that require specific parameters, not "installed" in the usual sense (would make no sense to have on a menu and would create a lot of useless clutter). I prefer to use a GUI so that I don't have to remember the various commands and parameters, it's nice and productive to simply double-click a source file, edit code, right-click and compile then right-click the hex file and load it into the chip. I can't do that with the stock Gnome 3, at least not using the usual technique of simply going to Open With and telling it which executable I want to use.

I found two workarounds. One is to use the Nautilus Actions utility, which permits adding commands to files with certain extensions or mime types. This is a fairly versatile tool, no need to run Assogiate to create new mime types, but it only works with Nautilus and cannot define new default actions for double-clicks. For many things that's fine, especially for text where the default should remain a text editor. The other option is to install KDE, it does associations properly. Once set up the associations persist in the Gnome session, however the Open With dialog doesn't list the added associations. At least there are options and it's not something I do all the time, I set up the associations the way I want then leave them alone unless I need to configure a new workflow. [...found more workarounds...]

8/27/11 - The PcManFM file manager (v0.9.9 from LXDE) has an option to associate file types to arbitrary commands, problem solved.

8/30/11 - The Thunar file manager (v1.2.2 from XFCE) also supports arbitrary association, the dialog is similar to Gnome 2. Problem doubly solved. Apparently pcmanfm and thunar have supported associations for a long time and I missed it in my brief encounters with LXDE and XFCE, installed pcmanfm and thunar 0.9.0 on my old Ubuntu 8.04 system and there it is - neither have properties open-with tabs but can access association dialogs using open-with, or with thunar, from the main properties dialog. Duh.. explains why I couldn't find a stand-alone association utility. So it seems of all the popular desktop environments, only Gnome 3 (and Win7 from the other side) dumb down this vitally important function. Creating new mime types (in particular by extensions) is lacking in all but KDE but the Assogiate utility has filled that gap for years.

The main thing is it isn't necessary to run only the components from a single desktop environment. Stock Gnome 3 by itself simply won't do for users like me that need a custom environment that can do much more than just launch pre-canned apps, although I hope that as the project matures the gaps will be filled in (better gnome-panel traditional mode, associations, etc), other software like gnome-tweak-tool, lxpanel and thunar can be installed to make the system usable now. The Gnome 3 and other "modern" interface devs have taken a lot of criticism for disrupting people's work flows (real and imagined), but have to keep things in perspective, they are in charge of creating the next generation environment. I hope the developers look past the gripes and implement the things people need to effectively do their work (that's why they are griping), and don't actively oppose work-arounds. Things got off to a rocky start with statements like people don't need desktop icons, if you don't like it hit the highway, etc, but these mindsets seem to have eased. I think. So long as Nautilus remains capable of managing the desktop and other vital functions are not removed in an attempt to enforce a "vision" many don't adhere to, then it'll all work out, the community will figure out how to make it work. The new Gnome 3 code base exists now, try to keep it stable and move on. At least when the time comes, for now Ubuntu 10.04 with Gnome 2 works for me, this is all about forward-looking preparation for what's to come so when upgrade time comes it'll be an easy transition.

Fun With Distros...

8/29/11 - Trying out a couple alternate distros in VirtualBox... Lubuntu 11.10 alpha and Mint XFCE Debian Edition 4/2011.

Lubuntu 11.10

The Lubuntu install "failed" but apparently only in the update process, installed just fine other than the usual alpha startup glitches that are to be expected and I won't comment on. Lubuntu has some attractive qualities, like simplicity, but can't make shortcuts (symlinks) with the GUI. Symlink support seems to be intended - the cursor changes to the symlink symbol when the usual ctrl-shift is pressed, just not following through with it. Was able to install the VB guest additions (after installing build-essential). Has semi-dangerous click options... one right-click option is to show menu provided by the desktop manager but there is no obvious way to get back to the normal right-click menu ("Desktop Preferences" was there, but that option disappeared from the OpenBox menu). Clicking "exit" was not useful.. GUI went away, had to hard-power off the VM. Powering it back on did not restore the normal right-click menu. Yea yea it's alpha... alpha that just hosed itself. To fix had to edit ~/.config/pcmanfm/lubuntu/pcmanfm.conf, change show_wm_menu to 0 then hard-power off (logging out and in just changed it back to 1). Forgiven. But this unintuitive behavior predates this alpha. The solution in that thread does not work.. the Desktop tab isn't in this version (0.9.9) of PcManFM. LXDE shows promise, with a few fixes like GUI support for symlinks it can be a workable GUI...

FireFox wasn't installed by default (just Chromium), I added it, gave me version 7 which works very well.

9/6/11 - Installing Assogiate was a bit tricky - had to reinstall a few deps it said it installed but didn't actually install the libraries (alpha/beta glitches to be expected). Ran it in a terminal, took note of what it complained about, reinstalled that lib, repeated until happy. Installing the Alacarte menu editor dragged in large parts of Gnome including Nautilus, which made itself the default FM and took over the desktop, gconf-editor helped at first to turn off the draw desktop option but still would occasionally take over, installed gnome-tweak-tool (which pulled in even more of Gnome) to fully turn off the draw desktop setting.. now I can use either PcManFM or Nautilus without conflict. Noticed that while Nautilus was handling the desktop I could make symlinks on the desktop, but not launchers and the change background option was not functional (and kind of defeats the purpose of running a lightweight DE). Lack of GUI options for symlinks and launchers in the stock LXDE desktop isn't much of an issue, it's easy enough to use ln -s file symlink to make symlinks and cp to copy existing .desktop files to the ~/Desktop folder - not being able to do it via the GUI helps keep the desktop clean, if something isn't worth taking a minute to type a command then it's probably not really needed anyway.

9/25/11 - After installing just a few apps, enough of Gnome 3 and Unity had been pulled in to run them as alternate GUI sessions - the normal Unity wouldn't work right due to graphics issues but Unity 2D works after installing the package. First thing I did to Unity was to rip out all the appmenu stuff, global menus just don't work for me. Gnome 3 can probably be tamed but to co-habitate with other DE's would need to figure out scripting or something so make sure Nautilus only draws the desktop when Gnome 3 is actually running, for now will probably leave it stock and mostly ignored along with Unity unless I find myself in a app-launch-only kind of mood. My virtual test install of Mint XFCE DE blew itself up after an update but I really like XFCE, so installed xubuntu-desktop into my virtual [L]ubuntu 11.10 system. It wouldn't start from LXDM's desktop manager (lxdm) so installed the Gnome Desktop Manager (gdm) and set it to be the default (LXDE still works fine from gdm). Xubuntu's XFCE is arranged a bit different than Mint's XFCE, by default uses a top bar for tasks and an auto-hiding bottom panel for app launchers. One of the things that bugged me about XFCE was the patchy look of the desktop icon labels, but while fooling around in the settings noticed one theme (kiwi) had transparent icon labels, colors were all wrong for me but knowing that transparent icon labels were possible didn't take long with Google to figure out how to add my own ~/.gtkrc-2.0 file to override theme settings. Here's what I've got so far...

Both LXDE and XFCE labeled their task managers the same so used Alacarte to distinguish. LXDE is a slightly faster environment but XFCE has a more useful desktop right click, can make launchers etc and can quickly access the app menu without going to the corner. System-wise still have a few cosmetic things to configure/fix, not showing the boot splash and shutdown screens correctly but whatever it boots. Amusingly (a movie site) works much better in virtualized [L|X]ubuntu 11.10 with FireFox 7 beta than natively on my 10.04 system with FireFox 6, the video is smoother and it doesn't hang.

Mint XFCE Debian Edition

[8/29/11] Mint XFCE-DE required that I manually partition the virtual drive, then it installed. Normal update failed, went to synaptic and did the "mark all upgrades" thing which removes conflicting packages (as also had to do with Lubuntu and occasionally with my production system - it's a feature to prevent unwanted removals when something ain't quite right with the repos [wait first in case packages are still being updated, if it doesn't fix itself then fix it by updating via synaptic to show and resolve the conflicts])... rough ride - first pass through it semi-hosed itself (broken packages, incompleted upgrades, etc), was still showing all the changes still pending so why not, let it have another crack at it, this time not looking at details. Linux torture! Took awhile but completed without error. Rebooted, seems to be fine now, update manager reports everything is up to date. Gnome terminal is broken... menus don't work right, causes window to shrink. Manually resizing fixes but have to do that every time the terminal is launched. Seen this before with F15, forgot the fix (if there was one.. widely reported bug) but I fixed it... installed xfce-terminal and removed gnome-terminal. Build-essential was already installed but no luck installing the VB guest additions.. exits without output. Googled, found the solution. XFCE also has a bit of trouble with making symlinks on the desktop but it's fairly easy to work around, right-click a file or folder, create symlink, then move to the desktop. Assumes parent dir is writeable so in the case of the VB shared directory had to drop to a terminal prompt and use a ln -s command instead, no biggie. The symlink process isn't quite as easy as Gnome (2) but works well enough, not something I do all the time, just something I need to do when setting up and maintaining my "world". The desktop also supports launchers. So far XFCE looks pretty good...

The right-clicks are very nice, has browse as root, the desktop right-click also provides access to the app menu. So far haven't run into many negatives... mainly just the inability to make symlinks by ctrl-shift draging (which I don't care that much about but would be nice), and not sure I like the way the desktop icons are labeled, kind of patchy-looking but probably makes it faster, just a cosmetic thing. At least the label patches are semi-translucent. This is a rolling-release, theoretically it should never become (that) outdated but occasionally will require manual intervention to fix dependency issues. It's not rocket science but does require a bit of knowledge of how packages work and paying attention to details like what it wants to remove. I threw 4 months of updates on it at once, which totally freaked it out but bumbled my way through it.

9/8/11 - well... it seems to have hosed itself, no GUI just a text login. Restored from an old backup (from not long after the initial install). Applied updates... hosed itself again. To its credit it warns that this can happen, "for experts only", but this isn't just an app being flaky, it's total failure of the GUI after doing recommended updates (last updates included libc[6], locales and lsb-base/release among a few others). Was fun while it lasted but there's no easy recovery from this situation - no way I'd use LMDE on a production system.

Fixing up Unity and Gnome in [L]ubuntu 11.10

[10/15/11] Both Unity and Gnome Shell got dragged in as dependents in my Lubuntu system.. if they're going to be hanging around I'd prefer they be usable. Unity exhibits graphical glitches under Virtual Box (windows leave trails, even after "accidently" fixing that after installing the compiz configuration manager, it's still way too slow) so installed the unity-2d package, and to complete Gnome 3 installed the gnome package. After that I could use the GDM login screen to select Lubuntu, Xubuntu, Gnome, Gnome Classic or Ubuntu-2D. Gnome and Ubuntu-2D are useless in the stock configurations, no app menu tree (many more clicks than should be necessary to find and run apps), no icons on the desktop, and Unity suffers from global menu affliction, totally confusing when several apps are open at once. Call me old-fashioned but I want my menus to be attached to the windows they control. To get rid of the global menu used Synaptic to remove appmenu-gtk, appmenu-gtk3, appmenu-qt, firefox-globalmenu, thunderbird-globalmenu and indicator-appmenu. There is still a funky effect when apps are maximized but I'll deal with that later. For Gnome Shell, I used Gnome Tweak Tool to enable all window buttons and tell Nautilus to draw the background (it was not necessary to add Nautilus to startup apps), this also enables desktop icons in Unity. After that the Gnome Classic login option is usable, (unlike in Fedora 15's fallback session) can configure the panels by holding alt and right-clicking. To avoid using Gnome Shell or Unity unless I really want to, added LxPanel to the startup programs - but not directly or it would also start it in LXDE. To configure LxPanel I copied my existing LxPanel config from ~/.config/lxpanel/Lubuntu to ~/.config/lxpanel/Gnome [note - if doing this fresh without an existing config, run lxpanel to create a default and do something to the panel to create config files, then copy default to the desired alternate settings directory], and added a /usr/local/bin/ script...

if [ "$DESKTOP_SESSION" == "gnome-shell" ]; then
lxpanel -p Gnome &
if [ "$DESKTOP_SESSION" == "ubuntu-2d" ]; then
lxpanel -p Gnome &
if [ "$DESKTOP_SESSION" == "ubuntu" ]; then
lxpanel -p Gnome &

[2/9/12 - for Precise 12.04 I ended up making separate lxpanel directories for each config instead of a single Gnome directory, and put the script in my home directory for easier editing.]

...and added to Startup Apps. That way it starts LxPanel with the added Gnome config only if Gnome-Shell or Unity is running, can add other session-specific startup programs here. Added by script so LxPanel's log off option would do something useful. There's still some tweaking to do, and I probably left out stuff, basically I poked at the software until it worked and now I've got three more (virtual) desktop environments I can boot into (in addition to LXDE and XFCE)...

Gnome Shell...

Gnome Classic... [stock - the menus look much better if metacity compositing is enabled]

Unity 2D...

The themes could use some work, especially in Gnome Classic and Unity where Gnome-drawn drop-down menus have no border. It's all new, lots of stuff to figure out how to configure. Setting Nautilus to draw the background can cause conflicts with other environments, running Nautilus in XFCE causes it to take over the desktop (LXDE doesn't seem to be affected), to fix I edited the Nautilus menu item to run "nautilus --no-desktop". Regardless, after a bit of configuration the new environments can be tamed to produce something that fits my normal work flow. Different environments have different strengths and weaknesses, it is very nice to be able to log out of one and into another as my needs change. The guts of Gnome 3 (GTK3 and associated utilities) seems to work fine (at least at the moment) but I just can't imagine ever really using either Gnome Shell or Unity, they're like dead weight, I have to add an alternate panel just to efficiently launch apps and multitask.

A better solution would be to make my own desktop environment using just Nautilus and LxPanel plus a few utilities - really all I want is a panel and a desktop that works, I don't need anything fancy. The Gnome developers don't want people customizing their environment but that's just crazy - they delivered an environment that simply doesn't work for many people. I understand the reasoning - to provide a consistent environment for [their] development - but that just isn't the real world. Applications needs to work properly no matter what shell they are run under, unless it's a utility or something specific to a particular environment. Sure it's a challenge but it can't be that big of a challenge since this is already the case - pretty much every app I have doesn't care if it's run under Gnome, KDE, LXDE, XFCE or whatever. The only issue is making sure the right theme-switching stuff is installed to make things look right but with this test Lubuntu system I haven't had to do anything - if anything apps look Worse when in the Gnome 3 systems. So the point is lost on me - unless I break something it should not matter how I configure my environment. It's *MY* environment, not the developer's, and I am going to customize it, or not use it at all. As it sits it's fairly easy to configure the new Gnome to work for me, I just hope that it remains configurable and that the developers realize it is in their best interest to let users do what they need to do.

11/6/11 - Linux Mint developed a few extensions (MGSE) to make Gnome 3 operate more like some of us old-timers expect, among things a bottom task bar and a conventional but nice-looking app menu. The webupd8 team packaged it in their Gnome PPA to use with Ubuntu (details here), I had VirtualBox-related video problems with the task bar (msge-bottompanel and msge-windowlist) but if the menu bar isn't present the app menu (msge-menu) adds the menu to the Gnome Shell top bar. LxPanel works for a task bar (with an app menu and launchers), Gnome Tweak Tool (Advanced Settings) can tell Nautilus to do the desktop, enable icons in menus, and enable the missing window buttons, Assogiate and another file manager (PcManFM or Thunar) can be used for making arbitrary file associations (Nautilus can only associate files to "official" apps)... all the essentials I need seem to be available, some assembly required.

Here's my present Gnome session with the MGSE app menu enabled...

Not bad. MGSE's app menu gets it right - click once, navigate, click again (the old established way) instead of click click click click. Also shows app descriptions when navigating, that's nice. The LxPanel app menu is still available if needed (a few things don't show up in the MGSE app menu).

But it's still a bit heavier than I prefer... probably fine running on a real machine but the graphics strain VirtualBox (sometimes it fails to load after running another DE), and uses over 250 megabytes of memory and 7% of each of the two virtual CPU's (with occasional spikes) just running System Monitor. LXDE uses about 175 megabytes, XFCE uses about 250 megabytes, and for both less than 2% CPU usage. Memory usage isn't a big deal but I can do without the extra processor usage. When it comes down to it, I can probably do without Gnome Shell altogether - I don't do social networking or other stuff needing advanced notifications, my Zenity-based script works fine in Gnome from LxPanel for logging out, shutting down or rebooting. So... navigated to /usr/share/gnome-session/sessions in a terminal, copied gnome-fallback.session to lxgnome.session, edited it to remove gnome-panel and name it something else, it now looks like...

[GNOME Session]
Name=GNOME Plain

...and to get it to show up in GDM's session list went to /usr/share/xsessions in a terminal, copied gnome-fallback.desktop to lxgnome.desktop and edited it to look like...

[Desktop Entry]
Name=GNOME (LxPanel)
Comment=This session logs you into GNOME with LxPanel
Exec=gnome-session --session=lxgnome

So far with Gnome 3.2 I don't have to explicitly load nautilus for it to do the desktop like I had to with Fedora 15. I need a different LxPanel setup so copied the ~/.config/lxpanel/Gnome directory I had made previously (see 10/15/11 notes above) to the LxGnome directory, and added a section to my /usr/local/bin/ script (that runs from Autostart Programs) to run lxpanel -p LxGnome for this session ($DESKTOP_SESSION contains "lxpanel" - not sure where that's specified but probably the session filename, I just booted it panel-less and looked - thanks to having a terminal shortcut on the desktop). Getting there but Gnome/metacity's borderless white-on-white menus looked funky (see the above screen dump for Gnome Classic) so used gconf-editor (Configuration Editor) to tell metacity to enable compositing. That fixed it in Gnome Classic too.

After some tweaking to LxPanel to add indicators and show the clock, here's the resulting desktop...

To get the clock to display 12 hour format I followed the directions (man 3 strftime) and told it to use the string "%l:%M%p". This new hybrid desktop resembles LXDE but with Nautilus doing the desktop, boots up almost instantly after login, uses about 240 megabytes of memory with about 3% CPU usage. Feels snappy, does most of what I expect a desktop OS to do. There is no desktop right-click option for creating launchers on the desktop but LxPanel provides a workaround - right-click any app menu item and click add to desktop, then right-click the resulting .desktop file and set the executable bit to make it show as an icon. Good enough.. I guess to make custom launchers I can go to ~/Desktop with a terminal, copy an existing .desktop file then right-click it to configure it to do what I want (no option to create a launcher but can still reconfigure them). Or just boot into XFCE or a gnome-panel session. Usually once I get my desktop app shortcuts the way I want I leave those alone and just use the desktop for temp or frequently used files, work folders and symlinks to stuff I'm working on, that works fine - dragging something to the desktop while holding control and shift makes a symlink as usual, has right-click options to create folders and empty text files. Other tweaks include using System Settings Screen to tell it not to blank and lock the screen, and adding Terminal and BrowseAsRoot scripts to the ~/.gnome2/nautilus-scripts directory. [To shut down, reboot and log out without the shell I configured LxPanel's Logout command to run my Zenity-based script.]

To get GDM to do timed auto-login I added the file /etc/gdm/custom.conf containing...


The DefaultSession item is (usually) ignored, automatically loads the last session used after the specified timeout.

Dealing with Gnome 3 seems to be just a matter of figuring out where all the various settings are stored and making it conform. True, it involves some command line work, editing various config files and poking around with gconf-editor and dconf editor, but I don't see that as an issue at all - it would only be an issue if I couldn't reconfigure it to work the way I need it (rather will need it) to work. There are way too many things to adjust to have GUI options for everything, all those options would confuse simpler users but shouldn't be a problem for more advanced users to figure out. Besides Gnome 2 also needs lots of editing and adjusting to make it conform, same with every other non-trivial OS I have ever used.

11/8/11 - Hybrid desktops... hacked components... whatever it takes to be productive in spite of all the new UI visions. Run what I want and remove what I don't want, there is no need to accept the defaults. Or maybe even modify the code... got the source for gnome-panel to see what I can do (which won't be much:-), after installing a bunch of -dev packages it compiles and works installed to /usr/local. But it seems quite bloated just for a panel - especially when used simply as a task bar while Gnome Shell is running, assuming it could be hacked to even run that way, at minimum would need the "another panel is running" check modified/removed and use a different set of settings so as to not interfere with "classic" mode. Probably not worth it considering LxPanel works fine under Gnome Shell, and on real hardware could probably use the MGSE bottom panel or a similar extension-based solution.

Regardless, if future versions of Gnome 3 work similarly to what I'm seeing now then I think the future looks good for Gnome 3. It's just going to take time for users to figure out that behind the shell it's still mostly the same old Gnome. Just with fresh code and from what I'm seeing, fewer bugs. It's possible to set up a "classic" mode using the existing 3.2 gnome-panel that works very much like Gnome 2 - Ubuntu 11.10 makes it available, just have to use the tweak tool to enable the desktop and minimize/maximize buttons, and make a few other tweaks to metacity etc. Should gnome-panel go away I found that Gnome plus LxPanel (with or without the shell) with Nautilus doing the desktop seems to work fine - without the shell it's faster but then it's no longer compatible with extensions, notifications and other stuff written for the shell so obviously if I want that stuff I have to deal with the shell. But that doesn't mean I have to actually use the activities stuff, can be running simply as a top panel and I can carry on like normal.

[removed ramblings about what I think the direction of Gnome 3 should be... but can be summarized by carry on with present development for those who like the shell(s), and don't remove existing desktop functionality from nautilus so that those of us who want a conventional desktop can set it up that way - I don't care if it's hidden but it would be better if traditional users knew that it was possible.]

11/10/11 - A Gnome 3 Nautilus-enabled desktop with a panel and app menu (LxPanel, gnome-panel or whatever) is almost a complete solution that works the way I'm used to working, except for a couple of minor omissions - no built-in way to create desktop launchers (Nautilus 3.0 had it but not seeing it with v3.2) and associate file types to arbitrary scripts and binaries. Associations can be handled using PcManFM or Thunar so no big deal, and Nautilus can still edit launchers so just need something to make the .desktop files. LxPanel has an option to add existing menu items to the desktop (have to make executable) and with gnome-panel can just drag menu items to the desktop, but sometimes I just want to right-click the desktop and make a launcher that runs a custom command line. Here's a Zenity-based Nautilus script that lets me do that...

lname=$(zenity --title="Create Launcher" --entry \
--text="Launcher name? ")
if [ ! "$lname" == "" ];then
lcommand=$(zenity --title="Create Launcher" --entry \
--text="Command line? ")
if [ ! "$lcommand" == "" ];then
echo "" > "$lname.desktop"
echo "[Desktop Entry]" >> "$lname.desktop"
echo "Name=$lname" >> "$lname.desktop"
echo "Comment=" >> "$lname.desktop"
echo "Exec=$lcommand" >> "$lname.desktop"
echo "Icon=" >> "$lname.desktop"
echo "Terminal=false" >> "$lname.desktop"
echo "Type=Application" >> "$lname.desktop"
chmod 755 "$lname.desktop"

...saved as CreateLauncher in the ~/.gnome2/nautilus-scripts directory (location might be subject to change), now I can right-click the desktop (or in any directory) and select Scripts then CreateLauncher then type in a name and a command line. Afterwards I can right-click the launcher and select properties to change the icon to what I want. If desired can specify a default icon in the script.

[edit 4/4/12]  If gnome-panel is installed then all that's needed is a CreateLauncher script containing...

gnome-desktop-item-edit --create-new $(pwd) &

...this looks and works practically identical to the function that used to be built into Nautilus.

Hacking Precise

11/13/11 - Starting my virtual monitoring of "Precise Pangolin" - what will eventually become Ubuntu 12.04 LTS. Previously I installed Lubuntu first, then brought in the other stuff (or it got pulled in via dependencies), this time I grabbed the 11/10/11 daily build of Precise. At this point it's mostly just 11.10 pointed to new repositories and I fully expect stuff to break as development proceeds, that's fine, it's just a virtual machine so I can practice adapting to the new system well ahead of upgrading my main system.

Installation was quick and easy. Not crazy about the default Unity environment but it's plenty functional enough to permit customizing the system to work like I want an OS to work. Came with a nautilus-enabled desktop out-of-the-box, added a few scripts to nautilus-scripts including the above CreateLauncher script so I could make desktop launchers. Installed synaptic, then installed build-essential so I could install the VirtualBox guest additions. Rigged that up with a shared folder for file transfer. Couldn't find a GUI tool to configure which users are in which groups so used the adduser command line utility to add myself to the vboxsf group so I could access the shared folder that appears under /media, which I dragged to the desktop while holding control and shift to make a symlink (install gnome-system-tools for the old "Users and Groups" app). Not into global menus so searched for "appmenu" in synaptic and removed the 6 listed packages. Tweaked other stuff like those funny scrollbars - added the file /etc/X11/Xsession.d/80overlayscrollbars containing "export LIBOVERLAY_SCROLLBAR=0" to fix that. In 3D mode compiz-config-settings-manager can be installed to tweak other stuff. Installed gnome-tweak-tool, lxde and xfce4, that provided login choices for Gnome, Gnome Classic, LXDE and XFCE in addition to the stock Ubuntu and Ubuntu 2D sessions. Installed dconf-tools and gconf-editor to tweak other stuff like moving the window buttons to the right. Rigged up LxPanel to run in the Unity and Gnome Shell sessions (with different settings in each environment) using my script added to the startup programs, added to LxPanel's logout funtion. Made a new "lxgnome" session as detailed in the 11/6/11 notes, works great.

Here's how it looks with the default Ambiance theme...

Here's a Gnome Classic session after replacing the bottom panel with LxPanel set up to be just a window list...

The stock Gnome Classic session was functional but I didn't like the way the bottom panel looked (a theme thing), so removed the bottom panel, copied the directory ~/.config/lxpanel/default (created when lxpanel is run without options, do something to the panel first to create default files) to gnome-classic and added a section to load lxpanel with the gnome-classic setting dir to, which now lives in my home directory for easier editing. This is one of the things I like the most about LxPanel, I can set it up to work differently depending on what desktop environment is running. It doesn't have as many panel applets (or retract buttons), use gnome-panel if fancier stuff is needed - provided it sticks around.. the "fallback" session is slated for removal and I don't know if that just means the session scripts or gnome-panel too - but it's "just" a panel app, lots of alternatives.

Other tweaks I made to the system include putting FRAMEBUFFER=y in /etc/initramfs-tools/conf.d/splash and GRUB_GFXPAYLOAD_LINUX=640x480x32 in /etc/default/grub (followed by update-grub and update-initramfs -u) to fix the plymouth splash screen (possibly VirtualBox-related but a common tweak - some systems need the frame buffer to show the splash, some don't, the grub option just selects the splash resolution), and the default LightDM login manager doesn't appear to support timed auto-login so installed and selected GDM and added a /etc/gdm/custom.conf file containing the appropriate previously detailed options.

To fix up the XFCE session I added a ~/.gtkrc-2.0 file containing...

style "xfdesktop-icon-view" {
XfdesktopIconView::label-alpha = 0
base[NORMAL] = "#555555"
base[SELECTED] = "#7777bb"
base[ACTIVE] = "#77bb77"
fg[NORMAL] = "#dddddd"
fg[SELECTED] = "#dddddd"
fg[ACTIVE] = "#dddddd"
widget_class "*XfdesktopIconView*" style "xfdesktop-icon-view"

...the fg settings determine the icon text forground color to contrast with the background image (this example is for a dark background), the base settings tweak the color change when selecting and right-clicking, base[NORMAL] has no effect as alpha is set to 0 for transparent. To make the fonts look right I used the Appearance app to enable hinting and anti-aliasing (also responds to a customized .fonts.conf file).

XFCE features a fairly complete but still lightweight desktop that supports the classic idea of how a GUI OS should work - useful right-clicks including access to the app menu, supports creating files, directories and launchers on the desktop. It doesn't support making symlinks on the desktop by dragging a file while holding control and shift, to work around that use Thunar to open the ~/Desktop dir and ctrl/shift/drag it there instead, then the symlink appears on the desktop.

Sometimes when running alternate desktop environments I still want to use the Nautilus file manager so used Alacarte to create a menu item for it that runs the command "nautilus --no-desktop" so that it doesn't take over the desktop. For the same reason my BrowseAsRoot script in nautilus-scripts runs gksudo "nautilus --no-desktop $(pwd)", otherwise if used from XFCE or another environment it not only takes over the desktop but displays the (empty) root user's Desktop directory - but that's fine, that's what command line options are for. By default Nautilus doesn't show up in XFCE (unless selected as the default file manager but that makes no sense) so this is something only Nautilus users need to be aware of when not running Gnome, and there are plenty of other ways to run a root-enabled file manager.

LXDE is also coming along nicely. It looks great and now supports creating launchers on the desktop, in addition to files and folders. It has a bit of trouble with symlinks (ok maybe this isn't a typical use case but I frequently want symlinks to various folders on my desktop for quick access to stuff I'm working on)... the present version of PcManFM (0.9.10) can't make symlinks using control/shift, and the symlink I made to VB's shared folder didn't respond when double-clicked (but worked when right-clicked to open). The workaround is to use Thunar or Nautilus opened to ~/Desktop to make the symlinks, then desktop symlinks work when double-clicked. New symlinks made while running Gnome also work under LXDE, so who knows... main thing is it works now and doesn't seem to be a real issue, at least not one that using another file manager can't solve. Or do it with a launcher using the command pcmanfm "name of directory" - pick an icon while creating. The LXDE desktop allows direct editing of .desktop files in a text editor, that's cool.

I really like the direction Ubuntu is going here - a simplified interface for simple users, with a ton of alternatives in the repositories for more advanced users. I'll see how it goes. And doesn't go... it's pre-alpha so stuff does break.. after a broken update today had to use synaptic to fix broken packages and remove flashplugin-installer and nspluginwrapper-related stuff, to get the flash plugin back I downloaded it from adobe and put the file in the /usr/lib/firefox-addons/plugins dir. It's a long way from anything that should be used for anything important, but I'm impressed by how nice it is even at this early stage.

11/14/11 - A much-improved CreateLauncher script for nautilus-scripts...
(requires gnome-panel but doesn't have to be running)

gnome-desktop-item-edit --create-new $(pwd) &

Calls up the usual create launcher dialog that used to be available when the desktop was right-clicked, where the app and icon can be browsed for etc. MUCH better than my previous zenity hack.

Other handy nautilus scripts I use are BrowseAsRoot...

gksudo "nautilus --no-desktop $(pwd)" &

... and Terminal...

gnome-terminal &

When using LxPanel with Gnome here's my script that I specify for the Logout command...

# shutdowncommand is a copy of shutdown with chmod a+s shutdowncommand
# so that it'll run as root without having to run the script as root.
# using kdialog... (split to 2 lines)
#retstr=$(kdialog --title "Shutdown Menu " --radiolist "Select..." \
# Shutdown Shutdown on Reboot Reboot off Logout Logout off)
# using zenity... (split to 3 lines)
retstr=$(zenity --title "Shutdown Menu" --list --text "Select..." \
--radiolist --column "" --column "" --hide-header \
true Shutdown false Reboot false Logout)
if [ "$retstr" == "Shutdown" ];then
shutdowncommand -P now
if [ "$retstr" == "Reboot" ];then
shutdowncommand -r now
if [ "$retstr" == "Logout" ];then
gnome-session-quit --logout --no-prompt

I used a copy of /sbin/shutdown to avoid the extra prompts from gnome-session-quit --power-off and because it doesn't have a command line option to reboot - I just want to specify what I want and have the system do it. Note.. some systems require shutdowncommand -Ph to actually power off, but Ubuntu just needs -P. To "install" copy the script somewhere then run the following commands in a terminal to make a copy of the shutdown binary...

sudo cp /sbin/shutdown /usr/local/bin/shutdowncommand
sudo chmod a+s /usr/local/bin/shutdowncommand

...the second command sets the permission so anyone can run it without having to have root permissions, obviously this isn't something you'd want hanging around on a system that others can log into while you're using the system. Normally for security purposes it's not the kind of thing that should be causually done with system-level apps, but in this case there isn't a lot of hacking possibilities with the shutdown command besides shutting down the system. To attach the script to LxPanel's Logout function, right-click the panel, select Panel Settings then click on the Advanced tab, then specify the /path/name of the script (i.e. I saved it to my home dir so for me it's "/home/terry/"). Or just make a desktop or panel launcher that points to it.

11/15/11 - A simpler logout solution for LxPanel under Gnome is to just use "gnome-session-quit --logout" for the logout command setting. More click steps to shut down or reboot (have to use the login manager's functions for that) but it's functional and implementing it doesn't require making a bash script and using terminal commands.

11/21/11 - I wrote up a text "how-to" documenting some of my Ubuntu/Gnome3 tweaks - subject to change. Some of the instructions might change depending on how Ubuntu 12.04 progresses, they should work for Ubuntu 11.10. If all the tweaks are applied they should result in an Ubuntu system that can run Unity, Gnome Shell, Gnome "Classic", LXDE, XFCE and a custom Gnome session running LxPanel.

11/29/11 - A little glitch with today's 3.2.0-2 kernel update for Precise... the VirtualBox Guest Additions Shared Folder module no longer builds. To work around so I can still transfer files in and out of my test setup, in the virtual machine I installed gftp-gtk, and on my Ubuntu 10.04 host I installed proftpd-basic and configured to manual (I don't want an FTP server running unless I need it). Before running proftpd, I edited /etc/proftpd/proftpd.conf and added the following lines (edited to make generic)...

#restrict ftp usage to a specific directory
DefaultRoot /home/your_user_name/ftpfiles
ServerIdent On "Internal FTP server"

...replace your_user_name with your home directory. Made a directory named "ftpfiles" in my home directory, with DefaultRoot pointing to it this will be the only directory tree accessible via FTP. Now need to know my local ethernet address, so ran...

ifconfig | grep "255.255.255"

...and took note of the inet addr numbers. Started the ftp server using the terminal command sudo proftpd then in the virtual machine ran gFTP, told it to connect to the numbers given by inet addr, entered by host account's user name and password, works fine. When done using the server entered sudo killall proftpd in a terminal. Will have to use this method until Vbox gets fixed (or wherever the bug lies). From the guest additions install log it's complaining that i_nlink is read-only, not sure if it's a problem with Vbox, the new kernel, or simply an incompatibility that needs to be worked out. This is a brand new kernel so likely only bleeding edge virtual testers will see this, but I'm sure eventually someone in a better position to identify where the problem is will notice the issue and file the necessary reports. Myself, I just break the stuff and write about it. Other than this glitch my new Precise test system works fine, just the occasional "Partial upgrade" message when updating which should generally always be declined, go to Synaptic and mark all upgrades to see what it's trying to remove - sometimes it's just "normal" incompatibilities or package changes (happens occasionally on my main system when programs like wine have to remove a previous install first), sometimes just have to wait for all the dependencies to show up in the repository. At this point Ubuntu 12.04 is [similar] to 11.10 other than newer versions of some things and a few default app changes. [other comments trimmed]

12/2/11 - failure to build VB's shared folder guest module has another effect, doesn't build the openGL module so no Gnome Shell or Unity 3D under VirtualBox. Reverting back to kernel 3.1 until the issues with VirtualBox and the 3.2 kernel are resolved.. removed the linux-generic, linux-image-generic and linux-headers-generic metapackages and the 3.2 images and headers, leaving the 3.1 image and headers installed. Good thing I installed the pre-12.04 while kernel 3.1 was still available as it's no longer in the repositories. [but there's another way...]

12/8/11 - a better (temporary) fix for the VirtualBox incompatibility with Precise and the 3.2 kernel - installed virtualbox-guest-source and virtualbox-guest-utils, edited /usr/src/vboxguest-4.1.6/vboxsf/utils.c and changed three instances of "inode->i_nlink = 1;" to "set_nlink(inode, 1);", installed linux-generic and linux-headers-generic to reinstall the 3.2 kernel that I had removed, rebooted into the 3.2 kernel, went to the /usr/src/vboxguest-4.1.6 directory and did sudo make then sudo make install then rebooted again. Got full guest additions now.

Tweaks... even with metacity compositing disabled I was still getting a funky "broken" effect when minimizing windows, to fix it ran gconf-editor ("Configuration Editor" but an update hid it, used alacarte "Main Menu" editor to unhide it as I need to use it frequently) then went to desktop|gnome|interface and unchecked the animations option - now windows minimize instantly without effects. A useful tweak program for Unity (3D) is "myunity" which recently showed up in the repositories, can set the launcher to use smaller icons.

Trying out some of my toys... the mevo and maezumo corewar evolvers work after installing the libncurses5:i386 package, they're 32-bit binaries compiled using freebasic. My 32 bit pmars and pmarsv binaries work other than complaining about a missing font. The xterm program seems to behave somewhat different, in some scripts I had to quote the entire xterm command line after the -e parm (in particular scripts that pass all command line parms using $* - once I added quotes around everything after -e it works fine but that breaks compatibility with filenames containing spaces, not a big deal just something to be aware of). Blassic 0.10.2 compiled after installing libncurses5-dev, the latest FreeBASIC 0.23 self-extracting installer installed without issues by running "sudo ./ install". Getting there.

Ubuntu Precise is too unstable for general use and will be until officially released (and likely a bit after), but playing around with it in a virtual machine is very useful for figuring out how to get my world back despite all this new stuff, some of which doesn't exactly have my interests in mind. It is actually more stable than I was expecting, some of the components are broken (like Ubuntu Software Center), lots of tweaks to have to find and apply, but overall it works quite well, at least virtually. One of the main things about running a development release is to keep in mind that often new package updates require removing previously installed packages (things get shuffled around a lot), so whenever update manager says "partial upgrade", don't do it and instead run synaptic and mark all upgrades to see what needs to be removed. If it's just isolated libs being replaced with newer versions then (usually) it's ok to let synaptic do the update. If it wants to remove an app, usually that means a dependency hasn't been uploaded yet, wait and try again. The flashplugin-installer app frequently conflicted, ended up just letting it remove it and manually installed from the Adobe site (can use the 64-bit version, and can do without nspluginwrapper).

12/13/11 - I conducted a little test on my 12.04 test install - put together some tools needed to easily battle and benchmark redcode warriors for the programming game corewar. Although "just" a game, the process tested many of the kinds of things I routinely need to do on a production system - run existing 32-bit binaries, compile code, create scripts, create file types and make file/script associations, and in general solve problems without being distracted by the OS. Some of these steps had already been done - verified that the existing 32-bit pmars/pmarsv and freebasic-based binaries work (had to install libncurses5:i386 but no big deal), created scripts for running warriors in pmarsv (the font issue with pmarsv was solved by adding -fn fixed to the command line, noted the behavior change in xterm about having to quote "$*", made sure the fix is compatible with earlier versions), and compiled the blassic interpreter (had to install libncurses5-dev, normal). I did the rest of the project using my lxgnome session - created a set of benchmark programs, created a new file type for *.red files and associated them to the tools as appropriate, and created a zenity menu as a nautilus script for running the tools (association only works for functions that pass a single filename, nautilus script(s) are needed for passing zero or multiple filenames and setting the initial current directory to the location).

I didn't attempt to do these things under [stock] Gnome Shell or Unity, because those environments would have drove me nuts trying. During the process I usually had at least 3 file manager windows open (a root window open to /usr/local/bin, the nautilus-scripts directory, and a directory containing redcode to test), various gedit windows open depending on what I was editing, and a couple of terminals (one for man commands and one for testing). Not having a simple window list on a panel would have been almost unthinkable - if I had to go to Gnome Shell's activities every time just to recall a window I minimized it would have made me want to stop computing, and in the case of Unity, having a single icon for all my file manager windows without being able to select the one I wanted would have been a distraction and inefficient, forcing me to have to click around or reminimize the windows I didn't want at the moment. A traditional window list on a panel provided instant access to all the things I was working on and lets me focus on the tasks at hand and mostly ignore the OS. I frequently double-clicked desktop icons for Home, a directory containing corewar stuff, and a symlink to Vbox's shared directory for copying stuff to my host system. On that subject, noted that copying files from the VM to the host set the permissions correctly, but when copying files from the host to the VM I needed to reset the group and other permissions to read-only, when copying to /usr/local/bin default was none. But that's just a Vbox thing.

When it came to associations, the stock Gnome 3 GUI tools are totally incapable (which I already knew)... Assogiate was required to create a new text/redcode type, tell it to match *.red files, and assign text/plain as a parent type to keep the existing plain text associations (required even with Gnome 2, they removed the file types app years ago). Nautilus no longer permits associating files to arbitrary scripts, so had to use Thunar or PCmanFM to actually make the associations. Removing vital functionality from Nautilus remains one of my main concerns about Gnome 3 - they also removed the ability to create a desktop launcher which I had to restore using a nautilus script which calls the gnome-desktop-item-edit component from the gnome-panel package, so that's two major things recently ripped from Nautilus and now I'm relying on the gnome-panel package, which is on the chopping block, even though I don't normally use gnome-panel itself. I still rely on nautilus scripts for things that require passing multiple filename selections, the nautilus desktop functionality is absolutely vital, and a decent GUI for creating desktop launchers is much better than my own "fill in the blanks" script method, so I'm inclined to keep copies of the existing working nautilus and gnome-panel source code handy just in case. Hopefully it won't be needed. [...]

A Fork in the GUI Road

1/8/12 - This is interesting... a fork of Gnome Shell called Cinnamon running on Ubuntu 12.04 alpha...

This is version 1.1.3 installed from the deb's on the Cinnamon github download page, cinnamon-session is also required to add a login entry. Although not specifically built for Ubuntu Precise it installed without issues other than dropping into gnome-fallback the first time I tried to use it by just logging out and back in, after rebooting it worked [1/14/12 - until updates broke it - there is now a PPA for Cinnamon with an adjusted branch for Precise, sudo add-apt-repository ppa:merlwiz79/cinnamon-ppa]. This is pretty new stuff and is still being developed. Presently on my test installation the window theme is always Adwaita regardless of the selected theme (only the theme of the window contents change), it takes a bit of time to boot up (as does the unmodified Gnome Shell), and it takes a couple seconds for the menu to appear when first selected, but otherwise it seems to work well. Not much in the way of customization other than being able to configure the launchers, no widgets like CPU activity etc, but the essentials work like I expect a desktop GUI to work. The window buttons on the panel look nice and automatically shrink once the available space is filled. Minimized windows don't shrink to their panel position like they do with gnome-panel with Compiz but at least they shrink towards the bottom. As far as widgets go (or lack thereof) I'm starting to think those things should be implemented as stand-alone startup apps to keep the desktop consistent between sessions. There are many panels/docks/shells (that's a good thing!) and they all implement widgets differently, or not at all.

Speaking of gnome-panel / Compiz - the default Gnome Classic with effects session in 12.04 runs Unity also, to stop that install ccsm (CompizConfig Settings Manager), select Preferences, select Default or make a new Classic profile and then under Desktop uncheck the Unity plugin. So long as another profile is enabled it doesn't affect the Unity session. Also, the number of virtual desktops can be set under General Options. Compiz is a bit buggy under VirtualBox, often crashes when using CCSM. The biggest bug is when minimizing/restoring the virtual machine the screen isn't refreshed and sometimes it's a chore to get it back. Mutter (Gnome Shell and Cinnamon) has minimizing/restoring issues too under VirtualBox but not as bad, usually a mouse sweep or right-click will refresh the screen.

Sometimes all the animation and graphics stuff is just too much, my plain "lxgnome" session (a copy of gnome-fallback without gnome panel and running lxpanel instead from my custom script) boots fast and has almost no overhead. But at some point in the update process the "desktop animations" setting got moved to the new dconf system - it's now at org|gnome|desktop|interface, check for enable animations - some of these settings are a moving target at the moment. Here's my present bare-bones lxgnome desktop...

...using a copy of Ambiance copied to ~/.themes (keeping the same name so the desktop right-click theme selector will select it) and modified with the Nautilus dark side-bar settings. Also hacked by trial-and-error so that selected but not focused items in FireFox remain visible by editing gtk-2.0/gtkrc and changing the shade number for default base[ACTIVE] to 0.6 instead of 0.96. [...]

1/12/12 - On my Precise 12.04 test install I can now select to use Cinnamon, Gnome Shell, Gnome Classic (with or without effects), Ubuntu Unity (3D or 2D), LXDE, XFCE, my own Gnome + LxPanel session plus a couple other environments. Could install KDE too. Some might call this fragmentation, to a degree perhaps it is but I think a better term would be diversity or choice. All these desktop environments are more or less just shell applications, different ways to access the same files on my computer, they are not separate operating systems. I can run only one environment at a time but they can all be installed to the same system, I don't have to exclusively choose one over another. I don't have to give up one to use another, and I'm free to mix the components to create my own environment that works for what I do. Although I'm not all that thrilled with the "new" desktop systems for the kind of work I do, some users like the new systems better, and the community has responded to provide alternative environments that work in a more traditional way. This is how it works when programmers are free to create what they want and users are free to choose what works best for them.

1/23/12 - Precise updates are coming on strong now... sometimes going backwards but mostly forward. Quite often updates are incomplete leading to the "partial upgrade" prompt in update manager - never do that, always hit cancel. It's generally OK to apply the updates that remain selected but what I do when presented with the partial prompt is exit out and run synaptic and mark all updates to see what it wants to remove - sometimes it's just an outdated package but often it's half the system because the repositories haven't caught up yet, in that case wait and try again later. When it does want to remove packages I write them down in case I have to add them back... remember it's alpha, stuff will break and sometimes will take awhile to get fixed. Might want to install aptitude in case apt-get is one of the things that break.

Right now one of the things that is semi-broken is the Ambiance theme (in particular for Nautilus and Gnome Panel), and themes in general may be broken due to GTK3 changes. Many things require gtk-engines-pixbuf but installing that causes LxPanel's task buttons to look bad, to fix that I installed gtk-chtheme and used it to select Clearlooks, the setting persists (for LxPanel anyway) when selecting new themes. The new fixed Ambiance theme causes Nautilus' path buttons to look really bad, I wanted the dark sidebar back, and the issue with nearly-invisible selections in Firefox returned, so copied the new /usr/shar/themes/Ambiance to ~/.themes/AmbianceMod_new and made some changes. Edited gtk-3.0/gtk.css and changed "@define-color button_bg_color shade (#cdcdcd, 1.06);" to "@define-color button_bg_color shade (#B0B0B0, 1.06);" to make the Nautilus path buttons look a bit better (compromise since this affects all buttons), to fix Firefox selections edited gtk-2.0/gtkrc and changed "base[ACTIVE]      = shade (0.94, @bg_color)" to "base[ACTIVE]      = shade (0.6, @bg_color)", and to get the Nautilus dark sidebar back edited gtk-3.0/apps/nautilus.css and replaced the sidebar code with this...

/* sidebar */
NautilusWindow .sidebar,
NautilusWindow .sidebar .view {
background-color: @dark_bg_color;
color: @dark_fg_color;

NautilusWindow .sidebar .frame {

NautilusWindow .pane-separator {
background-color: @dark_bg_color;
border-color: @dark_bg_color;
border-width: 0 0 0 0;
border-style: solid;

[updated 2/9/12 - removed "> GtkTable > " from before ".pane-separator {" to work with the latest version of Nautilus. After an update to the unico GTK3 theme engine, Nautilus' path buttons now look OK without having to adjust the color values in the gtk.css file.]

The modified theme can be selected using gnome-tweak-tool but then anything running as root will get no theme at all, and Gnome's Appearance applet doesn't recognize new themes (surely there's a way to tell it but don't know how), so dragged AmbianceMod_new while holding control and shift to make a symlink and named it Ambiance so that it overrides the stock Ambiance when selected. Now root things look OK. Gnome 3 has a lot of options for theming but actually using or making new themes is presently clunky, the closest things to docs I've found is in the GtkCssProvider.html doc for v3.3 and the older version for v3.2. These explain the basic syntax but not what all the specific keys do, so left with trial and error. Gnome Classic without effects still looks pretty bad with Ambiance, something's up with the text. I mainly use Ambiance when running my LxPanel/Gnome session with just plain metacity without compositing, the default Adwaita theme is fine when using Gnome Shell, Unity 3D and Gnome Classic w/Compiz effects. Now need to figure out how to tell the Appearance applet to permit selecting other themes besides what it already knows about.. obviously the theme needs to be copied to /usr/share/themes so that root can use it too but there's more to it than that.. surely there's a list somewhere (perhaps hard-coded?)... but for now gnome-tweak-tool works for selecting themes (along with gtk-chtheme for making GTK2 stuff look right), between Adwaita and modified Ambiance all of my Gnome-based sessions look OK, and I really don't care if root stuff looks different and/or "plain". Good enough for a test system.

Here's something that's a bit crazy...

...added "unity-2d-launcher &" [now called "unity-2d-shell"] to my startup apps for Gnome Shell, with shell extensions to provide easy access to recent files and default places among things. Some of the extensions were installed from but have to be careful when using that site.. some of the updated versions no longer work on my test system (good to have alternate sessions to fix stuff when it breaks). The Gnome Shell "Activities" screen has graphics issues so it's replaced with the Frippery App Menu extension. Unity 2D works OK for browsing through a single list of apps, supplies virtual desktop functionality, and provides neato animated "big button" app launchers that slide out of the way if I need the screen space. LxPanel provides a normal app menu and task bar for doing real work. Maybe... just plain Gnome 3 running with Metacity and LxPanel is functional and very fast, but it's fun to see what's possible.

2/5/12 - OTOH... Gnome Shell plus LxPanel plus Unity-2D-Launcher might be a practical setup after all. I found an extension that implements a regular systray in the top panel, and there's a temperature monitor extension on the Gnome extensions website that might work on my system (maybe... if not it's javascript in a local dir, hackable). Unity's dash and desktop pager seem to work better than Gnome Shell's overview functions, but Gnome Shell's top bar is very configurable and will probably give me more applet options. LxPanel adds sanity and keeps my work flowing. Hmm... the setup is a bit crashy under Virtual Box (which has issues with 3D-enabled environments) but if it's stable on my real hardware this might be the way to go. Regardless, Gnome 3 seems to be lots more configurable than Gnome 2 - making new Gnome 3 sessions to try out different options is almost trivial, just a few text files. Gnome 2 provides basically just one session unless extreme gconf hacking is done, there's no easy way to make "lxgnome" or other alternate sessions on my 10.04 system like I can with Gnome 3. I'm starting to look forward to upgrade time.

2/9/12 - I read that Unity's dodge-windows behavior is slated to be removed... myself I prefer the dodge windows behavior (at least selectable using dconf-editor) but I can understand why that could be an issue when using the stock Unity system (can't access the launcher when apps are maximized), it's a more useful feature when using in conjunction with another panel that provides an alternate app menu. If I were specifying it then I'd keep dodge-windows option and make it so that when auto-retracted pushing the side of the screen revealed the launcher as with the current auto-hide behavior. [...but I'm not specifying it... user interface design is tricky business, might take a few tries.]

[edited 2/10] Things are changing and breaking more as feature-freeze approaches next week, after that it should settle down a bit with more focus on bug fixes. Ambiance and other light themes are now fixed (unico update), to keep from having to constantly update my modified Ambiance theme with the Nautilus dark sidebar mod, made my local ~/.themes copy so that everything is a symlink to the stock Ambiance except for nautilus.css, which required a minor mod to the pane separator property so that it would show instead of being a white sliver. After some recent updates to libc6 and other core components the system became very unstable (at one point sometimes failing to boot to a GUI), LXDE and Gnome Shell didn't work, had to add a sleep line to to keep lxpanel from coming up non-functional.. after another libc6 update that all seems to be fixed now. Even though breakage can be inconvenient (especially when working on something else and the OS goes down), it is also an opportunity to dig deep into the system to figure out how stuff works, figure out what's broken, find workarounds, learn recovery skills that can come in handy later, even laugh out loud. Just don't run alpha/beta OS software as your main OS... it's only funny when if it gets too botched you can just wipe it and try again, no big deal.

2/11/12 - been playing around with Gnome Classic... ATM it's working well and now has a new "unified" indicator applet, but the stock Ambiance theme still has issues after the great GTK theme shakeup.. the stock clock and the window list buttons are barely readable (noticed by the developer(s) but right now they've got bigger fish to fry). In the mean time I replaced the code in gtk-3.0/apps/gnome-panel.css with simpler code that just sets the colors to something functional...

...not bad. I'd prefer inactive window buttons to also have borders but whatever, it's probably temporary. The new unified indicator applet works well, but haven't figured out how to make it pick up normal systray items (such as gnome-do which I don't use but is handy for testing), to do that I have to also add the notification area applet but then I get two volume controls (always details it seems.. but at least it works). The ClockBox section is only needed if using the stock clock applet. Other than the modified gnome-panel.css and nautilus.css files, everything else in my custom Ambiance theme is just symlinks to the stock theme so when it gets updated I won't have to redo as much. I ran into a minor bug when setting up the panel - when I added the unified indicators I neglected to remove the old clock and notification area first, gnome-panel didn't like that and went away - yet another reason I like having icons on my desktop (to fix things when the shell goes belly-up).

Other improvements and workarounds are trickling in, keeps getting better and better (when not crashing but sometimes that's just a step along the way). Scrolling in the new X11 is no longer jumpy under VirtualBox (and possibly some real hardware), theming went backwards for a bit after the GTK upgrades but now it's mostly OK again, found a workaround for the spinning pointer when opening additional text files (edit /usr/share/applications/gedit.desktop and use "StartupNotify=false" instead of true), at the moment several updates have unmet dependencies but that'll get taken care of (just don't dist-upgrade until it clears up!). Really nice to see Gnome Classic being worked on.

3/16/12 - Ubuntu Precise continues to evolve as release date approaches. Sometimes it's bumpy but that's the nature of pre-release software. Although feature freeze has passed, an exception was made to allow including Gnome Shell 3.4 (currently 3.3.90 as the actual 3.4 hasn't been released yet). For the long run this is a very good move, the LTS will start with the latest Gnome Shell and core libraries, but also updates the clutter and cogl libraries from 1.8 to 1.9, breaking apps that depend on the old libraries. Officially supported apps have been upgraded but a notable casualty is the (unofficial) Cinnamon desktop. I briefly got to see the new Cinnamon version 1.4 and it was nice - it now properly supports window themes (previous versions always used Adwaita for window borders on my test install, regardless of the theme inside the windows), and now has a panel edit mode to permit rearranging panel widgets. Then clutter/cogl got updated and broke Cinnamon. For the moment it has been removed from the Precise repository but Clem (Cinnamon's developer) is working on the issue [see the Cinnamon page for progress]. Another casualty of the GS 3.4 update is it (by design) breaks all GS extensions and only a few of the ones I had installed have updated versions. This is temporary, once GS 3.4 is officially released and included in the new Precise LTS it should encourage the porting of popular extensions and probably spurn the development of lots of new extensions. Plus for the most part adding lxpanel (or another traditional panel) and/or unity-2d-shell (which can be launched/killed as needed) fills in the gaps and lessens the need for extensions, at least for core functionality.

For the most part (except for Cinnamon) all of the major sessions I have installed work - LXDE, XFCE, Gnome Shell, Unity, Unity 2D, Classic, and my custom lxpanel/nautilus (lxgnome) session - and all (with or without help) support a traditional GUI metaphore so no need to worry about that... not only can real work get done, but with a choice of which GUI to use to do the work. My favorite GUI is still my super-simple lxgnome session.. no glitz or extra features but gives me a very fast nautilus-controlled desktop.

However, there are bugs in my Precise test install running in VirtualBox...

The system does not shut down cleanly, mount says / is busy and always recovers on startup. Usually doesn't hurt anything, but occasionally it removes orphined inodes. Added a sync command to my shutdown script to lessen the chance of corruption. These messages are only visible if plymouth graphics are disabled. I've seen no mention of this in the forums [probably a VB thing - scratch that - it's bug #963106] [fixed post-release].

Under any compiz session (Unity 3D, Classic w/ effects, etc), window titles don't change with focus/unfocused status, and editors don't update the "*" in the title to show file modification. At least one user on the forum could not confirm this, and no mention of it in any other postings about compiz [definitely a VB thing] [fixed post-release].

Under any metacity session (Unity 2D, plain Classic, my lxgnome), enabling compositing with effects causes icons to leave trails when moved. At least one user on the forum has confirmed this happening on real hardware [happens on my HP Mini 110].

In Gnome Shell, the Activities screen is all messed up with random background graphics. [definitely a VB thing but worked with GS3.2].

Themes are still rather messed up, with Ambiance scroll bars aren't visible (with overlay scroll bars disabled [now apparently fixed in the latest light-themes]), FireFox doesn't show selected but unfocused items, Classic is kind of messed up, and LxPanel (GTK2) isn't right. LxPanel can be fixed by using gtk-chtheme and using another GTK2 theme. To fix the other issues I edited Ambiance to make my own AmbianceMod theme, including the dark sidebar for nautilus. Not perfect but it's functional for me.

Apport (of all things) crashes and is useless other than (sometimes) telling me what crashed. Sometimes if logging out of a session then into another it gets confused and reports that a component from the no-longer-running session crashed.. kind of humorous.

Many of these bugs (except the themes) may be just from running an often-broken dev system under VirtualBox, not too worried about it and even if they did occur on my real hardware there are workarounds.. like not use the affected systems. In my non-effects lxpanel and gnome-panel sessions with the modified Ambiance theme (and gtk-chtheme for lxpanel) there are hardly no bugs at all other than the shutdown issue, which is probably just a VB thing or something broken in my test install. [more investigation later...]

Ubuntu 12.04 Beta 2

3/31/12 - I grabbed the 12.04 Beta 2 ISO to do some more testing. Installed it to a fresh VirtualBox machine and found that it behaves pretty much just like my 12.04 test install that's been updated since pre-alpha, just stock. Same bugs with unclean shutdown (visible in the system logs), Gnome Shell's Activities screen scrambled, title bars not updating properly under compiz (after installing the guest additions), and apport frequently complaining even though nothing seems to actually be wrong. So I know these things aren't because of something I did (besides trying to run an unsupported OS under VirtualBox:-). I noticed that global menus now work properly, something got fixed after I removed indicator-appmenu from my older test install.

Next I burned 12.04 Beta 2 to a CD and booted it - couldn't test things needing a restart but what I did test worked perfectly... Unity and compiz works fine with my GeoForce-210-based video (no extra driver needed, nice), title bars update properly, no apport hassles, YouTube and audio work fine. Video still shows the same tearing effects I get under 10.04 from my under-powered video card when the brightness changes too rapidly, that card hates strobe lights, but as far as I can tell the default nouveau driver works fine. CD ejected properly when shutting down. For a first-run-on-real-hardware it went very well, I'm not too crazy about the default Unity user interface but it's functional and for simpler usage cases might even be better than the traditional panel UI. Given that there are many alternate interfaces and configuration options I don't care what the default interface is so long as it's functional as a live CD, which it is.

Next I copied it to a 2gig thumbdrive with a 1.1gig persistence file using 10.04's Startup Disk Creator app to test installing stuff. In this configuration it still basically works like a live CD but isn't ramdisk-resident so runs VERY slowly, but good enough to test a few things. Enabled universe/multiverse repositories, disabled updating so it won't offer to chew up my thumbdrive, installed synaptic from which I installed gnome-shell (which also pulls in gnome-panel), lxpanel, gnome-tweak-tool, gconf-editor and dconf-tools, made a simple version of so I can launch lxpanel only when running Unity and Gnome Shell but not when running Gnome Classic. Being still like a live-CD, selecting alternate sessions is a bit tricky, have to go through the "Try Ubuntu" thing when rebooting but once up can log out of the current session and use the user "ubuntu" with no password to run the other sessions. LxPanel's app menu has limited menu selections when running under Unity (might be a fix for that), as usual have to set the panel to 95% width right justified so it doesn't cover the Unity launcher, made transparent so the edge isn't visible. Gnome Shell works fine, no garbled background in Activities. Gnome Classic (w/effects) works OK but there are still some theme issues - Applications and Places text is dim and the task bar buttons are square and featureless. That can be fixed with some theme editing. Noticed that the sensors-applet temperature monitor is no longer present and not in the repositories... I really need to come up with a functional temperature monitoring solution that works with my MSI 880GM-P51 motherboard, which requires k10temp, libsensors and the ability to offset the reading by about 27 degrees to reflect the actual temperature. If it comes down to it I could glue a thermocouple to my CPU heatsink and hook it up to a real digital thermometer, radical but might be easier than finding a compatible software solution - then when I upgrade I can just set up a simple LxPanel/Nautilus session and be done with it. Running from "live" USB I'm getting a few apport crash reports (so far from plymouthd and gnome-settings-daemon) but no visible bugs.. maybe because it's so slow apport thinks it crashed (in my main 12.04 VB test install the mostly-false crash messages got to be too irritating so I just removed apport-gtk, that fixes it nicely). This USB disk is not a proper install so can't really tell about the improper shutdown bug I'm getting under VB, but there is no sign of having to recover on bootup in the system logs [but it was a real bug after all ... ].

4/4/12... fixed up my fresh 12.04 VB install a bit more... here's my present Gnome Classic session...

...the green and red buttons on the top panel launch and kill unity-2d-shell. Had to play with the AmbianceMod theme a bit to get it to look right, previous one was kind of broken when gnome-panel was set to use (the default) system background settings.. but the new one isn't right when using a custom background color - makes inactive window buttons dark. There's a bug somewhere.. panel background should not change the buttons, but it's not as visually broken as when using the stock Ambiance theme with the overlay scroll things disabled. Probably not worth the effort getting too crazy with theming until things settle.. changes and breakage is less frequent now but it's still a moving target.

Here's my present lxpanel session...

Nice minimal single-panel session. This time around to make it easier to set up I didn't bother with individual lxpanel configurations, to add lxpanel to Gnome Shell and/or Unity copy the default configuration to additional directories and specify using the -p parm... although under VirtualBox neither Gnome Shell nor Unity are working like they should. Gnome Shell wouldn't work at all for me under the new VB 4.1.12, just came up to a desktop with no window manager, tried on both of my Precise VB test installs. Went back to VB 4.1.10, GS's "Activities" screen is still broken but at least the rest of it works. Kinda Sorta, better add a panel to get much done.

Here are notes for creating these configurations.

One cool thing... without all the extra cruft of my old test install, these new sessions boot quite quickly, just a few seconds. Once in the host OS buffers, about 10 seconds to boot (about 20 seconds cold) and about 3 seconds to shut down. They never seem to stay that speedy...

4/5/12 - well that lasted a day until an update semi-broke it :-) gtk2-engines-pixbuf got pulled in which made lxpanel's buttons lose their rounded corners. Solution is to install gtk-chtheme and pick something else, ThinIce works for me. Makes the buttons light, but I prefer that anyway.

4/14/12 - the Light Themes no longer depend on gtk2-engines-pixbuf and no longer disrupt LxPanel, so gtk-chtheme is no longer needed. But the stock Ambiance theme still doesn't do it for me, updated the GTK2 section of my custom AmbianceMod theme. The darker lxpanel window buttons in the above screenshot and some of the other screenshots apparently are a fluke, at the moment my lxpanel looks like...

...which is fine but I'll be glad when the theme stuff stops changing.. would be even nicer if the default Ambiance wasn't half-broken and I didn't have to figure out how to hack stuff to make panels and apps look right. Links to my present LxGnome and Classic desktops in my "fresh" virtual install using the AmbianceMod theme. The trippy background was made using the "fraqtive" program, a most excellent time-soak. [here are some 1600x900 fractal backgrounds made using fraqtive]

4/18/12 - Hardware Testing... figured out how to copy my main Ubuntu 12.04 virtual test system (installed since pre-alpha) to a USB thumbdrive and run it for real (will get to that how-I-did-it in a bit). Overall the results are very encouraging - Gnome Shell and Unity 3D work well with no funny graphics bugs, pretty smooth after a few tweaks despite running from a USB flash drive, the important stuff works. Cinnamon is still messed up until another theme is selected. The improper shutdown bug I've been seeing for awhile finally got reported as bug #963106 "NetworkManager causes orphaned inodes", leading to a fix - make sure dhclient is stopped before remounting the root filesystem. My solution was to edit the /etc/init.d/umountroot script and before it remounts root read-only, added kill -15 `pidof dhclient` followed by sleep 2 followed by sync followed by sleep 5 - I'm running it from a relatively slow thumbdrive, I want to make sure. Another way to do it is add a /sbin/killall5 -15 followed by sync followed by a sleep command, that terminates everything except for non-kernel tasks (but might be too harsh).

In Gnome Classic got my hardware sensors back by getting the source code for sensors applet, installed what I needed to make it compile (for me that was intltool, libglib2.0-dev, libgtk-3-dev, libpanel-applet-4-dev, xsltproc and gnome-doc-utils). The only sensors it detected were a pair of I2C sensors both named temp1, at first they didn't seem to move but after recompiling and installing the k10temp driver I've been using on 10.04 they came to life, video and CPU temp. No luck getting temperature monitoring in my lxpanel session but that's fine - if I have to do "intense" calculations I'll do it in Classic so I can keep an eye on things, otherwise a simple CPU activity indicator is good enough. Surprisingly a straight copy of my virtual disk booted up with only a few complaints, the main tweaks I made were editing /etc/fstab to change the root label to /dev/sdb2 and add ,noatime to the options and remove the swap reference, editing /etc/hostname and /etc/hosts to change the VirtualBox part to USB, and uninstalling the VirtualBox drivers. That and of course fixing the unclean shutdown bug.

Ok... how I copied my virtual install to a USB flash drive...

First of all I had a recent copy of my VM files.. one wrong letter in a dd command can wipe out the system. So happens I had just made a copy after almost destroying the system by using Ubuntu Tweak's janitor functions (probably my fault for installing updates then performing cleanups before rebooting, but beware!) - X broke, /var/lib/dpkg/available got corrupted, dpkg wouldn't run to fix it.. once I found available-old and fixed things so that the system would boot again I immediately made a backup. Anyway.. the steps needed to get the system to USB are to use gparted to partition the thumbdrive so that the new OS partition on the USB drive is slightly bigger than the existing virtual OS partition, from a live CD use the dd command to copy the virtual OS partion to the USB partition, then give a sequence of commands to install grub and make it bootable. I found a how-to but it was all wrong... using dd to copy a running ext4 OS does not work (thousands of errors).. it must be unmounted. I kind of bumbled through all this so these docs are not exact but close.

Partitioning... My virtual OS partition was a bit over 13 gigs so I used a 16 gig Sandisk Cruzer. In VirtualBox (shouldn't matter if from the guest OS or from a live CD image) I plugged in the thumbdrive, selected it from VirtualBox's devices menu, made sure it was not mounted using the disk utility, ran gparted (already installed on the live CD), resized the existing msdos partition to about 1.4 gigs, created a new ext4 partition and set it to be slightly bigger than the existing OS partition (left a bit of space at the end for wear leveling), set the boot flag and gave it a label so I could be sure which was which. In my case, my existing virtual OS disk was /dev/sda1 (the source), the new USB OS partition was /dev/sdb2 (the destination), and /dev/sdb1 was the shrunken msdos partition. Always check using the disk utility or gparted before using dd because sometimes things get rearranged!

Copying the disk... I booted to a recent live CD image (I used the 12.04 beta 2 image), attached the thumbdrive and made sure that both the thumbdrive and the virtual disk partitions were not mounted, verified that the source was /dev/sda1 and the destination was /dev/sdb2, then gave the dd command, in my case: sudo dd if=/dev/sda1 of=/dev/sdb2 bs=2048k

Make sure if=source disk and of=destination disk or you can wipe out the virtual system. The copy takes a long time with no output until it's done. Once the copy completes use gparted to check the newly copied USB OS partition to make sure it has no errors, this will expand it to fill all the space in the partition (was made slightly larger to make sure it wasn't slightly smaller which would cause dd to fail).

Make it bootable... thumbdrive is still attached, still running from the live CD image, new USB OS partition is still listed as /dev/sdb2.
Important - make sure if reusing these commands, change sdb and sdb2 to match your setup!
I entered the following commands (without the prompts of course)...

$ sudo mkdir /mnt/myroot
$ sudo mount /dev/sdb2 /mnt/myroot
$ sudo mount --bind /dev /mnt/myroot/dev
$ sudo mount --bind /proc /mnt/myroot/proc
$ sudo mount --bind /sys /mnt/myroot/sys
$ sudo chroot /mnt/myroot
# grub-install --no-floppy --force /dev/sdb

That's it... shut down the virtual system, if it automatically mounts on the host system then eject or safely remove it before yanking the thumbdrive. The resulting thumbdrive would boot either on real hardware or in VirtualBox - but until I edited /etc/fstab VirtualBox thought it was running from /dev/sda1 when it was really running from /dev/sdb2 - replacing the uuid stuff with a plain /dev/sda2 fixed that. Another effect was even after fixing the shutdown bug after booting the USB in VirtualBox it would still have to "recover" but for a different reason... my host 10.04 system automounts the ext4 partition then VirtualBox grabs it without a clean remount.. the OS notices.

5/19/12 - Notes about the new Ubuntu 12.04 OS moved to a new Ubuntu Stuff page.

Terry Newton (