在X11启动时运行脚本

我有Caps的问题,我有一个脚本来解决这个问题。 不幸的是,这个脚本一直工作直

# Fix caps xkbcomp -xkb "$DISPLAY" - | sed 's#key .*#key  {\ repeat=no,\ type[group1]="ALPHABETIC",\ symbols[group1]=[ Caps_Lock, Caps_Lock],\ actions[group1]=[ LockMods(modifiers=Lock),\ Private(type=3,data[0]=1,data[1]=3,data[2]=3)]\ };\ #' | xkbcomp -w 0 - "$DISPLAY" exit 0 

我只是将它添加到启动应用程序中,但我想在LightDM启动时运行它,甚至在X11启动时运行它。 有没有办法在X11启动时运行此脚本? 我正在使用Xubuntu 16.04.2。

谢谢。

请尝试以下方法:

  1. 将脚本放入系统范围的目录,例如/ usr / local / bin,并使用适当的shebang

     #!/bin/sh # Fix caps /usr/bin/xkbcomp -xkb "$DISPLAY" - | /bin/sed 's#key .*#key  {\ repeat=no,\ type[group1]="ALPHABETIC",\ symbols[group1]=[ Caps_Lock, Caps_Lock],\ actions[group1]=[ LockMods(modifiers=Lock),\ Private(type=3,data[0]=1,data[1]=3,data[2]=3)]\ };\ #' | xkbcomp -w 0 - "$DISPLAY" exit 0 
  2. 使其可执行,例如sudo chmod +x /usr/local/bin/fix-caps.sh

  3. /etc/lightdm/lightdm.conf.d创建自定义配置文件。 使用诸如99-local-settings.conf类的名称。 ( 99前缀表示它将在/usr/share/lightdm/lightdm.conf.d提供的标准安装脚本之后运行。)

    [SeatDefaults]部分[SeatDefaults]脚本的位置添加为display-setup-script

     [SeatDefaults] display-setup-script = /usr/local/bin/fix-caps.sh 

display-setup-script应在X服务器启动后运行,但在运行任何greeter之前 – 请参阅LightDM:添加系统挂钩 。