setxkbmap 在 rc.local 启动时未运行

setxkbmap 在 rc.local 启动时未运行

我正在努力奔跑

setxkbmap -option caps:escape 

在 Kubuntu 15.04 中 /etc/init.d/ 下的 rc.local 文件中,无论我将其放在哪里,无论是开头还是结尾,还是在它前面加上 exec,它都不会运行。基本上,我希望能够以大写字母作为转义符来运行 gvim,而且我并不想将其放入 .bashrc 中,因为每次打开终端时它都会运行(没有必要),而且我希望能够在不先打开 bash 的情况下运行 gvim,并且仍然以大写字母作为转义符。

该命令在命令行中运行良好。

整个 rc.local 看起来像这样:

#! /bin/sh
### BEGIN INIT INFO
# Provides:          rc.local
# Required-Start:    $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: Run /etc/rc.local if it exist
### END INIT INFO


/usr/bin/setxkbmap -option caps:escape
PATH=/sbin:/usr/sbin:/bin:/usr/bin

. /lib/init/vars.sh
. /lib/lsb/init-functions

do_start() {
       if [ -x /etc/rc.local ]; then
               [ "$VERBOSE" != no ] && log_begin_msg 
"Running local boot scripts (/etc/rc.local)"
               /etc/rc.local
               ES=$?
               [ "$VERBOSE" != no ] && log_end_msg 
$ES
               return $ES
       fi
}

case "$1" in
   start)
       do_start
       ;;
   restart|reload|force-reload)
       echo "Error: argument '$1' not supported" >&2
       exit 3
       ;;
   stop)
       ;;
   *)
       echo "Usage: $0 start|stop" >&2
       exit 3
       ;;
esac

我做错了什么吗?还有什么办法可以得到同样的结果吗?我没有运行 Unity,所以 compizconfig 不起作用。

答案1

不要认为在实际的 X GUI 会话启动之前运行任何名称中带有“x”的程序是有用的。

将其放入“启动应用程序”(或 KDE 中任何名称)。

相关内容