~/.xinitrc 未运行

~/.xinitrc 未运行

登录我的计算机时,我无法运行我的~/.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。那么这个“谜团”现在已经解开了。但同样,来自的颜色(xtermurxvt~/.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

相关内容