Fedora 10, Gnome and Xmonad

(Warning: As pointed out below my knowledge of Haskell, Xmonad and Linux is very limited, so please bear with me) Short version: ------ Getting xmonad up and running under Fedora 10 in combination with Gnome is not straightforward. After several hours I found a solution which is posted below. It would be nice if someone would update the Wiki page accordingly. Longer version: ------ Hi, I hope it's ok to post stuff like this on the mailing list: During the last two days I had severe problems getting xmonad up and running under a freshly installed Fedora 10. A few minutes ago I was able to solve the problem and now I want to share experiences in the hope that it will be useful for people having the same problem. Additionally, it would be really nice if someone would take the following information, put them into a nicer form and then update [1] (I could do this myself but since I'm more a less a complete Linux-, Haskell-, and Xmonad-noob, I think a more experienced person could do a much better job) So, what went wrong? First I was looking for precompiled packages for 64bit Fedora 10 but in the end I had to compile everything by myself. After an hour or so I got a file called xmonad in /usr/local/bin/. In order to test it I did a killall metacity; xmonad & with the old xmonad.hs from my previous Ubuntu installation. Besides some cryptic warnings (in the console window where I startedxmonad) everything worked fine. (I could not find any occurence of these warnings anywhere, so if someone is interested I can have a second look and post them on the list) After this the real trouble begun: Essentially all available tips on how to replace metacity with xmonad (or any other window manager) do _not_ work under Fedora 10! Some things I tried: - .gnomerc - .xinit / .xsession - the stuff described under "2.2 gnome-session" on [1] - some stuff mentioned in [2] While reading [2] I got the impression that this problem is not restricted to xmonad. After searching some more I stumbled onto the first three paragraphs on [3]. Unfortunately the tips given there are not complete, but after finding [4] I was able to combine both approaches and make it work (at least for me) :) First step: ------ create a file called Xmonad.desktop in /usr/share/applications which contains the following: [Desktop Entry] Type=Application Encoding=UTF-8 Name=Xmonad # change this path according to your xmonad binary Exec=/usr/local/bin/xmonad NoDisplay=true X-GNOME-WMName=Xmonad X-GNOME-Bugzilla-Bugzilla=XMonad X-GNOME-Bugzilla-Product=xmonad X-GNOME-Bugzilla-Component=general X-GNOME-Autostart-Phase=WindowManager X-GNOME-Provides=windowmanager X-GNOME-Autostart-Notify=true I copied Metacity.desktop and replaced some lines. I'm sure some of these lines can be removed but since this works for me without any problems I'm not going to put more time in this. Second step: ------ Use gconf2 or gconf-edit to set /desktop/gnome/applications/window_manager to "xmonad" It seems that this key is deprecated (see [3]) but (at least for me) it's the only way to get it work. Final steps: ------ Log out, log in, and (hopefully) enjoy xmonad If someone has an easier/better solution to this problem, please tell me :) Thanks for all your work on xmonad, Jan [1] http://www.haskell.org/haskellwiki/Xmonad/Using_xmonad_in_Gnome [2] http://newsgroups.derkeiler.com/Archive/Uk/uk.comp.os.linux/2008-10/threads.... [3] http://www.haskell.org/haskellwiki/Talk:Xmonad/Using_xmonad_in_Gnome [4] http://n2.nabble.com/Is-Gnome-windown-manager-switching-broken-again--td1394...

2008/12/5 Jan Müller
(Warning: As pointed out below my knowledge of Haskell, Xmonad and Linux is very limited, so please bear with me)
Short version: ------ Getting xmonad up and running under Fedora 10 in combination with Gnome is not straightforward. After several hours I found a solution which is posted below. It would be nice if someone would update the Wiki page accordingly.
Jan, Are you continuing to have problems? I'm working on Xmonad for Fedora 10 as well, and i'm getting some very strange behavior due to the new version of Gnome. <snip>
First I was looking for precompiled packages for 64bit Fedora 10 but in the end I had to compile everything by myself. After an hour or so I got a file called xmonad in /usr/local/bin/. In order to test it I did a
killall metacity; xmonad &
with the old xmonad.hs from my previous Ubuntu installation. Besides some cryptic warnings (in the console window where I startedxmonad) everything worked fine. (I could not find any occurence of these warnings anywhere, so if someone is interested I can have a second look and post them on the list)
After this the real trouble begun:
Essentially all available tips on how to replace metacity with xmonad (or any other window manager) do _not_ work under Fedora 10!
Some things I tried: - .gnomerc
Deprecated in the new Gnome.
- .xinit / .xsession
Fedora will ignore these unless you have 'xorg-x11-xinit-session' installed. This will give you an option at the Login Screen (gdm) to use a user defined session, which can be anything you put in ~/.xsession. The problem there, is that Gnome still does its own thing to start a window manager.
- the stuff described under "2.2 gnome-session" on [1]
This is deprecated, and we need a working solution before we can fix this.
While reading [2] I got the impression that this problem is not restricted to xmonad.
I'm getting weirder behavior from this, more on that below.
After searching some more I stumbled onto the first three paragraphs on [3]. Unfortunately the tips given there are not complete, but after finding [4] I was able to combine both approaches and make it work (at least for me) :)
First step: ------ create a file called Xmonad.desktop in /usr/share/applications which contains the following:
[Desktop Entry] Type=Application Encoding=UTF-8 Name=Xmonad # change this path according to your xmonad binary Exec=/usr/local/bin/xmonad NoDisplay=true X-GNOME-WMName=Xmonad X-GNOME-Bugzilla-Bugzilla=XMonad X-GNOME-Bugzilla-Product=xmonad X-GNOME-Bugzilla-Component=general X-GNOME-Autostart-Phase=WindowManager X-GNOME-Provides=windowmanager X-GNOME-Autostart-Notify=true
I copied Metacity.desktop and replaced some lines. I'm sure some of these lines can be removed but since this works for me without any problems I'm not going to put more time in this.
Second step: ------ Use gconf2 or gconf-edit to set /desktop/gnome/applications/window_manager to "xmonad"
It seems that this key is deprecated (see [3]) but (at least for me) it's the only way to get it work.
The correct key is: /desktop/gnome/session/required_components/windowmanager as far as i can tell. I'm having a stranger problem though, where xmonad will suddenly 'disappear'. I had thought it segfaulted at first, until i did a bit of tinkering. At one point, i loaded Gnome with an older version of the xmonad-x86_64-linux binary in my ~/.xmonad/ directory. Then i stuck in a fresh new config, recompiled it, and loaded it up. It lasted for about four minutes, until it disappeared. Instead of being stuck with no window manager, i was actually stuck with my older binary, which was clearly fighting it out with the newer one. I tried loading in another one, to see what would happen, and i got: yankee@koan ~/.xmonad $ ./xmonad-x86_64-linux X Error of failed request: BadAccess (attempt to access private resource denied) Major opcode of failed request: 2 (X_ChangeWindowAttributes) Serial number of failed request: 7 ps showed that there were several processes running. I killed them all, ran a clean one, and i've been problem free. Observations and Theories: 1) Xmonad's being declared in two places, in /usr/share/applications and in gconf. 2) Xmonad's being loaded more than once. 3) Metacity has the ability to --replace itself and/or shutdown when more than one window manager is around. 4) Xmonad has the ability to do weird things when more than one instance is around. 5) I can't actively coerce more than one Xmonad into existence simultaneously 6) When i was using the older binary, launched from Gnome as a window manager, i couldn't use key-commands that would 'spawn nautilus'. Nor could i get it to spawn from gmrun that was equally spawned from xmonad. The only way i could get it to load is either through the gnome-panel menus or from opening a terminal window and calling it there. Conclusion: Gnome is doing something pretty weird in loading a WM. Any comments?

I have also had problems using Xmonad with Gnome 2.23 and 2.24 (the version I believe is in Fedora 10) on my Gentoo system. In 2.23, I had things working as I wrote on a talk page on the wiki: http://haskell.org/haskellwiki/Talk:Xmonad/Using_xmonad_in_Gnome Which referenced the following post from a compiz user: http://www.nabble.com/-Cooker--Gnome-2.23-and-compiz-fusion-td18330823.html When I upgraded to 2.24, metacity came up as the default WM. I haven't had time to fix it yet, but I'll post something when I do (if no one else gets there first). Anyway, I just want to say that you're not the only ones with Gnome issues. Wishing the Gnome people would document these things better, --spoons Yaakov Nemoy wrote:
2008/12/5 Jan Müller
: (Warning: As pointed out below my knowledge of Haskell, Xmonad and Linux is very limited, so please bear with me)
Short version: ------ Getting xmonad up and running under Fedora 10 in combination with Gnome is not straightforward. After several hours I found a solution which is posted below. It would be nice if someone would update the Wiki page accordingly.
Jan,
Are you continuing to have problems? I'm working on Xmonad for Fedora 10 as well, and i'm getting some very strange behavior due to the new version of Gnome.
<snip>
First I was looking for precompiled packages for 64bit Fedora 10 but in the end I had to compile everything by myself. After an hour or so I got a file called xmonad in /usr/local/bin/. In order to test it I did a
killall metacity; xmonad &
with the old xmonad.hs from my previous Ubuntu installation. Besides some cryptic warnings (in the console window where I startedxmonad) everything worked fine. (I could not find any occurence of these warnings anywhere, so if someone is interested I can have a second look and post them on the list)
After this the real trouble begun:
Essentially all available tips on how to replace metacity with xmonad (or any other window manager) do _not_ work under Fedora 10!
Some things I tried: - .gnomerc
Deprecated in the new Gnome.
- .xinit / .xsession
Fedora will ignore these unless you have 'xorg-x11-xinit-session' installed. This will give you an option at the Login Screen (gdm) to use a user defined session, which can be anything you put in ~/.xsession. The problem there, is that Gnome still does its own thing to start a window manager.
- the stuff described under "2.2 gnome-session" on [1]
This is deprecated, and we need a working solution before we can fix this.
While reading [2] I got the impression that this problem is not restricted to xmonad.
I'm getting weirder behavior from this, more on that below.
After searching some more I stumbled onto the first three paragraphs on [3]. Unfortunately the tips given there are not complete, but after finding [4] I was able to combine both approaches and make it work (at least for me) :)
First step: ------ create a file called Xmonad.desktop in /usr/share/applications which contains the following:
[Desktop Entry] Type=Application Encoding=UTF-8 Name=Xmonad # change this path according to your xmonad binary Exec=/usr/local/bin/xmonad NoDisplay=true X-GNOME-WMName=Xmonad X-GNOME-Bugzilla-Bugzilla=XMonad X-GNOME-Bugzilla-Product=xmonad X-GNOME-Bugzilla-Component=general X-GNOME-Autostart-Phase=WindowManager X-GNOME-Provides=windowmanager X-GNOME-Autostart-Notify=true
I copied Metacity.desktop and replaced some lines. I'm sure some of these lines can be removed but since this works for me without any problems I'm not going to put more time in this.
Second step: ------ Use gconf2 or gconf-edit to set /desktop/gnome/applications/window_manager to "xmonad"
It seems that this key is deprecated (see [3]) but (at least for me) it's the only way to get it work.
The correct key is:
/desktop/gnome/session/required_components/windowmanager
as far as i can tell.
I'm having a stranger problem though, where xmonad will suddenly 'disappear'. I had thought it segfaulted at first, until i did a bit of tinkering. At one point, i loaded Gnome with an older version of the xmonad-x86_64-linux binary in my ~/.xmonad/ directory. Then i stuck in a fresh new config, recompiled it, and loaded it up. It lasted for about four minutes, until it disappeared. Instead of being stuck with no window manager, i was actually stuck with my older binary, which was clearly fighting it out with the newer one. I tried loading in another one, to see what would happen, and i got:
yankee@koan ~/.xmonad $ ./xmonad-x86_64-linux X Error of failed request: BadAccess (attempt to access private resource denied) Major opcode of failed request: 2 (X_ChangeWindowAttributes) Serial number of failed request: 7
ps showed that there were several processes running. I killed them all, ran a clean one, and i've been problem free.
Observations and Theories:
1) Xmonad's being declared in two places, in /usr/share/applications and in gconf. 2) Xmonad's being loaded more than once. 3) Metacity has the ability to --replace itself and/or shutdown when more than one window manager is around. 4) Xmonad has the ability to do weird things when more than one instance is around. 5) I can't actively coerce more than one Xmonad into existence simultaneously 6) When i was using the older binary, launched from Gnome as a window manager, i couldn't use key-commands that would 'spawn nautilus'. Nor could i get it to spawn from gmrun that was equally spawned from xmonad. The only way i could get it to load is either through the gnome-panel menus or from opening a terminal window and calling it there.
Conclusion:
Gnome is doing something pretty weird in loading a WM.
Any comments? _______________________________________________ xmonad mailing list xmonad@haskell.org http://www.haskell.org/mailman/listinfo/xmonad
participants (3)
-
Daniel Spoonhower
-
Jan Müller
-
Yaakov Nemoy