.xsession 和 .xinitrc 未在登录时执行

Gau*_*ier 4 login ubuntu session xmonad

这是我的内容~/.xsession

#!/bin/bash

# Tray for skype, keyboard layout, ...
trayer --edge top --align right --SetDockType true --SetPartialStrut true  --expand true --width 10 --transparent true --tint 0x686868 --height 17 &

# Keyboard layout switcher
setxkbmap -layout us,se -option 'grp:alt_shift_toggle' &

xscreensaver -nosplash &
Run Code Online (Sandbox Code Playgroud)

在 lightdm 中选择 xmonad 登录后,xscreensaver 没有运行,trayer 也没有运行,并且 setxkbmap 没有设置。

我见过这个问题,这是完全一样的,但那里的答案没有帮助:

  • ~/.xsession 对所有人都可执行
  • 我在登录管理器中没有选项“自定义会话”(Ubuntu 的默认设置)

Gau*_*ier 6

原来我已经创建了自己的启动脚本xmonad-start.sh,并更改了运行此脚本/usr/share/xsessions/xmonad.desktopExec行。我仍然不明白为什么 X 不会运行~/.xsession任何 WM,但是添加~/.xsession到我的脚本中是xmonad-start.sh有效的。

这个问题有帮助。


在我的全新安装(Ubuntu 15.10 和xmonad来自apt-get)中,它是这样工作的:

  • /usr/share/xsessions/xmonad.desktop 是在登录时调用的 lightdm
  • 这反过来有行 Exec=xmonad-session
  • xmonad-session在 中/usr/bin.xmonad/xmonad-session-rc如果存在则来源。

因此,您只需创建一个指向~/.xmonad/xmonad-session-rc启动脚本所在位置的符号链接即可。

不要修改不是用户的文件。