登录我的计算机时,我无法运行我的~/.xinitrc
( ) 脚本。~/.xsession
我使用 Xubuntu 12.10 和 vanilla lightgm 作为登录管理器。这两个文件都具有正确的权限(可执行)。我的 中有~/.xinitrc
以下内容:
#!/usr/bin/env bash
# read ~/.Xmodmap if it exists
if [[ -f "${HOME}/.Xmodmap" ]]; then
xmodmap "${HOME}/.Xmodmap"
fi
# read ~/.Xresources if it exists
if [[ -f "${HOME}/.Xresources" ]]; then
xrdb -load "${HOME}/.Xresources"
fi
# use gnome-keyring-daemon to manage keys
/usr/bin/gnome-keyring-daemon --start --components=gpg
/usr/bin/gnome-keyring-daemon --start --components=ssh
任何其他命令(例如date >> "$HOME/did_start"
)也不会被执行。
现在显然,即使我删除了我的~/.xinitrc
和~/.xsession
文件,xmodmap
似乎正在阅读~/.Xmodmap
,并且~/.Xresources
也正在部分阅读。我检查了/etc/X11/Xsession
一下是否有任何命令可以让它读取这两个文件,但没有找到。可能发生什么情况?
编辑:由于 Gilles 询问,我在通过 lightdm ( ) 登录时使用自定义会话/usr/share/xsessions/custom.desktop
:
[Desktop Entry]
Name=Xsession
Exec=/etc/X11/Xsession
但显然这仍然通过 XFCE 启动,startxfce4
即使我的~/.xinitrc
.
正如 Ulrich Dangel 指出的,有一行/usr/xdg/xfce4/xinitrc
读取~/.Xmodmap
和~/.Xresources
,并且该脚本由 执行startxfce4
。那么这个“谜团”现在已经解开了。但同样,来自的颜色(xterm
等urxvt
)~/.xinitrc
仍未加载。
答案1
对于你的第一个问题,它通常取决于你的会话,即你的示例中的文件不一定足够,因为它不会启动你的 WM/DE。通常~/.xsession
或~/.xinitrc
启动整个环境,而不仅仅是用于自动启动某些程序,即它们应该包含类似的行exec x-window-manager
,但全局xsession
可能只是获取文件。
对于你的另一个问题,Debian(可能还有Ubuntu)有/etc/X11/Xsession.d
例如加载~/.Xresources
.这些文件还负责加载和查找默认窗口管理器。
要调试您的问题,您应该查看~/.xsession-errors
或从控制台启动 xserver 并直接在那里查看错误消息,即startx -- /etc/X11/Xsession