Hi,
I've adjusted several things in the way uxlaunch operates in the
recent weeks, and the most important changes are about to land in
Trunk. I'll try and explain how things will work a bit in here since
it affects the way we start the desktop session significantly, and
this affects any image you can make.
What changed exactly? Well, the biggest change is that there is no
hardcoded session table anymore, and so now each session needs to be
defined in a session definition file instead. That means that instead
of telling uxlaunch "start /usr/bin/mutter --sm-disable", you'll now
tell it to 'start the x-meego-nb' session, and something will instruct
uxlaunch that that implies 'mutter' etc.
Also, the new code allows the USER to entirely override this and
create their own session definition, and completely different than
what the main system defines as default. Yes, that's right, you can
change your own desktop without root permissions.
This is done through generic xsession desktop files. A lot of DE's
already ship them (xfce, xbmc, even gnome) and so we're reusing this
mechanism for maximum flexibility. Session files are named
'foo.desktop' and list an Exec= key that will be started as the
session process. The 'foo' part is assumed to define the 'session
name'. This allows uxlaunch to hide applications through the
OnlyShowIn and NotShowIn fields as it did before.
The impact for most people will be nil, except two groups:
Release engineering & people who make images: You'll have to rewrite
the kickstart files and uxlaunch configs.
- The appropriate UX package needs to install a
"/usr/share/xsessions/sessionname.desktop" file
The "sessionname" should be consistent with MeeGo's naming
convention: acceptable are "x-meego-nb", "x-meego-hs", "x-meego-tb",
"x-meego-tv", "x-meego-ivi", others need to be discussed first as
there is an impact on all packages if you make something up, and your
UX might not work properly. (autostart files will be filtered
case-insensitive).
- Selecting a default session is done through symlinking in the
kickstart file: The %post section needs to execute a line like this:
ln -sf x-meego-nb.desktop /usr/share/applications/default.desktop
This symlink *must never* be part of an installed package.
- As local sysadmin, you can re-define sessions in
/etc/X11/dm/Sessions/ to override the distro defaults
- As local user, you can re-define sessions in ~/.config/xsessions/ to
override both distro and local admin defaults.
People who are building new UX's: You'll have to create session files:
- start with creating your own ~/.config/xsessions/x-meego-foo.desktop
and symlink this to default.desktop
For a few of the MeeGo UX's, I will ensure that we have proper session
files installed in the course of the coming week to make sure the
change is without issues. For any issues or questions, please contact
me or post a reply on the list.
Auke
_______________________________________________
MeeGo-dev mailing list
[email protected]
http://lists.meego.com/listinfo/meego-dev
http://wiki.meego.com/Mailing_list_guidelines