Как использовать setxkbmap из tty?

Есть несколько проблем с вашим скриптом.

Чтобы выполнить простую проверку «годен/не годен» с помощью grep, рассмотрите следующую идиому:

fail=$(route -n | grep -q '192.168.38.2'; echo $?)

Затем проверьте результат своей команды следующим образом:

if [ "$fail" -ne 0 ]; then
    # Handle failure
else
    # Handle success
fi

Эту идиому можно упростить до чего-то вроде:

if [ $(route -n | grep -q '192.168.38.2'; echo $?) ] then
   ...

или

route -n | grep -q '192.168.38.2'
if [ "$?" ]; then
   ...

Тем не менее, я бы рекомендовал потратить время на то, чтобы понять команды, которые вы используете, а не просто копировать то, что вы не понимаете (напримерgrep -v grep).

4
23.10.2017, 22:42
1 ответ

X-сервер должен быть активен, когда вы выполняете эту команду с TTY.

export DISPLAY=:0 # Your Display
sleep 1 && setxkbmap us # Change keyboard layout

Поэтому я рекомендую вам выполнить эту команду, а затем немедленно переключиться на X-дисплей, чтобы изменения вступили в силу.

Такое поведение можно увидеть в команде xclip -o. При выполнении на TTY он ждет, пока X-сервер не станет активным, чтобы распечатать содержимое основного буфера обмена.

0
18.05.2020, 02:11

Теги

Похожие вопросы