Tweaking gnome for Sun Ray
Now that the Sun Ray’s at home are stabilised with OpenSolaris build 132 it was time to turn to improving the performance (although since I found my daughter watching youtube videos on the Sun Ray, something it is not really cut out to do, I do wonder if I really need to do this).
First and foremost make sure you have nothing just consuming cpu for no good reason. So that means the dscript that stops metacity running away I wrote is a must.
Then there are the more Sun Ray specific changes.
The Sun Ray’s are thin clients that get everything over the network from the server.
The good part of this is that they have no “state” on the devices so the individual devices need no administration and you can move you session from one device to another just by plugging your card in. It is this that allows me to move my session from the office to my home without loosing any state as the session keeps running on the server.
The bad part is that redrawing the entire screen is relatively slow. However if you make sure your background consists of large amounts of a single colour the protocol significantly speeds up the redraw. Now it turns out with OpenSolaris the new login screen consists of a background that is not very Sun Ray friendly. So when you insert your smart card there is a significant delay while it draws the screen. Replacing the background with an image without the colour gradient makes login much faster.
First I used the gimp to generate a plain image (still with the OpenSolaris logo) and copied that into the gdm users home directory. Then su to the user “gdm” and run:
gconftool-2 --direct --config-source \ xml:readwrite:/var/lib/gdm/.gconf.mandatory -t string -s \ /desktop/gnome/background/picture_filename ~/background.jpg
so that that user and therefore the login uses that image.
An even bigger problem is that once you are logged in the system fades in your background. This is all fine on a directly attached screen with 3D acceleration but on a Sun Ray it appears as a series of every brighter redraws of the background. Unfortunately there is no way to turn off this behaviour without turning off all gdm animations but so far I have not noticed any missing animations that would make me reinstate it.
You turn it off by adding this line:
gtk-enable-animations = 0
to ~/.gtkrc for an individual user or /etc/gtk-2.0/gtkrc for it to take global effect.