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

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

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

а также

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

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

3 ответа

Решение

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

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

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

Как использовать пользовательский оконный менеджер с сеансом GNOME Classic в 11.10

Пример - оконный менеджер 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: установите WINDOW_MANAGER в ~/.gnomerc

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.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 и без установки WINDOW_MANAGER в.gnomerc, мы, кажется, получаем одновременно и 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&"'

Для более новых версий 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 установить gnome-панель

и затем вы можете войти в систему, используя сеанс "GNOME с Xmonad" с экрана входа в систему.

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

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