Вопрос или проблема
Команда
xdotool type "hello"
может быть использована для ввода слова hello. Но только если раскладка клавиатуры не английская, иначе будет введено что-то другое.
Как решить эту проблему, чтобы xdotool
всегда вводил hello при любой раскладке.
Я использую последнюю версию xdotool
из репозитория Ubuntu 14.04.
Видимо, в xdotool есть ошибка. Если вы не используете раскладку клавиатуры us
и ваша раскладка была установлена через конфигурационный файл Xorg (не setxkbmap
), будут использоваться соответствующие keysyms из раскладки us
.
Чтобы обойти это, просто установите раскладку клавиатуры (снова) в вашем файле .xinitrc
или запустите setxkbmap yourlayout
перед использованием xdotool.
Попробуйте: xdotool key --clearmodifiers shift && xdotool type "hello"
.
Ответ или решение
Чтобы убедиться, что xdotool
печатает "hello" независимо от используемой раскладки клавиатуры на Ubuntu 14.04, вам следует предпринять ряд шагов, учитывая описанную вами ситуацию.
Проблема
При использовании xdotool
с раскладкой клавиатуры, отличной от американской (us
), xdotool
может вывести другой текст, поскольку он полагается на раскладку клавиатуры, установленную в системе. Это связано с тем, что xdotool
в текущих настройках может искать соответствующие keysyms в us
-раскладке, даже если вы используете другую.
Решение проблемы
-
Сброс раскладки перед использованием
xdotool
:
Простой способ обойти эту проблему — временно переключить на английскую раскладку, используяsetxkbmap
. Это гарантирует, чтоxdotool
правильно интерпретирует вводимые команды.setxkbmap us && xdotool type "hello"
-
Использование
--clearmodifiers
:
Командаxdotool key --clearmodifiers
помогает убрать модификаторы, что может повлиять на ввод текста.xdotool key --clearmodifiers Shift && xdotool type "hello"
-
Установка раскладки через
.xinitrc
:
Если вы пользуетесь Xorg конфигурацией для установки раскладки клавиатуры, добавьте в ваш.xinitrc
следующую строку:setxkbmap us
Это установит американскую раскладку при запуске X-сессии, что обеспечит корректную работу
xdotool
.
Заключение
Внедрение одной из указанных методик позволит вам использовать xdotool
для печати текста "hello" вне зависимости от установленной в данный момент раскладки клавиатуры. Это важно для автоматизации задач, требующих взаимодействия с графическим интерфейсом без ошибок ввода, обусловленных языковыми барьерами интерфейса.