.png)
14.10으로 업그레이드한 후 gnome-settings-daemon이 /usr/share/gnome-session/sessions/xmonad.session을 제대로 로드할 수 없습니다. 같은 문제 있는 사람 있어?
답변1
Jianingy 답변을 기반으로 한 보다 자세한 솔루션은 다음과 같습니다. Ubuntu 14.10으로 업그레이드한 후 발생한 몇 가지 문제를 해결합니다. 해결되는 문제는 다음과 같습니다.
- 멀티미디어 키가 작동하지 않음
- Gnome-control-center의 디스플레이 설정이 작동하지 않습니다.
DesktopName=Unity
에 추가해야 합니다 /usr/share/gnome-session/sessions/xmonad.session
.
[GNOME Session]
Name=Xmonad/GNOME
RequiredComponents=gnome-settings-daemon;gnome-panel;xmonad
DesktopName=Unity
또한 dbus-send
Ubuntu 14.10의 변경 사항 --print-reply=literal
과 관련하여 --print-reply=string
. 나는 그것을 my에 추가했고 xmonad.hs
main을 main = xmonad $ gnomeConfig2
.
import XMonad.Config.Desktop
import XMonad.Util.Run (safeSpawn)
import qualified Data.Map as M
import System.Environment (getEnvironment)
data RescreenToggleState = RescreenToggleState Bool deriving Typeable
instance ExtensionClass RescreenToggleState where
initialValue = RescreenToggleState True
gnomeConfig2 = desktopConfig
{ terminal = "gnome-terminal"
, keys = gnomeKeys <+> keys desktopConfig
, startupHook = gnomeRegister2 >> startupHook desktopConfig }
gnomeKeys (XConfig {modMask = modm}) = M.fromList $
[ ((modm, xK_p), gnomeRun)
, ((modm .|. shiftMask, xK_q), spawn "gnome-session-save --kill") ]
-- | Register xmonad with gnome. 'dbus-send' must be in the $PATH with which
-- xmonad is started.
--
-- This action reduces a delay on startup only only if you have configured
-- gnome-session>=2.26: to start xmonad with a command as such:
--
-- > gconftool-2 -s /desktop/gnome/session/required_components/windowmanager xmonad --type string
gnomeRegister2 :: MonadIO m => m ()
gnomeRegister2 = io $ do
x <- lookup "DESKTOP_AUTOSTART_ID" `fmap` getEnvironment
whenJust x $ \sessionId -> safeSpawn "dbus-send"
["--session"
,"--print-reply=literal"
,"--dest=org.gnome.SessionManager"
,"/org/gnome/SessionManager"
,"org.gnome.SessionManager.RegisterClient"
,"string:xmonad"
,"string:"++sessionId]
답변2
네, 해결책을 찾았습니다.
우선 14.10부터 시작합니다. 많은 Unity 및 gnome 애플리케이션 구성( /usr/share/applications 및 /etc/xdg/autostart 의 *.desktop )에는 "OnlyShowIn=Unity"가 포함되기 시작합니다. 따라서 해당 응용 프로그램을 실행하려면 /usr/share/gnome-session/sessions/xmonad.session에 Desktopname=unity를 추가해야 합니다.
둘째, cmd 'dbus-send --print-reply=string'은 이제 'dbus-send --print-reply=literal'이어야 합니다. 따라서 이전 xmonad gnomeConfig는 xmonad를 wm으로 등록할 수 없습니다. dbus-send 명령을 =string에서 =literal로 변경해야 합니다.
답변3
- https://gist.github.com/bewest/46b849da04684f0ce401
- http://blog.ezyang.com/2014/12/ubuntu-utopic-upgrade-xmonad/comment-page-1/
구문 --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
답변4
다음은 "xmonad 등록 실패" 문제를 해결하는 매우 간단한 방법입니다(xmonad 후크를 사용하거나 작성하여 다른 답변에서 해결됨 gnomeRegister2
). xmonad.desktop
파일 Exec=xmonad
에서 Exec=sh -c "xmonad &"
. 그 결과 시작이 매우 빨라졌습니다. 아이디어가 생겼습니다.여기-- 하지만 다른 것들은 깨질 수도 있습니다.
그 DesktopName=Unity
부분은 여전히 필수적이다.
업데이트(2015년 11월 16일)
나는 Ubuntu를 업그레이드할 때 정기적으로 XMonad + Gnome과 싸웁니다. 내 구성 파일은GitHub에서 사용 가능, 제가 가장 최근에 XMonad와 Gnome을 어떻게 함께 잘 플레이하게 했는지 알고 싶은 분이 계시다면.
2015년 11월 16일 기준으로 중요한 파일은 다음과 같습니다.
~/.xsession
:https://github.com/ntc2/conf/blob/master/dot.xsession- 그놈
*.desktop
파일:https://github.com/ntc2/conf/tree/master/dot.local/share/applications*.desktop
(저는 시스템 파일을 편집할 필요 없이 홈 디렉토리에 XMonad + Gnome 구성을 유지합니다.conf 설치 스크립트이 파일이 어디로 가는지). - 그놈
*.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
my ~/.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
.