setxkbmap не запускается при запуске в rc.local

Я пытаюсь бежать

setxkbmap -option caps:escape 

в моем файле rc.local в /etc/init.d/ в Kubuntu 15.04, и независимо от того, где я его положил, начало или конец, или с exec перед ним, он не работает. По сути, я хочу иметь возможность запускать gvim с помощью caps в качестве escape, и я не хочу помещать это в.bashrc, так как он будет запускаться каждый раз, когда я открываю терминал (ненужный), а также я хотел бы иметь возможность запустите gvim, не открывая bash, и по-прежнему сохраняйте шапки как escape.

Эта команда отлично работает в командной строке.

Весь 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" в именах до начала реального сеанса X GUI.

Поместите его в "Startup Applications" (или как он называется в KDE).

Другие вопросы по тегам