O problema inerente aos caminhos relativos é: relative para o que ?
Em relação ao diretório de trabalho do filho imediato do emulador de terminal (normalmente: seu shell) no momento de clicar com o botão Ctrl seria praticamente inútil, todos os seus links iriam quebrar assim que você cd
de distância.
O que você precisa, no mínimo, é ser relativo ao diretório do processo filho no momento em que o texto é emitido . Isso levanta alguns problemas. Primeiro, o emulador de terminal precisa estar ciente do diretório de trabalho de seu filho (via, por exemplo, a sequência OSC 7 ou alguma integração de shell mais próxima como no iTerm2), que poderia ainda estar incorreta durante a execução de utilitários que mudam internamente seu diretório de trabalho ( eg make
). Além disso, os emuladores precisariam lembrar essas informações para cada célula de caracteres impressos, o que poderia ser bastante caro.
Você pode estar interessado em um novo recurso de alguns emuladores de terminal: hiperlinks explícitos . Usando uma seqüência especial, o texto visível pode ser transformado em um hiperlink apontando para qualquer local. O alvo do hiperlink ainda precisa ser especificado como um URI absoluto, ainda que o texto exibido possa ser o que você quiser (talvez apenas um nome de caminho relativo ou mesmo algo totalmente diferente).