On Sat, Jun 05, 2010 at 10:13:32AM +0000, harsha wrote:
> John Yates <john <at> yates-sheets.org> writes:
> 
> > 
> > The following is in an Ubuntu 9.04 (Jaunty)  environment.
> > 
> > I am attempting to smooth over switching window managers while
> > preserving much of the gnome environment. To do this is have
> > regularized the /usr/share/xsessions/*.desktop files, introduced
> > individual wrapper scripts and a common start-gnome-session script
> > (see attachments).
> > 
> > I am able to switch bump-free between compiz and xmonad.  Under this
> > setup awesome does not start and the top of my ~/.xsession-erors shows
> > the following:
> > 
> > /etc/gdm/Xsession: Beginning session setup...
> > Setting IM through im-switch for locale=en_US.
> > Start IM through /etc/X11/xinit/xinput.d/all_ALL linked to
> > /etc/X11/xinit/xinput.d/default.
> > gnome-session[8287]: WARNING: Unable to find provider 'awesome' of
> > required component 'windowmanager'
> > 
> > Thanks in advance for any help/clues/suggestions,
> > 
> > /john
> > 
> > Attachment (start-gnome-session): application/octet-stream, 588 bytes
> > Attachment (gnome.desktop): application/octet-stream, 259 bytes
> > Attachment (gnome-gnome): application/octet-stream, 70 bytes
> > Attachment (xmonad.desktop): application/octet-stream, 187 bytes
> > Attachment (gnome-xmonad): application/octet-stream, 71 bytes
> > Attachment (awesome.desktop): application/octet-stream, 162 bytes
> > Attachment (gnome-awesome): application/octet-stream, 72 bytes

I thought it might be helpful if I shared the method I am using. On my 
desktopsI build a really light gnome desktop with the basic packages sometimes
without gnome-panel or metacity (I do use nautilus) This requires some gconf 
modification.

I start awesome either with .xinit and startx (Or custom session with
GDM) if I dont want the gnome environment. Or I use applications and
xsession desktop entry with a awesome-gnome-session script.

As state previously you need the desktop entry in
/usr/share/applications:

[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Awesome
Exec=awesome
NoDisplay=true
# name of loadable control center module
X-GNOME-WMSettingsModule=awesome
# name we put on the WM spec check window
X-GNOME-WMName=Awesome
X-GNOME-Autostart-Phase=WindowManager;Panel
X-GNOME-Provides=windowmanager;panel
X-GNOME-AutoRestart=true
X-GNOME-Autostart-Notify=true

NOTE: gnome-session requires three components by deafult: windowmanager,panel
and filemanager. Notice this provides the windowmanager and panel, so
the panel and metacity will not be started. You also can add filemanager
if you dont want nautilus. However, in that case you might want to
consider modifying or removing the required components in gconf, but
this will be problematic if you ever want to use a full gnome session.

Then my desktop entry in /usr/share/xsessons:

[Desktop Entry]
Encoding=UTF-8
Name=Awesome
Comment=Awesome window manager with GNOME environment
Exec=/usr/local/bin/awesome-gnome-session
TryExec=/usr/local/bin/awesome-gnome-session
Type=Application

I then have the following in awesome-gnome-session available in all
users path (I lifted this from openbox-gnome-session script, so
thank you openbox developers):

#!/bin/sh

 SPATH=/desktop/gnome/session

 # grab current default session
 SESSION=$(gconftool-2 -g $SPATH/default_session 2> /dev/null)

 # add awesome to the deafult session
 if test -z "$SESSION"; then
     SESSION="[awesome]"
 elif ! echo "$SESSION" | grep -q awesome; then
     SESSION="${SESSION%]},awesome]"
 fi
 
 # grab current awesome session
 AW_SESSION=$(gconftool-2 -g $SPATH/awesome_session 2> /dev/null)
 
 # create the awesome session or change it if default has changed.
 if test x$AW_SESSION != x$SESSION; then
     gconftool-2 -t list --list-type=strings -s $SPATH/awesome_session \
       "$SESSION" 2> /dev/null
 fi
 
 # run awesome/gnome session
 exec gnome-session --default-session-key $SPATH/awesome_session

This way any user can run an awesome/gnome session and a awesome_session
will be added to their gconf if need.

This seems to be a really clean way to do this. I also have a .xinitrc
and an Xclients for using awesome without gnome. I hope this helps.

-- 
To unsubscribe, send mail to [email protected].

Reply via email to