У меня есть 2 языка (английский и литовский язык) в моей системе, и мой пароль содержит числа, для которых я использую специализированную строку числа (выше букв) на моей клавиатуре. Это происходит, что литовская клавиатура языка использует ту строку числа для специальных букв. Таким образом, при запросе пароль я обычно делаю ошибку, потому что язык установлен на литовский язык. Как я могу автоматически изменить язык на английский язык при запросе пароль?
После диалога с Gunnar Hjalmarsson в поле комментария я думаю, что следующий сценарий оболочки должен работать для запущения программ с поднятыми полномочиями. Это будет использовать американскую английскую клавиатуру, когда Вы введете пароль и сбросите клавиатуру на Вашу собственную клавиатуру непосредственно после этого.
Можно использовать имя mysudo
или если Вы желаете более короткого (но уникальный) название программы.
#!/bin/bash
curkeyb=$(setxkbmap -query|grep 'layout:'|sed 's/.* //')
setxkbmap us
sudo echo "sudo $@"
setxkbmap "$curkeyb"
sudo "$@"
Сделайте это исполняемым файлом и скопируйте его в каталог в PATH
, например,
chmod +x mysudo
mv mysudo /usr/local/sbin
и затем можно использовать его вместо sudo
Примеры:
mysudo nano hello.txt
mysudo -H gedit hello.txt # remember -H with GUI programs
mysudo parted -ls
Объяснение:
bash
должен использоваться для выполнения сценария оболочки.sudo
запускается, и если не будут недавно работать, то это попросит пароль.sudo
команда дала поднятые полномочия оболочки в течение нескольких минут. Это означает, что реальная команда может быть выполнена с исходной клавиатурой и поднятыми полномочиями, не прося пароль (снова). Если Вы устанавливаете и работаете onboard
Вы будете видеть, как клавиатура изменяется так, чтобы верхний ряд ключей отобразил числа 1 2... 9 0, когда система ожидает пароля и затем возвращается к Вашему lanaguage.