Где таблицы ключей в Debian? (Использование loadkeys для изменения раскладки клавиатуры.)

18615
John Baber-Lucero

С реальной консоли (например, Ctrl- Alt- F3) я бы хотел использовать sudo loadkeys dvorak как в Ubuntu . Хотя это автоматически работает в Ubuntu, Debian хочет, чтобы я нашел файл раскладки клавиатуры. У меня нет того, /usr/share/keymapsчто иногда дается в качестве ответа. find / -type f -name '*dvorak*'поднимает несколько файлов, которые loadkeysне будут принимать. Как и в этом другом ответе, я не хочу вносить постоянные изменения в мою систему, используя console-config. Я хочу написать простые сценарии, которые могут изменить раскладку клавиш на лету.

Есть ли пакет, который я могу установить или что-то еще?

Поскольку в конечном итоге я бы хотел поменять местами Caps-Lock и Escape, я, вероятно, должен был бы сделать свои собственные пользовательские раскладки клавиш, верно?

10

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

14
barti_ddu

1) Make sure console-data package is installed:

# loadkeys dvorak Loading /usr/share/keymaps/i386/dvorak/dvorak.kmap.gz $ dpkg --search /usr/share/keymaps/i386/dvorak/dvorak.kmap.gz console-data: /usr/share/keymaps/i386/dvorak/dvorak.kmap.gz $ cat /etc/debian_version wheezy/sid 

2) IMHO, yes dumpkeys > test.keymap && edit test.keymap && loadkeys test is the easiest.

1
sjas

Это скрипт из моего личного ядовитого кабинета, который я использую, чтобы надолго сделать CAPSLOCK дополнительным CTRL в Debian. Он должен содержать достаточно подсказок, чтобы вы могли самостоятельно адаптировать его.

Предполагается, что макет «us» kbd используется до сих пор, новая раскладка клавиатуры здесь будет называться «sjas».

Один лайнер:

apt install console-data -y; TMP=$(loadkeys us | awk {'print $2'}); TMP2=$(dirname $TMP)/sjas.kmap.gz; cp -vaf $TMP $TMP2; gzip -d $TMP2; TMP3=$; sed -i -e 's/us.map/sjas.map/' -e 's/.*58.*/keycode 58 = Control/' $TMP3; gzip -c $TMP3 > $TMP2; rm $TMP3; sed -i 's/"us"/"sjas"/g' /etc/default/keyboard 

Не в одну строку, так что читать проще:

apt install console-data -y TMP=$(loadkeys us | awk {'print $2'}) TMP2=$(dirname $TMP)/sjas.kmap.gz cp -vaf $TMP $TMP2 gzip -d $TMP2 TMP3=$ sed -i -e 's/us.map/sjas.map/' -e 's/.*58.*/keycode 58 = Control/' $TMP3 gzip -c $TMP3 > $TMP2 rm $TMP3 sed -i 's/"us"/"sjas"/g' /etc/default/keyboard 

Замените вхождения строк 'sjas' и 'us' соответственно, где ваш текущий макет отличается и как вы хотите назвать новый.