1

Когда я нажимаю Ctrl+V, я не хочу, чтобы система просто вставляла информацию из буфера обмена. Я хочу что-то сделать с этой информацией (например, удалить что-то или изменить что-то в ней), а затем вставить измененную версию в поле. Сейчас я пытаюсь написать что-то вроде этого:

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

Это работает очень хорошо. Но проблема в том, что я не могу привязать скрипт к сочетанию клавиш Ctrl+V, в противном случае он, кажется, циклично работает все время (потому что в конце всегда есть Ctrl+V ). Есть ли способ обойти это? Например, запускать приложение так же, как Ctrl+V, чтобы мне не нужно имитировать системную комбинацию Ctrl+V ?

1 ответ1

0

Вам повезло. Я делал это с помощью Autokey в течение длительного времени.

Сначала установите autokey и python-tk:

sudo apt-get install autokey-gtk python-tk

Теперь запустите Autokey и создайте новый script . Напишите следующий код в сценарии:

from Tkinter import Tk

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

keyboard.send_keys(text)

Теперь нажмите на кнопку Set для опции Hotkey . Здесь вы можете установить свою горячую клавишу на Ctrl+V. Работает отлично. Что еще более круто, так это то, что вы также можете установить фильтр окна так, чтобы это поведение Ctrl+V было доступно только для определенных окон; в остальном будет вести себя нормально.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .