Reply to comment
Ubuntu integration
Submitted by Thomas Leonard on Sun, 2007-04-15 15:34Note: An updated version of these instructions can be found on the Ubuntu page.
Can we get rid of ROX-Session? It should be possible to integrate ROX with your existing session manager. In this experiment, I configure a fresh Ubuntu installation to run ROX, without using ROX-Session.

I've just upgraded my laptop from Debian/testing to Ubuntu/Feisty (beta). The machine has been running Debian since I got it almost five years ago, and has gradually diverged from the default settings as I tried new things! (e.g. it was running initng rather than sysvinit)
It was time to try something new, so I made a backup to an external drive, reformatted the hard disk and installed Ubuntu/Feisty (beta) from the ISO image.
The new Ubuntu is looking really nice. A lot of effort has obviously gone into it. Here are some features that work without any setup:
- The extra keys work (press the "volume up" button and a little volume bar appears on the screen and increments, press the "power" button and a log-out dialog appears).
- Inserting a DVD plays it (well, non-region-coded ones anyway).
- You are notified when system updates are available.
- A power indicator shows AC or battery, and warns you when the battery is nearly discharged.
- A network indicator shows the current connection status and allows switching between interfaces (e.g. wired or wireless).
Initially, I set up a normal full ROX desktop using ROX-Session. But by default you lose all of the above. Yes, you can reproduce these features in ROX with a bit of effort, but perhaps there's a better way?
Hypothesis: we can get rid of ROX-Session and instead reconfigure the distribution's native session manager to do the work.
In a normal ROX setup, ROX-Session has to integrate with the various distribution display managers (gdm, kdm, etc) and all the ROX applications just have to integrate with ROX-Session.
In the proposed system, integration with the display manager is handled for us, but the ROX applications have to integrate with the various session managers (gnome-session, etc).
In practice, this isn't too difficult, because most of the ROX applications are designed to be useable on their own anyway, and those that aren't (e.g. the config applets) mostly just duplicate the distributions' own configuration applets, which we can now use. Also, we already support two flavours of ROX-Session (my Python version and Tony's continuation of the old C version for slower machines).
To test this, I tried setting up Ubuntu/Feisty to run ROX. Here are the steps:
- Get Zero Install if you want it (otherwise, install required programs manually):
$ sudo apt-get install zeroinstall-injector
Get ROX-Filer and OroboROX:
$ 0alias rox http://rox.sourceforge.net/2005/interfaces/ROX-Filer $ 0alias OroboROX http://rox.sourceforge.net/2005/interfaces/OroboROX
- Using the gnome-panel menu at the top of the screen, run System/Preferences/Sessions.
- The first tab, Startup Programs allows you to start non-session-aware programs at login. I just disabled "Evolution Alarm Notifier" here and "Restricted Drivers Manager" (mostly because I don't know what it does ;-). I added two entries:
ROX-Filer with the command ~/bin/rox (created by 0alias above)
OroboROX with the command ~/bin/OroboROX - The Current Session tab lists the session-aware programs that are currently running. The idea here is to run the programs you want by the normal means, and then save the current state. You have to be a bit careful, because it's easy to accidentally add web browsers, help viewers, etc to the default set!
(ROX-Filer is session-aware, but it would always restart the same version, without ever upgrading, so I added the 0launch command to the previous tab instead)
- The default window manager, Metacity, isn't much good for ROX, due to its raising behaviour. There are lots of window managers that work better; personally I tend to use either xfwm4 or OroboROX.
If you want to use xfwm4, then install it now like this:
$ sudo apt-get install xfwm4 xfce4-mcs-manager
- You can't run two window managers at the same time, so we'll need to kill metacity. To do that, we need to stop gnome-session from restarting it: select metacity and change the "Style" from "Restart" to "Deleted Items" and click on "Apply".
-
Now kill metacity and run your preferred window manager. You probably want to do this with a single command, since the desktop is hard to use in the period between stopping one window manager and starting another!
$ killall metacity; sleep 2; xfwm4 &
or
$ killall metacity; sleep 2; OroboROX &
- You should now have your new window manager running. XFWM4 will appear in the Current Session tab, and you can set the style to "Restart".
- Now we'll replace Nautilus and the lower gnome-panel with ROX-Filer's pinboard and panel. Set the style for "nautilus" to "Deleted Items" and "killall nautilus".
- If you don't want any GNOME panels, repeat the previous step for "gnome-panel". If you prefer to keep the top panel (users new to ROX will probably want keep it because it gives access to the familiar features) then just right-click on the bottom panel and choose "Delete this panel".
-
Run ROX-Filer in "session mode" this sets up the pinboard and panel:
$ rox -S
- ROX-Filer will now appear in the Current Session list. You should remove it from the current session, though, because we already added it manually above.
- Go to the Session Options tab and "Save the current session".
- Log out and log back in again.
You should now have a normal-looking ROX desktop, possibly including Ubuntu's top menu bar, if you opted to keep that. You should find that the volume buttons still work, etc:

You can now do any final configuration you want:
- If you didn't keep the top menu bar, you'll probably want to add SystemTrayN to the ROX panel so you can see the system tray icons.
-
To configure xfwm4, run:
$ xfce-setting-show
You'll probably want to go to the Focus tab and set "Raise window when clicking inside" to "off".
- To disable the GNOME splash screen, run:
$ gconf-editor
Turn off /apps/gnome-session/options/show_splash_screen.
Then, just grab ROX-All or AddApp and start adding programs...
Questions
Can we simplify / automate the above steps?
Can we do this for other session managers? E.g. people on slower machines will probably want to reconfigure an Xfce desktop rather than a GNOME one. I haven't tried this.
There are probably some more issues to work out. E.g. applets quitting before the filer will probably be removed from the panel.

Recent comments
12 hours 30 min ago
1 week 14 hours ago
1 week 20 hours ago
1 week 1 day ago
1 week 2 days ago
2 weeks 4 days ago
3 weeks 20 hours ago
3 weeks 21 hours ago
3 weeks 1 day ago
3 weeks 2 days ago