The search for a new desktop continues

So the fight to find a workable productive solution continues. Lubuntu and Xubuntu both ended up having problems with some of IBM’s productivity applications. Not an issue for the majority of users, but critical for me. And I also discovered that IBM and Canonical have committed to work together to ensure that we “internal” IBM users of Ubuntu will get the support to ensure that our internal productivity tools do work under Unity.

Which gives me a pretty strong push back towards finding a way to make Unity somewhat more palatable and productive. So I’ve set about trying to turn Unity into something that I can live with for work. I’d not say I’ve completely achieved that yet, but a couple of (long) evenings have got me a fair way forward, and revealed a few problems that I probably need to raise as bugs against Unity – though given the non-standard way that I’ve exposed them, it’s debatable whether they’ll ever be addressed or not. Anyway, here are the results so far:

My normal desktop

Customised Oneiric, with the launcher open

Customised Oneiric, with application selector open

And this is what I did to a freshly installed Ubuntu 11.10 system to get there:

  1. Add back a menu of applications that can act as a launcher, and a taskbar where I can see what I have running. I came across this post describing how to resolve these issues, and merely followed the directions.

    First the menu launcher:

    sudo add-apt-repository ppa:diesch/testing
    sudo apt-get update
    sudo apt-get install classicmenu-indicator

    Once installed, run it by pressing Alt-F2 and typing classicmenu-indicator.

    Now install the taskbar:

    sudo apt-get install tint2

    Once installed, set it to auto-run on system start, by adding an entry to the Startup Applications. The executable is at /usr/bin/tint2. Then configure the resulting bottom panel (in ~/.config/tint2/tint2rc) so it only has a taskbar, removing the clock and battery indicators, by adding:
    panel_items = T
    and adjust its size to avoid interference with the unity launcher (when it’s on screen) by making sure:
    panel_size = 90% 30
    and finally (a personal choice) remove the ability to close applications from the taskbar by setting:
    mouse_right = none

  2. Next, get rid of the ugly Unity launcher by making it autohide. This is done by altering some parameters in the Unity plugin in compiz. You need to install Compiz Config Settings Manager (CCSM) first, by:

    sudo apt-get install compizconfig-settings-manager

    Then run it with ccsm, and find and select the Unity plugin. Then on the Behaviour tab:

    Set “Hide Launcher” to “Autohide”

    Set “Edge Reveal Timeout” to 100

    On the Experimental tab:

    Set “Backlight mode” to “Edge Illumination Toggles”

    Set “Launcher Icon Size” to 32

    Set “Launcher Opacity” to “0.8000”

    I still think it looks like it was designed by a child with a set of blunt crayons, but this makes it a bit more professional-looking, and since it’s now going to be hidden most of the time (and rarely used) I can live with it. I do wish there was an option to completely disable it though.

  3. Next I fixed the window buttons, by re-enabling the standard minimise, maximise, close triple, and moving them to the right side of the window title bar. Do this by entering:

    gconftool-2 --set /apps/metacity/general/button_layout --type string ":minimize,maximize,close"

  4. Then I disabled the ridiculous Overlay Scrollbars, and the Global Menu; together this moves the window buttons and menus back onto the windows where they belong, and gives us working scrollbars on all applications again, including those that are built on Eclipse:

    sudo su
    echo "export LIBOVERLAY_SCROLLBAR=0" > /etc/X11/Xsession.d/80overlayscrollbars
    echo "export UBUNTU_MENUPROXY=0" > /etc/X11/Xsession.d/81ubuntumenuproxy

    Sadly the scrollbars lack scroll buttons; I’ve not worked out how to resolve this yet, which can make fine positioning difficult. But it’s orders of magnitude easier than fighting with the overlay scrollbars.

  5. Firefox has an extension to separately move its menus to Unitys top panel, and this needs to be disabled too. Access it from Firefox’s Tools->AddOns menu. It seems to require that Firefox be restarted, and a logout/login sequence to be followed before it fully takes effect.
  6. Next I took back control of the workspaces, by adding an indicator applet into the notification area of the top panel, that also functions as a workspace switcher. The indicator is in a PPA, but unfortunately only for Natty rather than Oneiric. The Natty version works just fine under Oneiric, and installing it is straightforward, if a little fiddly, by following these instructions.

  7. At this point I rebooted to make sure everything was working, and noticed that the classic menu indicator was not the leftmost of my indicators any more. However, it is possible to specify the exact ordering of indicators, so I reordered mine by:

    mkdir -p ~/.local/share/indicators/application
    cp /usr/share/indicator-application/ordering-override.keyfile ~/.local/share/indicators/application/

    Editing the new local ordering-override.keyfile allows the exact order of the indicators to be specified. Lowest numbers are to the right of the panel. To find the id of unknown indicators, use:

    dbus-send --type=method_call --print-reply \
    --dest=com.canonical.indicator.application \
    /com/canonical/indicator/application/service \
    com.canonical.indicator.application.service.GetApplications | grep "object path"

    This results in lines like:
    object path "/org/ayatana/NotificationItem/gnome_power_manager/Menu"
    In this case, the id is gnome-power-manager, but note that the command output contains underscores which need to be changed to dashes to be valid in the ordering-override.keyfile.

  8. Next I installed dconf-editor, which allows a few additional tweaks to be make to Unity:

    sudo apt-get install dconf-tools

  9. I then did some configuration of general settings around the operating system. First, I configured the terminal look and feel by opening terminal preferences:

    Set font to "Monospace 9"
    Set default size to 100x40
    Set scrollback to 10000

    Next I changed all the fonts throughout the system, as the defaults seem far too large:

    gsettings set org.gnome.desktop.interface document-font-name 'Sans 10'
    gsettings set org.gnome.desktop.interface font-name 'Ubuntu 9'
    gsettings set org.gnome.desktop.interface monospace-font-name 'Ubuntu Mono 10'
    gsettings set org.gnome.nautilus.desktop font 'Ubuntu 10'
    gconftool --set /apps/metacity/general/titlebar_font 'Ubuntu Bold 9' --type STRING

    Then, in the “Screen” settings, I configured the screen to turn off at “30 minutes”, and set the screen lock “on” after the “screen turns off”. In the “Power” settings I set the system to “Do nothing” when the lid is closed (on battery or AC), and not to suspend when inactive (on battery or AC), but to shutdown when power is critically short on battery. In the Time and Date settings I set the Panel clock to show the Date and Month, and the clock in 12 hour format. Finally, in “Removable Media” I set the system to never prompt or start programs on media insertion.

  10. To add a quick list of locations to the Launcher “files” icon, I ran the following as a single command:

    echo "[Desktop Entry]

    Name=Home Folder
    Comment=Open your personal folder
    Exec=nautilus --no-desktop

    [Videos Shortcut Group]
    Exec=nautilus Videos

    [Documents Shortcut Group]
    Exec=nautilus Documents

    [Music Shortcut Group]
    Exec=nautilus Music

    [Pictures Shortcut Group]
    Exec=nautilus Pictures

    [Downloads Shortcut Group]
    Exec=nautilus Downloads
    TargetEnvironment=Unity" | sudo tee /usr/share/applications/nautilus-home.desktop

  11. Next I disabled the guest account in LightDM. This prevents someone from logging into my machine (albeit with very limited privileges) when I’m away from the machine. I suspect our security people would not be comfortable with this feature left enabled. To do this, edit /etc/lightdm/lightdm.conf, and make it read:


  12. Next I wanted to change the Alt-PrtSc capability, so I can capture a specific area if the screen rather than the active window. I want to retain the default PrtSc functionality. To do this, I started ccsm, and in the Gnome Compatibility plugin I changed the command “gnome-screenshot -w” (active window) to “gnome-screenshot –area”.

    While I was in ccsm I also disabled the “Snapping Windows” plugin, as it was driving me nuts. I also set a key combination (Ctl-Alt-g) on the “Toggle Handles” option of the Unity MT Grab Handles plugin, to allow easier screen grabbing & manipulation, as the default theme has quite small borders to its windows.

  13. By default, Oneiric doesn’t come with any screensavers. It simply fades to black. Which is efficient, but rather boring. So I removed the default screensaver (which does nothing) and reenabled all the pretty screensavers:

    sudo apt-get remove --purge gnome-screensaver
    sudo apt-get install xscreensaver xscreensaver-gl-extra xscreensaver-data-extra

    It’s then necessary to add “xscreensaver -nosplash” to the startup applications. This is the server portion of the screensaver which does the actual displaying of the animations, the locking of the screen, and any power management. It’s configured with “xscreensaver-demo”, which allows graphical selection of screensaver animations etc. Finally, to keep the ctl-alt-L key combination to manually start the screensaver, it’s necessary to:

    sudo ln -s /usr/bin/xscreensaver-command /usr/bin/gnome-screensaver-command

  14. Getting Conky installed (to create the animated desktop) was simple, once I’d realised that the key to making it work under Unity is to change the .conkyrc configuration stanza to own_window_type normal. However, Unity does something odd with painting itself into a different window than the root, so Conky cannot do transparent without help from something like feh, but that can only work with static images, not my preferred gradient fill. I resolved the issue by adopting an image for my desktop background.

  15. Finally, I mentioned a few issues that I’d not resolved yet:

    It seems impossible to stop the Unity top panel showing the name of the active applicaton.

    It seems impossible to move the classicmenu_indicator to the left of the Unity top panel.

    Having disabled the overlay scrollbars, the remaining scrollbars lack scroll buttons

    It seems impossible to remove the workplace switcher icon from the Unity Dash (hard-coded) Raised as Bug 898230.

    It seems impossible to remove the Dash Home icon from the Unity Dash (Hard-coded) Raised as Bug 898230.

    When maximising a window, Unity still steals the window buttons, and places them in its top panel Raised as Bug 898250.

    When stealing the window buttons, it doesn’t adhere to the setting in gconf for how to display them, but uses a hardcoded default Raised as Bug 898250.

    Seems to be impossible to completely disable the Unity Launcher Raised as Bug 898260.

    Help with any of the above would be much appreciated!

Anything to declare?

Last weekend was the 2011 International Broadcast Conference, which is run in Amsterdam. It’s the biggest broadcast media event in Europe, second only to the National Association of Broadcasters event (NAB) in Las Vegas. This year over 50,000 people turned up, completely swamping Amsterdam, amd filling all the hotels and restaurants for 6 days.

IBM sends quite a lot of people to the conference – some to man a stand, run demonstrations, and meet our customers, and others (like me) are just there to host our customers to the conference. In my case, this was my second visit to IBC, but my first with an ileostomy. It was somewhat eventful.

The trouble with having an ilesotomy is that if you’re going out and about you need to do a fair amount of advance planning, and always factor in as much flexibility as possible, because (as Murphy has noted) things will go wrong.

The joy of business travel is that you are, thanks to the airport security requirements, rather restricted. Add in all the extra problems of attending an insanely large conference, and needing to attend or host a series of business meetings, and you become very restricted. Add to that the fact that it’s run over a weekend, so you’re more tired than normal, and switch the time zones around, and change your diet (because you’re living in an hotel) and things start to get hairy. Very hairy. Which is not a good thing.

In the end, over the 3 days I was there I had 3 bag failures. One at dinner with some customers, one on the way to the conference centre, and one in a customer meeting at the conference centre. I generally carry some medical supplies with me for emergencies, but it’s just not feasible to carry a change of clothes. Frankly, that whole aspect of the trip is one that I’d like to put behind me. The patience & forbearance of my customers and colleagues still amazes me.

But there was one amusing (in retrospect) ileostomy-related element of the trip, and that occurred on the way home. When I went through security I discovered that Amsterdam has some kind of body-scanner technology installed, which spotted my ileostomy bag. The security guards then wanted to frisk me, which was OK up to the point where they tried to grab my bag and pull on it.

There then ensued a fairly heated discussion, with them wanting me to take the bag off, and me not (as my changing kit was by now in the airplane hold). The security supervisor eventually turned up, and her better English finally meant I was able to explain what the bag was, and why it really wasn’t a good idea to take it off in the airport departure hall…

Thank goodness for having been blessed with a sense of humour.

Half term break

I planned this last weeks vacation with my family on the spur of the moment nearly 9 months ago, more as a means of using up some of my accrued vacation than out of any real desire to take this particular week off as holiday. However, in practice I seem to have needed it more than any other vacation I’ve had this last year. I found the fortnight leading up to it particularly difficult, with a lot of travel, and consequent long days.

Add in the stress of recent developments in my health, and I’ve been struggling to cope. So it’s been a huge relief to spend a week away from the trains to London, the office politics, and the pressing concerns of my customers. Instead, I’ve been able to spend a week catching up on my sleep, recharging my batteries and spending time with my family. It’s reminded me of the important things in life.

I’m now looking forward to the challenges of work again next week, but it’s definitely tempered by the thought that I clearly no longer have the stamina to burn the candle at both ends, let alone while lighting the middle at the same time.

I’m going to need to improve my time management, prioritisation and delegation skills if I’m going to maintain a good work-life balance and keep my health intact.

Ambient orb project?

Long ago, in another role, I played around with the original “ambient orb”, which was a globe that was connected to a wireless data network and depending on the status of whatever subscription you had configured it for, glowed different colours. By default it glowed red when the DOW Jones stock market was falling, and green when it was rising. All very Wall Street. Unfortunately they also had a Wall Street price to match.

Probably because of the price, they never really took off. But the idea of consolidating and simplifying complex information down to a simple (and aesthetically pleasing) format was a good one, and I’ve always fancied taking a crack at building one. Unfortunately the format is intrinsically rather expensive – wireless communications and infinitely variable coloured lighting have never been cheap.

But if one is prepared to sacrifice the wireless part, it looks like you could now build ambient orbs pretty cheaply, thanks to the advent of the BlinkM programmable colour LED, and the LinkM i2c controller. Essentially you just need to put a BlinkM in an appropriate enclosure, connect it to a LinkM, which is plugged into a (potentially very simple) computer running a program to convert whatever interests you into a simple glowing colour. Better yet, the LinkM can control[1] up to eight independent BlinkMs … so multiple “orbs” are possible at relatively low incremental cost.

People have done this before, often using Arduino systems as a relatively low-cost computer with an integrated I2C controller. Some don’t even bother with the BlinkMs! However, to my eyes the problem has been finding the right enclosure for the BlinkM … bathroom light shades have been popular, but I’m just not convinced you’d get them to glow brightly enough to get the full-on original ambient orb effect.

And then yesterday, while I was in B&Q to pick up a nightlight bulb, I noticed that they were selling “Cubo” colour-changing LED lights for £1.49. They’re unintelligent mood lighting, and basically junk – they use expensive lithium watch batteries to cycle a colour LED through a fixed pattern for about 6 hours. But the cube-like enclosure is perfect for turning into an ambient orb; it’s 3″ on a side, and even with only a tiny LED, they glow deep satisfying colours even in normal daylight.

So in a fit of madness I picked up three. Now I just need to find some time to do the conversion.

[1] Actually the LinkM can control many more i2c devices than this, but it can only provide the current to drive eight BlinkM LEDs, which are quite power-hungry.

International Broadcast Conference

As part of my new role supporting the Media and Entertainment industry for IBM, I’ve just spent a week in Amsterdam at the International Broadcast Conference (IBC2010), which was a simply fascinating experience.

Of course, I’m primarily there to work – and in my case I was mainly acting as a host for some of my customers who were attending the show. But I’m also still learning how the broadcast industry works, so this was a great opportunity to do a lot of self-education, see a lot of the basic broadcast technologies “up close”, and talk to the suppliers to understand how they are used. I was also able to network with some of IBMs senior technical and executive team who were attending from around the world, and spend time learning in detail from them about the IBM technologies that they were at the show to demonstrate to our customers.

There was no doubt as to the theme of the show … everywhere you looked was 3D. From the cameras that shoot it, through specialist electronics that “fake” it, to specialist displays that show it, there was absolutely no escaping it. What was interesting (to me anyway) was how unconvincing I found it. The effects were very impressive, but somehow it didn’t seem to add very much to the overall experience. Worse, I found that after a relatively short time watching something in 3D, I started to feel slightly ill – something like a cross between motion sickness and a headache. I had the same result whether I was watching an active system (with the shuttered glasses) or a passive system (with the polarised glasses). After several days of watching these systems in action, I’m not convinced that the technology is really ready for the home; it doesn’t work as well for an “off center” viewer, it’s inconvenient (at best) for anyone who wears spectacles, and (from my informal polling of other attendees) a goodly proportion of people don’t actually find the effect very pleasant.

Add in the significant investment required in new equipment (a new TV, plus several extra sets of glasses) and it will be interesting to see if it really takes off as quickly as the industry would like.

On the other hand, some of the 4k resolution equipment was simply stunning. I spent a few minutes standing next to a Panasonic 152″, 4k (4096 x 2160) 3D plasma display. It was the size of a large wall, and yet even standing with my nose almost pressed to it, I still couldn’t see the individual pixels. The quality of the images it was displaying were simply unimaginable – very, very, impressive. I’d really like to think it could be the next big thing after the industry has got itself over 3D.

Recovery progress

I realised, to my chagrin, that it’s been nearly a month (a month!) since I last posted an update here. I’d like to say that I don’t know where the time has gone, but I do. It’s working for a living again. Take the normal weekly workload, add another 15 hours of travel to and from London to that, include a normal family life, and there’s nothing much to spare.

Work itself is going pretty well, and despite the travel, I’m really enjoying it. I am having to manage my diary quite carefully though; it’s all too easy to schedule too many trips to London in a week, or to try to pack too much into a single day, which results in problems for me later. Improvements in my stamina seem to have plateaued for now, and I’m still nowhere near as “resilient” as I used to be. On one level that’s really frustrating, but on another it’s forcing me to adopt a much more healthy work-life balance, which is something that is actually quite important to me now.

Health-wise, things continue much as before. I continue to have “good” days and “bad” days, and the ratio varies from week to week, almost at random. I’ve decided that the key thing for me is to try to make the best of each day, no matter what it’s like, as I really can’t tell in advance what sort of day I’m going to have and plan for it; I need to adapt to the circumstances I’m presented with. Even so, there are some days when that is difficult, and on those occasions I sometimes have to remind myself that at least I’m still here, and living a basically normal life. There are a lot of people who are not.

Spaced out

This last week didn’t really go entirely to plan at work. On Tuesday, for the first time since I restarted work, I had to actually cancel some meetings; I managed to get through the morning with a bit of a struggle, but by lunchtime it was clear that I wasn’t going to manage the rest of the day, which involved a trip into central London. So after a bit of soul-searching, I did the sensible thing and cancelled the rest of my meetings, and headed home to regroup.

I got myself turned around so that by Wednesday I was able to get through my whole day of meetings in London, but the early start and late finish set me back again, and meant that Thursday and Friday (even though I was working from home) were far less productive than they should have been.

And worse, by the weekend I was experiencing pain from the abscess in my pelvis again, and couldn’t get it to settle down with my normal “rest and recover” approach. So in the end I resorted to the medicine cabinet, and took the first Cocodomol tablet that I’ve needed in months. The result was a completely lost afternoon; I don’t remember it at all – I think I slept most of it. Maybe. I just can’t remember.

And then it occurred to me that at one point I was taking eight of those a day, and trying to persuade IBM that I could return to work. No wonder they weren’t keen on that idea!

The good news is that things seem to be settling down again; not quite back to normal yet (so I’ll probably need to take it carefully this coming week), but it’s definitely getting there. Which is good. But it serves as a clear reminder that I do still have less stamina than I’d sometimes like to think.

Another milestone

This week marks the completion of my phased restart to work at IBM. I’m now working full-time again.

In practice, I’ve actually been working at least my fully contracted hours for the last 3 weeks or so, but it’s good to officially get here, as it marks another (major!) point in my path to recovery. Of course, I don’t have the energy levels and stamina that I had before I became ill – not yet! – but I can see that the more I do, the more I am able to do. I’m now very confident that as time continues to pass, I’ll continue to recover, eventually ending up just as fit for work as I have ever been.

Of course, there are still days when (for no apparent reason) I really struggle with tiredness, and I still need to plan and manage my travel and working day carefully to ensure I don’t run into difficulties; but with a bit of planning, preparing for the worst, and admitting that sometimes I need to just take a break for a while, it’s all working out well.

I’m really enjoying my new job too!

Reversal recovery (part xxi)

It’s been a long time since my last post. This is mostly just because I’ve been completely run off my feet, both with work, and here at home. I think that’s mostly positive – it’s good that my life is (slowly) returning to normal again.

My work hours have been slowly ramping upwards; I’ve completed a fortnight of 3 hour days, and a fortnight of 4 hour days, and am now starting my 5th week back at work, and starting to work 5 hour days. Of course, the plan of starting with shorter days was to help ease me back into work, but I’ve found that all along the way I’ve generally exceeded those planned hours, and by significant amounts when I’ve needed to travel up to London for meetings.

This is poor discipline on my part; in practice the company will let me work as many hours as I want; it’s purely up to me to remember to walk away when I’ve completed the right number of hours for the day or week. The problem is that I’m trying to learn a new role, meet all the people I’m going to be working with, and grow my skills in a completely new industry. And that just doesn’t naturally fit into “short” days. So I end up working longer than I should, which probably explains why I’ve continued to find work much more tiring that I expected. I’m coping at the moment by finishing work, and then getting an hour or two of rest or sleep before I get on with the remainder of my day.

When I discussed this with the nice lady from IBM’s occupational health department she assured me that this was wasn’t abnormal, not to worry about it, but to try harder to keep to the planned hours that she’d originally laid out for me. Which is undoubtedly good advice, but more easily said than done, given the needs of the business and my new role. Hopefully my stamina will eventually catch up with the demands that I’m making of it, but in the meantime I am trying to keep more closely to the hours of the phased restart plan.

Interestingly, when I do overwork there are two main symptoms that manifest themselves; my bowel reacts badly, and I suffer with worse urgency and frequency issues, and (particularly if I’ve been doing anything physical) I get discomfort in my pelvis.

That has been particularly noticeable this week, as I’ve been preparing for my first customer briefing; I’ve been working much longer than my normal hours, and (I think) as a consequence suffering badly through the nights, having to get up and make frequent visits to the toilet. Which of course means I’m more tired the next day, leading to something of a vicious circle.

More (self-)discipline is required!

First week back in work

As per the plan, I started my phased restart this week. Under that plan I start out working 15 hours a week, and every fortnight the hours increment by 5 hours per week until I end up on my normally contracted hours (37.5) on the week of the 14th of June.

IBM’s Occupational Health department will be monitoring my progress, as will be my caseworker from the DWP to make sure that everything runs smoothly, and so that if I do run into problems then we can resolve them quickly. I get paid at my normal rate for the hours I work, and the remainder of my nominal working week is pro-rated at my long-term sick rate. It’s a well thought out and (I suspect if compared to most companies) generous way to help me back into normal working again.

As is often the case however, things didn’t really go quite to plan.

On Tuesday, my first day back, I had a meeting in Bedfont, which is a good 90 minutes away. So getting there and back is my nominal three hours. In practice, I drove up at 10am, and got home a little after 4pm. It was a useful trip to make, despite the original meeting being canceled, as I met some people I’ll be working with. But I was so tired that I was struggling to stay awake on the drive home, which is clearly not sensible.

Wednesday and Thursday I tried to just get my feet back under the desk, catching up on email, admin, working out what I need to be doing, and starting to refresh my network of friends and contacts around the company. Although better than Tuesday I was still well over my 3 hours per day.

Friday I had my first hand-over meeting with the colleague who used to do my new role, and made a conscious effort to try to limit my time in the office to just that 3 hour meeting. I nearly managed it, but the meeting over-ran, and we’ll probably need to repeat the last 30 minutes worth of discussions when we hold our next meeting, as I just wasn’t taking it in by then.

My conclusions so far are that:

  • It’s great to be back!
  • It’s difficult to limit my working time to only 3 hours per day. The time flies by.
  • To my surprise, I’m finding it difficult. I’m very tired after 3-4 hours, and can feel my attention slipping well before that. It’s almost as if I need a break to recharge each hour or so.
  • At the end of the week I was completely exhausted. Although I initially scoffed at the nice lady from IBM OH “suggesting” starting on 15 hours a week, I’m now glad that she insisted!

It’s clear to me that some of this is simply about being used to work; the more you do the more you can do. And I’m a year out of practice. It will come back, hopefully quite quickly.

I was pleased not to have any major issues with increased pelvic pain, or needing to lock myself in the toilet for any extended length of time. It looks as though if I am sensible with my commitments, I can keep myself on a pretty even keel with the use of just loperamide.

So, next week will be interesting. For starters, it’s a full 5-day week, and for seconds, I have a meeting in central London (Southbank) on the Tuesday morning, and will need to negotiate the trains for the first time. Fun times ahead!