Как заставить 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)