如何让xmonad与GNOME后备会话一起运行?

我没有运气让XMonad在11.10(x64,全新安装)中使用gnome后备会话运行。 我试过调整指令

http://markhansen.co.nz/xmonad-ubuntu-lucid/

http://markhansen.co.nz/xmonad-ubuntu-oneiric/

但没有运气。 如果有人有想法,我想听听他们的意见。

如何在11.10中使用GNOME Classic会话的自定义窗口管理器

以sawfish窗口管理器为例(抱歉,我不使用xmonad)。

1.修复gnome-classic.session

gnome-classic.session中似乎存在一个错误 。 以下是修复方法:

直接编辑系统文件/usr/share/gnome-session/sessions/gnome-classic.session或在主目录中复制:

mkdir ~/.config/gnome-session/sessions cp -ai /usr/share/gnome-session/sessions/gnome-classic.session ~/.config/gnome-session/sessions/ 

进行此更改:

  [GNOME Session] Name=GNOME Classic RequiredComponents=gnome-panel;gnome-settings-daemon; -RequiredProviders=windowmanager;notifications; +RequiredProviders=windowmanager; DefaultProvider-windowmanager=gnome-wm DefaultProvider-notifications=notify-osd IsRunnableHelper=/usr/lib/gnome-session/gnome-session-check-accelerated FallbackSession=gnome-fallback DesktopName=GNOME 

2.1。 备选方案1:在〜/ .gnomerc中设置WINDOW_MANAGER

2.1.a. 创建/编辑〜/ .gnomerc并添加:

 export WINDOW_MANAGER=sawfish 

将此示例中的“sawfish”替换为您要使用的窗口管理器。 如果您现在使用“GNOME Classic”会话登录,您将获得所选的窗口管理器。

2.1.b. 启动速度更快:

如果您使用上述解决方案在登录时遇到30秒的延迟,以下将解决此问题(这可能只是一个锯齿问题)。

制作启动脚本,例如〜/ bin / my-gnome-wm:

 #!/bin/bash sawfish & 

使其可执行:

 chmod u+x ~/bin/my-gnome-wm 

将〜/ .gnomerc更改为:

 export WINDOW_MANAGER="$HOME/bin/my-gnome-wm" 

2.2。 备选方案2:使用sawfish.desktop

二。二.2 再次编辑gnome-classic.session:

  [GNOME Session] Name=GNOME Classic RequiredComponents=gnome-panel;gnome-settings-daemon; RequiredProviders=windowmanager; -DefaultProvider-windowmanager=gnome-wm +DefaultProvider-windowmanager=sawfish DefaultProvider-notifications=notify-osd IsRunnableHelper=/usr/lib/gnome-session/gnome-session-check-accelerated FallbackSession=gnome-fallback DesktopName=GNOME 

将此示例中的“sawfish”替换为您要使用的窗口管理器。 这需要将“sawfish.desktop”这样的文件安装在正确的位置,例如/usr/share/applications/sawfish.desktop。

2.2.b. 启动速度更快:

如果您使用上述解决方案在登录时遇到30秒的延迟,以下将解决此问题(这可能只是一个锯齿问题)。

直接编辑系统文件/usr/share/applications/sawfish.desktop或在主目录中复制:

 mkdir ~/.local/share/applications cp -ai /usr/share/applications/sawfish.desktop ~/.local/share/applications/ 

进行此更改:

  [Desktop Entry] Name=Sawfish Name[el]=Ðñéïíüøáñï (Sawfish) Type=Application -Exec=sawfish +Exec=bash -c 'sawfish&' TryExec=sawfish Terminal=false NoDisplay=true X-GNOME-WMName=Sawfish X-GNOME-Autostart-Phase=WindowManager X-GNOME-Provides=windowmanager X-GNOME-Autostart-Notify=true 

笔记

使用DefaultProvider-windowmanager = gnome-wm并且在.gnomerc中没有设置WINDOW_MANAGER,我们似乎同时获得Unity和GNOME Classic,彼此之上!

〜/ .xsession-errors中的这个条目可能说明了为什么有30秒的延迟:

 gnome-session[23870]: WARNING: Application 'gnome-wm.desktop' failed to register before timeout 

为什么要创建my-gnome-wm脚本? 因为这似乎不起作用:

 export WINDOW_MANAGER='/usr/bin/sawfish&' 

这也不是:

 export WINDOW_MANAGER='bash -c "/usr/bin/sawfish&"' 

快速修复:登录,然后执行killall metacity & xmonad

它似乎有用,虽然我有间歇性的键盘和鼠标问题可能与此解决方案有关或可能没有关系。

此外,鉴于这是有效的,你认为我可以在/usr/share/gnome-session/sessions/gnome-classic.session中交换窗口管理器值,但是当我更改值时,没有任何反应。

对于较新的Ubuntu版本(例如15.04),可以使用此存储库。 要安装所需的文件:

 sudo add-apt-repository ppa:gekkio/xmonad sudo apt-get update sudo apt-get install gnome-session-xmonad 

对于Ubuntu 12.04,它几乎可以“开箱即用” – 你需要手动安装gnome面板:

sudo apt-get install gnome-panel

然后您可以从登录屏幕使用“GNOME with Xmonad”会话登录。

(来源: http : //www.haskell.org/haskellwiki/Xmonad/Using_xmonad_in_Gnome#Ubuntu_Precise )