Est-il possible d'avoir un lien cliquable, dans mon PS1
, qui ouvre un menu contextuel ou quelque chose de similaire?
J'ai personnalisé mon .bashrc
, pour montrer mon PS1
comme
user@machine: path #/$
et si je suis dans un référentiel git, il montre également ma branche et un caractère différent pour le statut
user@machine: path [branch !] #/$
Au fait, j'ai le code pour le faire ici dans Ask Ubuntu.
Ce que je voulais, c’était de cliquer sur le nom de la branche et une liste des branches téléchargées s’affiche (avec ou sans possibilité de la modifier).
J'ai trouvé des options de "dialogue" et de "sélection/choix" dans le menu contextuel, mais rien n'a été trouvé pour le lien cliquable.
Si je devais faire cela, je choisirais un émulateur de terminal tel que Terminator et écris un nouveau plugin . Je devrais peut-être expliquer comment cela a fonctionné, mais Terminator devrait pouvoir récupérer le texte puis, en utilisant ce qu’il sait de l’environnement Shell, présenter un menu de sélection GTK3.
La seule autre façon dont je puisse penser à fond consiste à écrire votre propre remplacement Shell. Quelque chose qui entoure bash (et al) et gère la participation de la souris. Il y a des choses comme PyScreen qui font cela, mais rien ne fait ce que vous voulez directement. Proxy des terminaux est également une recette pour les bugs de rendu. Même les objets matures dans cet espace (par exemple, screen
) gâchent parfois les choses.
Plus que tout, aucun de ces exercices n’est un exercice de 20 minutes. Le plugin me prendrait des heures, le Shell prendrait probablement des jours pour bien faire les choses. Je repousserais probablement ceux qui me disaient de le faire et disaient que c'était une utilisation peu économique de mon temps.
Si je le voulais juste pour moi-même, j'écrirais probablement juste une petite commande br
qui listait les branches et me permettait de choisir. Il existe des exemples mais je ne présenterai aucun d'entre eux comme étant la meilleure solution. Ils sont tous un compromis sur ce que vous vouliez.