emc*_*sen 7 gnome 11.10 xmonad gnome-classic
我没有运气让 XMonad 通过 gnome 回退会话在 11.10(x64,全新安装)中运行。我试过调整来自
http://markhansen.co.nz/xmonad-ubuntu-lucid/
和
http://markhansen.co.nz/xmonad-ubuntu-oneiric/
但没有运气。如果有人有想法,我想听听。
以sawfish 窗口管理器为例(抱歉,我不使用xmonad)。
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/
Run Code Online (Sandbox Code Playgroud)
进行此更改:
[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
Run Code Online (Sandbox Code Playgroud)
2.1.a. 创建/编辑 ~/.gnomerc 并添加以下内容:
export WINDOW_MANAGER=sawfish
Run Code Online (Sandbox Code Playgroud)
将本例中的“sawfish”替换为您要使用的窗口管理器。如果您现在使用“GNOME Classic”会话登录,您将获得您选择的窗口管理器。
2.1.b. 更快的启动:
如果您在使用上述解决方案登录时遇到 30 秒延迟,以下将解决该问题(这可能只是锯齿问题)。
制作一个启动脚本,例如~/bin/my-gnome-wm:
#!/bin/bash
sawfish &
Run Code Online (Sandbox Code Playgroud)
使其可执行:
chmod u+x ~/bin/my-gnome-wm
Run Code Online (Sandbox Code Playgroud)
将 ~/.gnomerc 更改为:
export WINDOW_MANAGER="$HOME/bin/my-gnome-wm"
Run Code Online (Sandbox Code Playgroud)
2.2.a. 再次编辑 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
Run Code Online (Sandbox Code Playgroud)
将本例中的“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/
Run Code Online (Sandbox Code Playgroud)
进行此更改:
[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
Run Code Online (Sandbox Code Playgroud)
使用 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
Run Code Online (Sandbox Code Playgroud)
为什么要创建 my-gnome-wm 脚本?因为这似乎不起作用:
export WINDOW_MANAGER='/usr/bin/sawfish&'
Run Code Online (Sandbox Code Playgroud)
这也不行:
export WINDOW_MANAGER='bash -c "/usr/bin/sawfish&"'
Run Code Online (Sandbox Code Playgroud)
快速修复:登录,然后执行killall metacity & xmonad。
它似乎有效,尽管我遇到了间歇性的键盘和鼠标问题,这些问题可能与此解决方案相关,也可能无关。
另外,考虑到这有效,您可能会认为我可以交换 /usr/share/gnome-session/sessions/gnome-classic.session 中的窗口管理器值,但是当我更改该值时,什么也没有发生。
| 归档时间: |
|
| 查看次数: |
3533 次 |
| 最近记录: |