Execute a ação quando o conteúdo da área de transferência corresponder a regex

5

Eu uso o recurso Actions do utilitário Klipper do KDE para executar certos comandos quando copio algo na área de transferência que corresponde a uma determinada expressão regular. Infelizmente, tenho que ativar Ativar ações da área de transferência e selecionar o comando em um menu toda vez que eu copiar algo em que desejo executar o comando. Eu gostaria de ter esse comando executado automaticamente em vez disso.

Você acha que isso é possível, pois há uma caixa de seleção automático na caixa de diálogo de configurações de ação:

Infelizmente, isso parece não fazer nada. A documentação incluída no Klipper não indica o que essa caixa de seleção deve fazer.

É possível configurar o Klipper para executar um comando automaticamente se o conteúdo da área de transferência corresponder a uma expressão regular? Se não, existe outra maneira de conseguir isso?

    
por Patches 20.05.2011 / 11:37

1 resposta

3

Não encontrei uma maneira de dizer ao klipper para aplicar a ação automaticamente. O máximo que o klipper faz automaticamente é abrir um menu com as ações. Levará outro clique do mouse para aplicar a ação.

A caixa de seleção Automatic na caixa de diálogo de propriedades da ação tem o seguinte efeito: se você copiar um texto e o texto corresponder a uma expressão regular configurada, um menu com as ações correspondentes será exibido. Observe que Enable Clipboard Actions deve estar ativado para isso. Se Enable Clipboard Actions ou Automatic estiver desativado, nenhum menu aparecerá em uma cópia.

Para alternativas: Eu olhei em volta e não encontrei nenhum gerenciador da área de transferência que faz o que você quer (corresponde a regex, modifica automaticamente o conteúdo da área de transferência). Eu testei alguns gerenciadores de prancheta que oferecem uma funcionalidade semelhante ao klipper. Todos eles não aplicam as ações automaticamente, em vez disso, eles oferecem um menu popup para a ação configurada, assim como o klipper.

Parece que você terá que codificar sua própria solução.

Uma implementação ingênua pode ser assim:

  1. Monitore o conteúdo da área de transferência.
  2. Se o conteúdo mudar, combine com o regex.
  3. Se a regex corresponder, modifique o conteúdo da área de transferência.

Deve ser possível codificar usando, por exemplo, python e PyGTK ou < href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qclipboard.co.uk.html"> PyQt .

Como alternativa, você pode hackear um shell script usando o comando xclip -o para despejar o conteúdo da área de transferência e xclip -i para inserir o conteúdo modificado na área de transferência.

Eu encontrei um projeto que parece ter implementado o ponto número 1 e alguns do número 2 usando perl e o comando xclip : link . Talvez você possa começar a formar lá e modificá-lo para atender às suas necessidades.

    
por 24.05.2011 / 05:13