Question Où est le fichier de configuration pour les raccourcis clavier? [fermé]


Je voudrais inspecter / modifier / remapper les raccourcis clavier sur mon terminal serveur Ubuntu. (Je n'utilise aucune interface graphique. Je parle du terminal nue, TTY1).

Ma question principale est la suivante:

  • Où est le fichier de configuration pour les raccourcis clavier?

Contexte: (J'écris ce contexte pour aider les lecteurs à comprendre d'où je viens.)

  • Je voudrais comprendre mes raccourcis clavier de «bas niveau» pour que je puisse mieux configurer et utiliser Byobu.

  • J'apprécierais aussi si une réponse pouvait:

    • expliquer l'ordre de traitement / la pile du démarrage du terminal (car cela m'aidera à comprendre quels processus «volent» les raccourcis clavier)

    • clarifier si j'utilise une terminologie incorrecte


2
2017-09-21 19:08


origine


Votre interactif coquille utilise probablement le readline bibliothèque, dont les liaisons par défaut sont configurées dans /etc/inputrc (remplaçable par un personnel ~/.inputrc). En dessous, il y a terminfo - Mais je crains que ce ne soit pas des mers inconnues. Vous ne savez pas si c'est ce que vous recherchez? - steeldriver
@steeldriver Oui, une réponse dans ce sens serait utile, surtout si vous ajoutez des liens pour référence. - David J.
Vous commencez par poser des questions sur TTY, mais continuez à poser des questions sur Byobu, puis vous posez des questions sur le processus de démarrage / ouverture de terminal. C'est beaucoup trop large et partout. Je vous suggère fortement de clarifier votre question et de la réduire à une seule question claire. AskUbuntu n'est pas un forum, nous traitons de questions précises et précises - Sergiy Kolodyazhnyy
@Serg: Je suis un utilisateur de longue date de Stack Overflow, donc je peux apprécier votre méta-commentaire. Cependant, je me demande si vous ne comprenez peut-être pas ce que j'ai écrit pour une raison quelconque. Pour répondre à vos points: Le paragraphe 1 de mon post concerne ce que j'essaie de faire. Le paragraphe 2 est ma question centrale: "Où est le fichier de configuration pour les raccourcis clavier du terminal?". Le reste concerne le contexte. Donc, cette question a une question claire. Les autres parties concernent le contexte afin qu'une réponse puisse être utile au maximum pour moi. - David J.


Réponses:


Réponse courte

Pour répondre directement à la question:

Où est le fichier de configuration pour les raccourcis clavier?

Dans mon cas (Ubuntu 16.04 avec bash), La réponse de Serge est utile. (Bien que je ne sois pas tout à fait certain de couvrir toutes les liaisons clés susceptibles d'entrer en conflit, c'est pourquoi j'écris cette réponse plus longue.) Bash configure les raccourcis clavier dans ces fichiers:

  • raccourcis clavier par défaut: /etc/inputrc
  • raccourcis clavier personnalisés: ~/.inputrc

Longue réponse

Dans cette section, je voudrais être un peu plus complet. Alors que bash et readline affectent les liaisons de clé, ce sont d'autres processus impliqués. Par exemple, comment ALT-2 être lié à TTY # 2?

Vue d'ensemble

En résumé, voici les pièces impliquées sur ma machine Ubuntu Server 16.04. Je commence par systemd, Le système d'initialisation d'Ubuntu.

  • systemd départs systemd_logind.
  • systemd_logind commence TTY1 avec login.
  • login départs bash.
  • bash utilise le readline bibliothèque.
  • bash court ~/.bashrc qui commence finalement byobu
  • byobu, sur mon système, utilise tmux comme back-end

(Remarque: systemd est utilisé dans Ubuntu 15.04 et 16.04. Parvenu était le système init pour Ubuntu 6.10 à 15.10, selon https://en.wikipedia.org/wiki/Ubuntu_version_history.)

En pratique, les composants suivants piègent certaines pressions:

  • systemd-logind (pièges ALT-1, ALT-2 etc).
  • login
  • bash en utilisant le readline bibliothèque
  • tmux
  • byobu
  • le TTY (TODO: je ne sais pas si cela fait partie de systemd ou login?)

systemd-logind

Pour Ubuntu 16.04, systemd-logind est l'endroit où les connexions utilisateur commencent. Selon le Page de manuel Ubuntu pour systemd-logind .

systemd-logind est un service système qui gère les connexions utilisateur. Il est responsable de:

  • Suivre les utilisateurs et les sessions, leurs processus et leur état d'inactivité
  • Fournir un accès basé sur PolicyKit aux utilisateurs pour des opérations telles que l'arrêt du système ou la mise en veille
  • Implémentation d'une logique d'inhibition d'arrêt / veille pour les applications
  • Manipulation des clés matérielles d'alimentation / veille
  • Gestion multi-siège
  • Gestion des commutateurs de session
  • Gestion de l'accès au périphérique pour les utilisateurs
  • Création automatique de connexions de texte (gettys) sur l'activation de la console virtuelle et la gestion des répertoires d'exécution utilisateur

Voir aussi le page de manuel pour logind.conf. Je n'y ai vu aucune mention de raccourcis clavier.

TTY / configuration du clavier

Liens connexes sur la configuration TTY / clavier:

Outils pour les dispositions TTY / clavier:

bash (avec la bibliothèque readline)

le gnu.org référence de bash a une belle documentation sur les fonctions bash et readline.

Ces fichiers de configuration affectent les liaisons de clé:

  • raccourcis clavier par défaut: /etc/inputrc
  • raccourcis clavier personnalisés: ~/.inputrc

tmux

Les raccourcis clavier tmux sont décrits ici: https://wiki.archlinux.org/index.php/Tmux#Key_bindings

Un fichier de configuration spécifique à l'utilisateur doit se trouver dans ~ / .tmux.conf, tandis qu'un fichier de configuration global doit se trouver dans /etc/tmux.conf.

byobu

Byobu a liaisons par défaut qui peut être défini par l'utilisateur dans /usr/share/byobu/keybindings/.

Travail en cours

Note: cette réponse est un travail en cours. Il peut y avoir des erreurs. (Je trouve plus facile de dire ce qui semble être vrai sur la base de mes lectures et de mes raisonnements, et de le corriger s’il n’est pas correct.)


4
2017-09-21 23:15





Selon le manuel bash (accessible via la ligne de commande man bash ), les raccourcis clavier personnalisés peuvent être configurés via ~/.inputrc fichier. Les raccourcis clavier personnalisés sont définis comme suit:

  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"

Lorsque le terminal démarre et transmet le contrôle à votre shell (qui est bash généralement), il lit les fichiers de configuration, y compris ~/.inputrc. La bibliothèque readline est ce qui permet en fait ce comportement et permet également vi ou emacs mode d'édition D'autres shells peuvent ne pas être compatibles avec readline, par exemple ksh, donc vous devriez vraiment utiliser vi/emacs édition plus Dans ce cas, les raccourcis sont les mêmes que pour vi et emacs éditeurs de texte.

Le byobu n'est pas vraiment lié à ~/.inputrc et bash readline: utilise beaucoup de ses raccourcis clavier et paramètres personnalisés, qui proviennent principalement du backend utilisé - screen ou tmux. Je vous suggère de lire des pages de manuel et des didacticiels pour comprendre comment cela fonctionne.


3
2017-09-21 21:33