我有一个位于 的脚本/opt/capslock_delay_fix.sh
。我希望该脚本在登录后运行。
我什么都试过了。从启动应用程序到.bash_rc
,再到.profile
。就是无法运行脚本。我想知道脚本本身是否仅在登录后的某个时刻起作用。
脚本内容如下:
#!/bin/bash
xkbcomp -xkb "$DISPLAY" - | sed 's#key <CAPS>.*#key <CAPS> {\
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"
答案1
某些类型的命令和脚本如果在登录过程中运行得太早,几乎肯定会中断。一些示例包括:键盘和触摸板相关命令、显示器设置 ( xrandr
) 等。有时甚至指示器也是如此。
原因是如果桌面尚未准备好,该命令就会中断,或者该命令随后被本地程序否决。
稍事休息即可完成工作,格式如下:
/bin/bash -c "sleep 10 && <command>"