10

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

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

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

2 ответа2

14

1) Убедитесь, что пакет console-data установлен:

# 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) ИМХО, да dumpkeys > test.keymap && edit test.keymap && loadkeys test - самый простой способ.

1

Это скрипт из моего личного ядовитого кабинета, который я использую, чтобы надолго сделать 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=${TMP2%%.gz}; 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=${TMP2%%.gz}
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' соответственно, где ваш текущий макет отличается и как вы хотите назвать новый.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .