Modifica automaticamente o conteúdo da área de transferência (substituição do padrão regex) ao copiar e colar

4

Frequentemente, estou copiando pequenos trechos de texto separados e colando-os em outro lugar. Depois disso, eu sempre preciso editar o resultado colado de uma maneira bem definida, que pode ser descrita por meio de uma substituição de expressão regular semelhante a, e. sed ' s/PATTERN/REPLACEMENT/ command.

Eu gostaria de automatizar a parte de edição dessa tarefa fazendo com que um script processe automaticamente o conteúdo do buffer da área de transferência em algum momento entre copiar e colar e modificá-lo aplicando uma substituição de expressão regular configurada.

O padrão e a substituição real do regex devem ser inseridos pelo usuário quando o script é iniciado e também deve, de alguma forma, indicar que está sendo executado, por exemplo, deixando uma pequena janela de diálogo aberta e enviando uma notificação de desktop cada vez que uma modificação fosse feita.

    
por Byte Commander 19.01.2017 / 23:41

2 respostas

5

Introdução

A maneira como a pergunta é postada requer mais do que apenas um script simples, mas também uma interface GUI para habilitar / desabilitar o script. Eu descobri que seria mais fácil de conseguir através de um Indicador de Aplicação que seria acessível a partir do painel superior do Ubuntu. Essa resposta apresenta exatamente isso como uma solução.

O clipboard-autoedit-indicator , que escrevi especificamente para essa questão, permite a edição automática do conteúdo da área de transferência com base em uma expressão regex (escolha de sed ou re style de python). Ele usa o módulo de área de transferência do Gtk e as dependências mínimas, portanto, não há necessidade de instalar ferramentas adicionais, como xclip ou xsel .

Instalação

Execute os seguintes comandos no terminal:

sudo add-apt-repository ppa:1047481448-2/sergkolo
sudo apt-get update
sudo apt-get install clipboard-autoedit-indicator

Uso

O indicador pode ser iniciado digitando no Unity Dash Clipboard Autoedit ou chamando /usr/bin/clipboard-autoedit-indicator da linha de comando. Existem dois ícones indicadores (ícone da área de transferência colorida e acinzentada) para exibir quando a edição dinâmica da área de transferência é ativada / desativada. Quando a edição ocorre, a notificação é enviada ao usuário.

O item de menu "Set regex pattern" chama a caixa de diálogo zenity forms. Quando o usuário edita a regra regex, ela é lembrada e armazenada no arquivo ~/.clipboard-autoedit-config.json . A edição dinâmica será ativada automaticamente quando o usuário clicar no botão OK , mas os usuários podem desativá-lo através do item de menu de seleção "Recolocação habilitada". O tipo de regex é padronizado para o módulo re do python.

Código-fonte

O código-fonte está disponível sob a licença MIT em GitHub . Mais desenvolvimentos e versões mais recentes estarão lá, e se você tiver uma solicitação de recurso e / ou um relatório de bug, por favor envie-os no GitHub.

    
por Sergiy Kolodyazhnyy 22.01.2017 / 21:18
2

Isso é simples com xclip . Para o bit de notificação notify-send do pacote libnotify-bin deve atender às suas necessidades. Você pode precisar instalar os pacotes primeiro:

sudo apt-get install xclip libnotify-bin

Coloque o seguinte em um script e torne-o executável com um atalho de teclas:

#!/bin/bash

xclip -o | sed 's/pat/repl/' | xclip -i
notify-send "Clipboard" "Replacement done"
    
por Thor 20.01.2017 / 00:22