Недавний элемент списка рассылки дает подсказку (Re: Newbie: XQuartz установка для вопросов FontForge):
Я предлагаю вам просто отодвинуть его в сторону. Если вы хотите что-то сделать, поместите скрипты в ~/.xinitrc.d и установите их исполняемыми.
и небольшая проверка показывает, что если вы поместите скрипт с суффиксом «.sh» в свой каталог ~/.xinitrc.d
, вы можете поместить туда команды X (например, xset
). Обязательно заканчивайте команды символом &
(для отсоединения).
Например, ваш скрипт quick.sh
может выглядеть так:
xset r rate 10 &
Однако (отмечая комментарий), это немного более сложно, чем это. Xquartz сбрасывает скорость клавиатуры после запуска скриптов в /.xinitrc
. Возможно, это связано с сообщением об ошибке, разрешенным путем настройки Xquartz на системные настройки.
В качестве обходного пути вы можете сделать вызов quick.sh
более сложным сценарием:
pkill -9 rapid-keyboard
$HOME/.xinitrc.d/rapid-keyboard &
и (поместив новый скрипт в тот же каталог для удобства), содержимое rapid-keyboard
может выглядеть следующим образом:
#!/bin/sh
export PATH=\
/usr/bin:\
/bin:\
/opt/X11/bin
getvalue() {
value=$(xset q |\
fgrep "$2" |\
sed -e 's/^.*'"$2"':[[:space:]]*//' -e 's/[[:space:]].*//')
[ -z "$value" ] && value="not set"
eval $1=$value
}
WANT_RATE=50
WANT_DELAY=280
LOGFILE=/tmp/rapid-keyboard.log
rm -f $LOGFILE
while :
do
X11_PID=$(pgrep Xquartz)
if [ -n "$X11_PID" ]
then
getvalue XSET_RATE "repeat rate"
getvalue XSET_DELAY "repeat delay"
if [ "x$XSET_RATE" != "x$WANT_RATE" ]
then
echo "** rate was $XSET_RATE at $(date)" >>$LOGFILE
xset r rate $WANT_DELAY $WANT_RATE
elif [ "x$XSET_DELAY" != "x$WANT_DELAY" ]
then
echo "** delay was $XSET_RATE at $(date)" >>$LOGFILE
xset r rate $WANT_DELAY $WANT_RATE
fi
fi
sleep 1
done
Сценарий регистрирует свои изменения (на самом деле не нужны, за исключением демонстрационных целей) и ждет, пока Xquartz снова изменит настройки. При тестировании я вижу, что настройки меняются дважды, во время инициализации, но не после.