Я хотел бы проверить / изменить / переназначить привязки клавиш в моем серверном терминале Ubuntu. (Я не использую графический интерфейс. Я имею в виду простой терминал TTY1).
Мой основной вопрос таков:
Контекст: (Я пишу этот контекст, чтобы помочь читателям понять, откуда я.)
Я бы хотел хотел бы понять мои "низкоуровневые" привязки клавиш терминала, чтобы я мог лучше настраивать и использовать Byobu.
Я также был бы признателен, если бы ответ мог:
объяснить порядок / стек процесса запуска терминала (потому что это поможет мне понять, какие процессы «крадут» привязки клавиш)
пояснить, могу ли я неправильно использует любую терминологию
Отвечать на вопрос непосредственно:
Где конфигурационный файл для терминальных привязок клавиш?
В моем случае (Ubuntu 16.04 с ударом), ответ Serge полезен. (Хотя я не совсем уверен, что это завершено в покрытии всех привязок клавиш, которые могли бы конфликтовать, который является, почему я пишу этот более длинный ответ.) Bash настраивает привязки клавиш в этих файлах:
/etc/inputrc
~/.inputrc
В этом разделе я хотел бы быть немного более всесторонним. В то время как удар и readline влияют на привязки клавиш, они - другие включенные процессы. Например, как делает ALT-2
быть связанными с № 2 TTY?
Как обзор, вот части, включенные на моем Сервере Ubuntu 16,04 машин. Я запускаю с systemd, существующей init системы Ubuntu.
systemd
запускается systemd_logind
.systemd_logind
запускает TTY1 с login
.login
запускается bash
.bash
использование readline
библиотека.bash
выполнения ~/.bashrc
который в конечном счете запускается byobu
byobu
, в моей системе, использовании tmux
как бэкенд(Примечание: systemd
используется в Ubuntu 15.04 и 16.04. Выскочка была init системой для Ubuntu 6.10 к 15,10, согласно https://en.wikipedia.org/wiki/Ubuntu_version_history.)
В сущности следующие компоненты захватывают некоторые нажатия клавиш:
systemd-logind
(прерывания ALT-1
, ALT-2
и т.д.).login
bash
использование readline
библиотекаtmux
byobu
systemd
или login
?)Для Ubuntu 16.04 systemd-logind - то, где пользователь входит в систему, запускаются. Согласно странице справочника Ubuntu для systemd-logind.
systemd-logind является системной службой, которая справляется с пользовательскими логинами. Это ответственно за:
- Отслеживая пользователей и сессии, их процессы и их состояние ожидания
- Обеспечение находящегося в PolicyKit доступа для пользователей к операциям, таким как завершение работы системы или сон
- Реализация логики ингибирования завершения работы/сна для приложений
- Обработка аппаратных ключей питания/сна
- Управление мультиместа
- Управление коммутатором сессии
- Управление доступом к устройствам для пользователей
- Автоматическое порождение текстовых логинов (gettys) на активации виртуальной консоли и пользовательском управлении каталогом времени выполнения
См. также страницу справочника для logind.conf. Я не видел упоминания там о терминальных привязках клавиш.
Ссылки по теме о TTY / настройка клавиатуры:
Инструменты для TTY / раскладки клавиатуры:
Ссылка удара gnu.org имеет хорошую документацию о функциях readline и ударе.
Эти конфигурационные файлы влияют на привязки клавиш:
/etc/inputrc
~/.inputrc
привязки клавиш tmux описаны здесь: https://wiki.archlinux.org/index.php/Tmux#Key_bindings
Определенный для пользователя конфигурационный файл должен быть расположен в ~/.tmux.conf, в то время как глобальный конфигурационный файл должен быть расположен в/etc/tmux.conf.
Byobu имеет привязки клавиш по умолчанию, которые могут быть определяемыми пользователем в /usr/share/byobu/keybindings/
.
Примечание: этот ответ является происходящим работой. Могут быть ошибки. (Я нахожу легче указать, что, кажется, верно на основе моего чтения и обоснования, и исправляет его, если это неправильно.) Я обновлю это и удалю это уведомление, когда это будет ближе к завершению.
Согласно руководству удара (доступный через командную строку man bash
), пользовательские привязки клавиш могут быть настроены через ~/.inputrc
файл. Пользовательские привязки клавиш, как говорят, установлены как это:
When using the form keyname:function-name or macro, keyname is the name of a key spelled out in English. For example: Control-u: universal-argument Meta-Rubout: backward-kill-word Control-o: "> output"
Когда терминал запускает и передает управление к Вашей оболочке (который является bash
обычно), это читает файлы конфигурации, включая ~/.inputrc
. readline библиотека - то, что на самом деле включает это поведение, и она также позволяет использовать vi
или emacs
режим редактирования. Другие оболочки не могут иметь поддержки readline, например ksh
, таким образом, необходимо было бы действительно использовать vi
/emacs
редактируя больше В этом случае, ярлыки совпадают с для vi
и emacs
текстовые редакторы.
byobu действительно не связан с ~/.inputrc
и удар readline
: использование много пользовательских привязок клавиш самих по себе и настроек, которые главным образом прибывают из бэкенда, который это использует - screen
или tmux
. Я предполагаю, что Вы читаете страницы справочника и учебные руководства для получения понимания того, как они работают.