После обновления до 14.10 gnome-settings-daemon не может быть правильно загружен /usr/share/gnome-session/sessions/xmonad.session. есть ли у кого-то такая же проблема?
Хорошо, я нашел решение.
Прежде всего, начиная с 14.10. Многие конфигурации приложений для унификации и gnome (те * .desktop в / usr / share / applications и / etc / xdg / autostart) включают в себя «OnlyShowIn = Unity». Поэтому мы должны добавить desktopname = unity в /usr/share/gnome-session/sessions/xmonad.session, чтобы эти приложения запускались.
Во-вторых, cmd 'dbus-send -print- reply = string 'теперь должен быть' dbus-send --print-reply = literal '. поэтому старый xmonad gnomeConfig не может зарегистрировать xmonad как wm. мы должны изменить команду dbus-send от = string до = literal.
] Синтаксис --print-reply=string вызывает ошибку. Имя приложения, которое должно быть «зарегистрировано», не xmonad, а xmonad.desktop. Я запустил создание файла ~/.xmonad/hooks со следующей командой:
dbus-send --session --print-reply --dest=org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.RegisterClient string:xmonad.desktop string:$DESKTOP_AUTO_START_ID
Я также нашел предыдущее исправление, установка DesktopName=Unity заставляет gnome-control-center использоваться должным образом. [!d6 ]
Я кратко упомянул об этом в тексте, но я нашел в документах XMonad, что автозапуск запускается автоматически, этот config:
, startupHook = execScriptHook "startup"
Это вызывает сценарий оболочки запускается автоматически, что я нашел легче, чем monkeypatching hookk.
http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Hooks-Script.html
Предоставляет простой интерфейс для запуска скрипта ~ / .xmonad / hooks с помощью имя крюка.
Этот модуль позволяет запускать централизованный сценарий с текстовым именем крючка. Предполагается, что скрипт находится в ~ / .xmonad / hooks.
Например, если вы хотите запускать запуск крюка в своем скрипте каждый раз, когда запускается ваш крючок запуска, вы можете изменить конфигурацию xmonad как такие как:
main = xmonad $ defaultConfig { ... startupHook = execScriptHook "startup" ... } Теперь, каждый раз, когда запускается крючок запуска, также будет выполняться команда ~/.xmonad/hooks startup.
Вот очень простой способ обхода проблемы «xmonad не удается зарегистрировать» (в других ответах с помощью xmonad hooks или записи gnomeRegister2): в файле xmonad.desktop замените Exec=xmonad на Exec=sh -c "xmonad &" , Это приводит к очень быстрому запуску - я получил эту идею здесь, но это может сломать другие вещи.
Часть DesktopName=Unity по-прежнему необходима.
Я регулярно сражаюсь с XMonad + Gnome, когда я обновляю Ubuntu. Мои конфигурационные файлы здесь , если кто-то захочет посмотреть, как я недавно получил XMonad и Gnome, чтобы играть хорошо вместе.
По состоянию на 16 ноября 2015 года важно файлы
~/.xsession: https://github.com/ntc2/conf/blob/master/dot.xsession Файлы Gnome *.desktop: https://github.com/ntc2/conf/ tree / master / dot.local / share / applications (я поддерживаю конфигурацию XMonad + Gnome в своем домашнем каталоге без необходимости редактировать какие-либо файлы системы *.desktop, см. мой скрипт для установки, где находятся эти файлы). Файл Gnome *.session: https://github.com/ntc2/conf/blob/master/dot.config/gnome-session/sessions/local-xmonad-session.sessionДля Ubuntu 15.04 и 15.10 самым важным и трудным для обнаружения было добавление export XDG_CURRENT_DESKTOP=Unity к моему ~/.xsession:
# Without setting this explicitly, it gets te value "Gnome", which
# makes `unity-settings-daemon` fail to start and we get
# `gnome-settings-daemon` instead. Not sure what this variable does,
# but I got the hint here:
# https://bugzilla.gnome.org/show_bug.cgi?id=729575.
#
# Setting to values other than "Unity" -- e.g. "default", which `env`
# tells me is the value of related variables, or "GNOME-Flashback",
# which is the `DesktopName` I might suspect here -- I get weird
# behavior, e.g. none of the dock items appear in the Gnome panel.
export XDG_CURRENT_DESKTOP=Unity
Кроме того, чтобы получать графические уведомления, например, нажатие клавиш громкости и регулировка яркости экрана, мне нужно было установить пакет notify-osd.