Как я могу легко переключаться между раскладками клавиатуры Dvorak и Qwerty из системной консоли Linux?

2163
Steve HHH

Я переключаюсь между раскладками клавиатуры Dvorak и Qwerty и часто сталкиваюсь с несовпадающими раскладками в моей операционной системе хоста и виртуальной машине Linux.

Как я могу легко переключить макет, если у меня установлен неправильный макет? Обратите внимание, что я говорю здесь о системной консоли только для командной строки, а не о терминальном окне в графическом интерфейсе.

2
Это также может быть полезно http://superuser.com/questions/598405/how-do-i-switch-to-dvorak-across-multiple-oss#comment741771_598405 William 10 лет назад 0

1 ответ на вопрос

4
Steve HHH

Я нашел решение, чтобы создать следующие псевдонимы в моем .bashrcфайле:

alias asdf="sudo loadkeys dvorak" alias aoeu="sudo loadkeys us" 

Теперь, когда я обнаружил, что выбрал неправильный макет, я нажимаю те же четыре клавиши в домашнем ряду, чтобы переключать макеты.

Единственная проблема, с которой я столкнулся, заключалась в том, что было бы сложно ввести пароль для sudoкоманды, если включен неправильный макет. Есть два решения этой проблемы, но они могут быть проблемой безопасности в некоторых средах:

  1. Используйте надежный пароль, состоящий только из цифр, символов и букв M и A (они одинаковы как для Dvorak, так и для Qwerty).

  2. Установите suidбит /usr/bin/loadkeysтак, чтобы он автоматически запускался с правами root (и вам не нужно его запускать sudo). Я использовал команду sudo chmod u+s /usr/bin/loadkeys. Примечание: мне нужно было установить console-dataпакет заранее.

Редактировать : добавлено отличное suidпредложение от ssmy .

Хороший обходной путь для пароля. Может быть, это проблема безопасности, но, может быть, loadkeys можно установить suid? ssmy 11 лет назад 1
Да, мое предложение пароля не будет сокращать горчицу в производственной среде. В моих персональных системах я всегда отключаю доступ по паролю SSH для принудительной аутентификации по ключу RSA, поэтому вводите пароль только для `sudo` или в системной консоли. Steve HHH 11 лет назад 0