Изменить ярлык TTY по умолчанию

8

Я хотел бы изменить ярлык по умолчанию для переключения туда и обратно на tty. По умолчанию это Ctrl + Alt + F #. Я попытался создать собственный ярлык, используя настройки клавиатуры Ubuntu, но он работал только при использовании графического интерфейса, когда я переключаюсь обратно на tty, он не работает. Поэтому мне нужно выяснить, как изменить привязку по умолчанию сочетания клавиш ctrl + alt + F #, чтобы один ключ переключался между двумя TTY.

era878
источник
2
Вы уверены, что это не дубликат askubuntu.com/questions/77982/…
Джейкоб Томлинсон
Что вы подразумеваете под "переключением одного ключа вперед и назад между двумя TTY?"
иш
@jacob несколько, но, возможно, не совсем :)
Rinzwind
Ах да, я вижу, это запрос одного переключаемого ключа, а не другого набора ключей.
Джейкоб Томлинсон

Ответы:

10

Вы можете использовать, bindчтобы привязать ключ к какой-либо функции. Вот что я сделал:

bind '"\ea": ". ~/newScript.sh\n" '

Вот newScript.shфайл, который изменяет tty и \eaозначает, что при каждом Alt+Aнажатии скрипт выполняется.

Содержание newScript.sh:

#! /bin/bash
ttyNum="$(tty)"
ttyNum=$(echo ${ttyNum##*y})
ttyNum=$(( (ttyNum +1) % 7))
chvt $ttyNum

Обратите внимание, что если вы хотите хранить привязки клавиш постоянно, вы можете сохранить их в вашем файле ~ ~ .inputrc. Для получения дополнительной информации, вы можете посетить эту ссылку: http://www.techrepublic.com/article/find-and-bind-key-sequence-in-bash/5683375

Обновление: вы можете сохранить bindстроку в своем ~/.bashrcфайле, чтобы вам не пришлось делать это снова.

зеленый
источник
Обратите внимание, что это не будет работать, если вы не вошли в систему или не используете bash. Решение с использованием remap.inc (см. Мой ответ ниже) будет работать независимо от того, вошли вы в систему или нет.
январь
7

Для этого есть команда chvt.

chvtкоманда означает изменение виртуального терминала. Он принимает одну опцию, которая является числом, указывающим виртуальный терминал, на который нужно переключиться.

Например, если вы вошли в систему на первом виртуальном терминале и хотите переключиться на 7-й, где xserver обычно отображает GUI, тогда выполните chvtследующее:

chvt 7

И чтобы вернуться в 1-й виртуальный терминал, введите:

chvt 1

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

Rinzwind
источник
1
Как бы вы это сделали, когда нажимаете клавишу, скажем, в tty1?
Джон С. Грубер
@john: свяжи это. Green7 уже объяснил это.
Rinzwind
5

РЕДАКТИРОВАТЬ: глупо меня! Просто посмотрите в файл /etc/console-setup/remap.inc.

В этом файле вы найдете все, что вам нужно. В любом случае объяснения даются ниже.

К сожалению, «bind» будет работать только с сеансом оболочки.

Что вам нужно сделать, это изменить сопоставления консоли. Вы можете сделать это с помощью программы "loadkeys" (man loadkeys). Во-первых, сбросьте текущие сопоставления, чтобы увидеть, как должен выглядеть формат файла:

dumpkeys > default_keys.txt

Обратите внимание, что вам нужно сделать это из текстовой консоли, а не из X, поэтому сначала нажмите Ctrl-Alt-F1, чтобы переключиться на одну!

Вот пример строки из этого файла:

alt keycode  59 = Console_1

Это означает, что клавиша, генерирующая код 59, нажатая с модификатором «alt» (определенным где-то еще в этом файле), будет генерировать событие «Console_1» - переключение на виртуальную консоль 1.

Как узнать, какой ключ генерирует какой код? Для этого используйте программу showkey. Я запускаю программу и нажимаю «F1»:

komp $ showkey
keycode  59 press
keycode  59 release

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

Скажем, вы хотите переключиться на консоль 1, используя "Ctrl 1". Вы обнаружите, что код ключа для 1 равен 2. Сохраните следующую строку в файл с именем «myownkeys.txt»:

control keycode 2 = Console_1

Переключитесь на текстовую консоль (если вы еще этого не сделали) и запустите

sudo loadkeys myownkeys.txt

Presto, Ctrl-1 должен переместить вас сейчас в консоль 1. Добавьте больше строк в ваши файлы для ваших ярлыков. Если вы хотите сделать его постоянным, вы можете [EDIT] изменить файл /etc/console-setup/remap.inc.

Кстати, кроме Console_n у вас также есть «Decr_console» и «Incr_Console» - переключение на консоль слева и консоль справа, соответственно. По умолчанию они привязаны к alt-left и alt-right.

январь
источник