Modifica o texto antes de colar na janela X

1

Quando eu teclar Ctrl + V , não quero que o sistema apenas cole informações da área de transferência. Eu quero fazer algo com essa informação (por exemplo, excluir alguma coisa ou modificar algo nela) e depois colar a versão modificada no campo. Agora estou tentando escrever algo assim:

if [ condition ]; then
    xclip -selection clipboard -o|sed "s/something/another/g"|xclip -selection clipboard -i
fi
xdotool key --window $(xdotool getactivewindow) ctrl+v #mimic Ctrl+V keystroke

Funciona muito bem. Mas o problema é que não consigo vincular o script ao atalho Ctrl + V , caso contrário, ele parece estar circulando o tempo todo (porque sempre há um Ctrl) + V no final). Existe algum método para contornar isso? Por exemplo, executando um aplicativo como Ctrl + V , então não preciso imitar o sistema Ctrl + V combinação?

    
por Searene 10.10.2014 / 08:36

1 resposta

0

Você está com sorte. Eu tenho feito isso usando Autokey por um longo tempo.

Primeiro, instale o autokey e o python-tk:

sudo apt-get install autokey-gtk python-tk

Agora, inicie o Autokey e crie um novo script . Escreva o seguinte código no script:

from Tkinter import Tk

root = Tk()
root.withdraw()
text = root.clipboard_get() + "MODIFIED"

keyboard.send_keys(text)

Agora, clique no botão Set para a opção Hotkey . Aqui você pode definir sua tecla de atalho para Ctrl + V . Funciona perfeitamente. O que é ainda mais legal é que você também pode definir o filtro Window para que este comportamento de Ctrl + V esteja disponível apenas em janelas específicas; no resto, ele se comportará normalmente.

    
por 23.01.2015 / 13:19