Como obter o endereço da janela ativa (pwd of gui)?

1

No Kubuntu, eu quero capturar o endereço da janela ativa (se houver, mais Home). Eu quero que isso faça um atalho de teclado personalizado para abrir o terminal (konsole no kubuntu) nesse diretório. Por exemplo: gnome-terminal --working-directory=/path/to/dir

EDIT: Para o dolphin, descobri que é por padrão Shift + F4 que pode ser configurado facilmente. Mas eu ainda quero saber como obter o endereço (também conhecido como $ PWD) na janela ativa (de qualquer gerenciador de diretórios). Se não houver um gerenciador de diretório aberto para a instância, defina um parâmetro padrão como ~ (Home).

    
por subtleseeker 19.01.2018 / 14:38

1 resposta

0

Para quais aplicativos, em particular, você deseja ter esse recurso? Se um determinado aplicativo não suportar isso, provavelmente, o mais fácil é se você corrige o problema para adicionar esse recurso.

Existem vários problemas fundamentais com a abordagem que você está procurando.

Primeiro, não sei se é possível localizar o processo que pertence a uma determinada janela. No X Window (talvez Wayland também, não tenho certeza), uma janela pode ser aberta por um processo remoto (isto é, executando em outro computador) e nenhum processo local pertencente a essa janela. Nesse caso, é obviamente impossível localizar o processo e descobrir seu diretório de trabalho. Não tenho certeza se há uma maneira de localizar pelo menos os processos locais, provavelmente não.

No Wayland, ter um atalho global que espreita as propriedades de outras janelas é provavelmente impossível devido ao seu modelo de segurança, embora eu não esteja familiarizado com os detalhes.

Mas vamos supor que de alguma forma você consiga localizar o processo pertencente à janela ativa no momento. Talvez usando heurísticas como "se o título da janela for Arquivos, localize o processo nautilus".

Você pode verificar facilmente o diretório de trabalho desse processo (em /proc/<PID>/cwd ), mas será o que você está procurando? Mais provável que não. Eu não estou familiarizado com o Dolphin, então vamos usar o Nautilus como nosso exemplo. É um processo único que pode abrir várias janelas, cada uma mostrando um diretório diferente. Como tal, ele claramente não pode alterar seu diretório de trabalho para aquele exibido, já que existem vários diretórios que ele mostra, mas um único diretório de trabalho que o processo pode ter. Então, o valor em /proc não te dá o que você está procurando. Não há nenhuma maneira razoável que você possa espiar o comportamento do processo na medida em que descobrirá a qual caminho do diretório pertence a qual janela, a menos que o aplicativo, de alguma forma, suporte explicitamente o fornecimento dessas informações para você.

    
por egmont 20.01.2018 / 11:40