Где находится файл конфигурации для привязки клавиш терминала? [закрыто]

Я хотел бы проверить / изменить / переназначить привязки клавиш в моем серверном терминале Ubuntu. (Я не использую графический интерфейс. Я имею в виду простой терминал TTY1).

Мой основной вопрос таков:

  • Где находится файл конфигурации для привязки клавиш терминала?

Контекст: (Я пишу этот контекст, чтобы помочь читателям понять, откуда я.)

  • Я бы хотел хотел бы понять мои "низкоуровневые" привязки клавиш терминала, чтобы я мог лучше настраивать и использовать Byobu.

  • Я также был бы признателен, если бы ответ мог:

    • объяснить порядок / стек процесса запуска терминала (потому что это поможет мне понять, какие процессы «крадут» привязки клавиш)

    • пояснить, могу ли я неправильно использует любую терминологию

2
задан 22 September 2016 в 15:19

2 ответа

Короткий ответ

Отвечать на вопрос непосредственно:

Где конфигурационный файл для терминальных привязок клавиш?

В моем случае (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
  • TTY (TODO: Я не знаю, является ли это частью systemd или login?)

systemd-logind

Для Ubuntu 16.04 systemd-logind - то, где пользователь входит в систему, запускаются. Согласно странице справочника Ubuntu для systemd-logind.

systemd-logind является системной службой, которая справляется с пользовательскими логинами. Это ответственно за:

  • Отслеживая пользователей и сессии, их процессы и их состояние ожидания
  • Обеспечение находящегося в PolicyKit доступа для пользователей к операциям, таким как завершение работы системы или сон
  • Реализация логики ингибирования завершения работы/сна для приложений
  • Обработка аппаратных ключей питания/сна
  • Управление мультиместа
  • Управление коммутатором сессии
  • Управление доступом к устройствам для пользователей
  • Автоматическое порождение текстовых логинов (gettys) на активации виртуальной консоли и пользовательском управлении каталогом времени выполнения

См. также страницу справочника для logind.conf. Я не видел упоминания там о терминальных привязках клавиш.

TTY / настройка клавиатуры

Ссылки по теме о TTY / настройка клавиатуры:

Инструменты для TTY / раскладки клавиатуры:

удар (с readline библиотекой)

Ссылка удара gnu.org имеет хорошую документацию о функциях readline и ударе.

Эти конфигурационные файлы влияют на привязки клавиш:

  • привязки клавиш по умолчанию: /etc/inputrc
  • пользовательские привязки клавиш: ~/.inputrc

tmux

привязки клавиш tmux описаны здесь: https://wiki.archlinux.org/index.php/Tmux#Key_bindings

Определенный для пользователя конфигурационный файл должен быть расположен в ~/.tmux.conf, в то время как глобальный конфигурационный файл должен быть расположен в/etc/tmux.conf.

byobu

Byobu имеет привязки клавиш по умолчанию, которые могут быть определяемыми пользователем в /usr/share/byobu/keybindings/.

Происходящая работа

Примечание: этот ответ является происходящим работой. Могут быть ошибки. (Я нахожу легче указать, что, кажется, верно на основе моего чтения и обоснования, и исправляет его, если это неправильно.) Я обновлю это и удалю это уведомление, когда это будет ближе к завершению.

4
ответ дан 2 December 2019 в 01:36

Согласно руководству удара (доступный через командную строку 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. Я предполагаю, что Вы читаете страницы справочника и учебные руководства для получения понимания того, как они работают.

3
ответ дан 2 December 2019 в 01:36

Другие вопросы по тегам:

Похожие вопросы: