如何运行在登录屏幕之前启动的脚本?

如何运行在登录屏幕之前启动的脚本?

我正在校准我的触摸屏,发现最好的工具是 xinput_calibrator。所以我用了它。它有两个选项(其中一个不起作用),所以我选择第二个。它说我应该“在以 X 会话启动的脚本中”执行此命令:

xinput set-int-prop "3M 3M USB Touchscreen - EX II" "Evdev Axis Calibration" 32 14410 2146 14574 2115

所以我尝试了~/.xinitrc~/.xsession~/.xsessionrc,所有这些都不存在。所以我创建了它们,确切的内容就是这个命令。前两个文件使我的登录失败(登录后,我退回到登录屏幕)。

对于最后一个文件,校准是有效的,但只有在登录后......

我需要运行该命令将显示登录对话框。我想将此命令添加到末尾/etc/X11/xinit/xinitrc但没有结果(没有任何改变)。另外,我尝试将其添加到末尾/etc/X11/Xsession.d/40x11-common_xsessionrc(在检查了一些文件之后),但结果与将其添加到~/.xsessionrc.

如何在登录屏幕显示之前运行此命令(是在窗口管理器启动之前,还是在 X 会话启动之前)?

(我正在使用默认窗口管理器运行 Kubuntu,如果这很重要的话)

更新由于我使用的是 Kubuntu,所以我的显示管理器是 kdm。正如已接受的答案所示,我编辑了该文件/etc/kde4/kdm/Xsetup,并且如上所述这里我在默认情况下的命令之前添加了该命令。它就像一个魅力:)

答案1

您尝试更改的所有文件都会在您登录后读取。此外,~/.xinitrc~/.xsession是在会话中运行的完整命令集;~/.xinitrc如果您从文本模式提示符运行xinit或从文本模式提示符读取,则如果您从图形登录提示符运行“自定义会话”(名称可能有所不同),则读取。startx~/.xsession

您需要配置您的显示管理器,显示登录提示的程序。对于 kdm(KDE 显示管理器),将命令添加到/etc/kde4/kdm/Xsetup(或/etc/kde3/kdm/Xsetup对于旧版本)(这是 Debian 上的路径,我尚未验证 Kubuntu 是否使用相同的路径)。

对于 gdm(Gnome 显示管理器),将命令添加到/etc/gdm/Init/Default.对于 xdm(传统的 X 显示管理器),将命令添加到/etc/X11/xdm/Xsetup.

答案2

我建议您创建自己的配置文件,一个简单的例子:

/usr/lib/X11/xorg.conf.d/20-calibration.conf

文件内容:

Section "InputClass"
         Identifier "Calibration"
         MatchProduct "3M 3M USB Touchscreen - EX II"
         Option "Calibration" "14410 2146 14574 2115"
EndSection

这应该够了吧。

答案3

你可以尝试 /etc/rc.local 吗?

答案4

当您有 OpenSUSE 时,您可以将脚本复制到 /etc/init.d 并运行 insserv script name。 insserv 启用脚本:http://man-wiki.net/index.php/8:insserv

相关内容