Link clicável + menu popup

6

É possível ter um link clicável, no meu PS1 , que abre um menu pop-up ou algo semelhante?

Meu cenário

Personalizei meu .bashrc para mostrar meu PS1 como

user@machine: path #/$

e se eu estiver dentro de um repositório git, ele também mostra minha ramificação e um caractere diferente para o status

user@machine: path [branch !] #/$

A propósito, eu tenho o código para fazer isso aqui no Ask Ubuntu.

Minha ideia

O que eu queria era clicar no nome da ramificação e uma lista das ramificações baixadas é mostrada (com ou sem a opção de alterá-lo).

Eu encontrei algumas opções "dialog" e "select / choice" para o menu pop-up, mas não consegui encontrar nada para o link clicável.

    
por res 09.05.2018 / 13:38

1 resposta

5

Se eu tivesse para fazer isso, escolheria um emulador de terminal como o Terminator e escreve um novo plugin . Eu poderia ter que hackear como tudo isso funcionava, mas deveria ser possível para o Terminator pegar o texto e então, usando o que ele sabe sobre o ambiente do shell, apresentar um menu GTK3 para seleção.

A única outra maneira que eu posso pensar em completamente lidar com isso é escrever sua própria substituição de shell. Algo que envolve o bash (et al) e lida com o envolvimento do mouse. Há coisas lá fora, como o PyScreen, que fazem isso, mas não há nada lá fora que faça o que você quer diretamente. Os terminais de proximidade também são uma receita para erros de renderização. Mesmo coisas maduras neste espaço (por exemplo, screen ) ocasionalmente atrapalham as coisas.

Mais do que qualquer coisa, nenhum destes é um exercício de 20 minutos. O plugin me levaria horas, o shell provavelmente levaria dias para acertar. Eu provavelmente empurrei para trás quem estava me dizendo para fazer isso e dizer que é um uso antieconômico do meu tempo.

Se eu apenas quisesse isso para mim, provavelmente escreveria apenas um pequeno comando br que listava os ramos e permitia que eu escolhesse. Existem exemplos por aí, mas não vou apresentar ninguém como a melhor solução. Eles são todos um compromisso sobre o que você queria.

por Oli 09.05.2018 / 15:38