Как заставить xmonad работать с резервной сессией GNOME?

Мне не повезло заставить XMonad работать в 11.10 (x64, свежая установка) с резервным сеансом gnome. Я пытался адаптировать инструкции из

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

и

[ 111] http://markhansen.co.nz/xmonad-ubuntu-oneiric/

, но без удачи. Если у кого-то есть идеи, я бы хотел их услышать.

7
задан 21 October 2011 в 11:26

3 ответа

Как использовать пользовательский менеджер окон с сессией Классика GNOME в 11,10

Иллюстрируемый с менеджером окон пилы-рыбы (извините, я не использую xmonad).

1. Зафиксируйте гнома-classic.session

В гноме-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: набор WINDOW_MANAGER в ~/.gnomerc

2.1.a. Создавайте/редактируйте ~/.gnomerc и добавьте это:

export WINDOW_MANAGER=sawfish

Замените "пилу-рыбу" в этом примере с менеджером окон, который Вы хотите использовать. Если Вы теперь войдете в систему с "сессией" Классика GNOME, то Вы получите свой выбранный менеджер окон.

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.2.a. Отредактируйте гнома-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.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 и без установки WINDOW_MANAGER в .gnomerc, мы, кажется, получаем и Единицу и Классика GNOME одновременно, друг на друге!

Эта запись в ~/.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&"'
5
ответ дан 21 October 2011 в 11:26

Быстрое решение: войдите в систему, затем выполните killall metacity & xmonad.

Кажется, это работает, хотя у меня периодически возникают проблемы с клавиатурой и мышью, которые могут или не могут быть связаны с этим решением.

Кроме того, учитывая, что это работает, можно подумать, что я могу просто поменять значение оконного менеджера в /usr/share/gnome-session/sessions/gnome-classic.session, но когда я изменяю значение, ничего не происходит .

0
ответ дан 21 October 2011 в 11:26

Для более новых версий 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 с Xmonad» с экрана входа в систему.

(источник: http://www.haskell.org/haskellwiki/Xmonad/Using_xmonad_in_Gnome#Ubuntu_Precise )

0
ответ дан 21 October 2011 в 11:26

Другие вопросы по тегам:

Похожие вопросы: