Как установить горячую клавишу для открытия выбранного файла в наутилусе?

Кажется, исправлено с

gsettings set org.gnome.shell.window-switcher current-workspace-only true
gsettings set org.gnome.shell.app-switcher current-workspace-only true
1
задан 27 February 2017 в 06:54

1 ответ

Открытие выбранного файла в определенном приложении из ярлыка

Вдохновленный концепцией @Serg (+1), другой подход к тому, как его реализовать:

Сценарий

#!/usr/bin/env python3
import subprocess
import pyperclip

subprocess.call(["xdotool", "key", "Control_L+c"])
subprocess.Popen(["gimp", pyperclip.paste()])

Как использовать

Для сценария нужны как pyperclip, так и xdotool (для использования xdotool- less, см. примечания): для 16.04+:
sudo apt-get install python3-pyperclip xdotool
для 14.04:
sudo apt-get install python3-pip xdotool
sudo pip3 install pyperclip
Скопируйте сценарий в пустой файл, сохраните его как open_ingimp.py. Добавьте его в короткий ключ: Выберите: «Системные настройки»> «Клавиатура»> «Ярлыки»> «Пользовательские ярлыки». Нажмите «+» и добавьте команду:
python3 /path/to/open_ingimp.py

Вот и все. Теперь выберите действительный документ и нажмите комбинацию клавиш.

Объяснение

При нажатии Ctrl + C при выборе файла путь к файлу копируется в буфер обмена. Мы имитируем это следующим образом:
subprocess.call(["xdotool", "key", "Control_L+c"])
Оказывается, модуль python pyperclip просто создает путь, лишенный file:// при использовании pyperclip.paste() (это не будет буквально вставляться, но сделать путь доступным внутри скрипт). Затем все, что нам нужно сделать, это запустить команду, чтобы открыть файл с помощью gimp.
subprocess.Popen(["gimp", pyperclip.paste()])

Примечания

При нажатии Ctrl + C, когда выбран файл, путь к файлу копируется в буфер обмена. Мы имитируем это с помощью:
subprocess.call(["xdotool", "key", "Control_L+c"])

При нажатии Ctrl + C, в то время как файл выбран, путь к файлу копируется в буфер обмена. Мы имитируем это следующим образом:

Оказывается, модуль python pyperclip просто создает путь, лишенный file:// при использовании pyperclip.paste() (это не будет буквально вставлять, но сделать путь доступен внутри скрипта).
2
ответ дан 23 May 2018 в 01:11
  • 1
    это работало после установки следующего 14.04 LTS. 'sudo apt-get install xclip' 'sudo apt-get -y install python3-pip' 'sudo python3.4 -m pip install pyperclip' Ожидание ответа Серга. Использование того, что доступно по умолчанию, было бы хорошо. – Seek Truth 26 February 2017 в 06:13
  • 2
    @SeekTruth Сценарий не использует xclip вообще , ни pyperclip (2) , только python3-pyperclip , инструкция в ответе sudo apt установить python3-pyperclip xdotool , чего достаточно. Вы используете его с python (2)? В инструкциях упоминается python3 /path/to/open_ingimp.py – Jacob Vlijm 26 February 2017 в 10:56
  • 3
    @SeekTruth Я изменил apt на apt-get для обратной совместимости с 14.04. Для 14.04, sudo apt-get install python3-pyperclip xdotool действительно должно быть достаточно. – Jacob Vlijm 26 February 2017 в 11:15
  • 4
    Я попытался выполнить sudo apt-get install python3-pyperclip безрезультатно. Я читал в другом месте, что pyperclip имеет xclip как зависимость. Я также не устанавливал xdotool, потому что использовал ручной ctrl + c. – Seek Truth 27 February 2017 в 06:31
  • 5
    В самом деле, это так: Doing apt-cache show python3-pyperclip | grep 'Depends' возвращает следующий вывод: Depends: xclip, python3-pyqt4. Эффективно использование pyperclip не отличается от установки xclip в качестве пакета и вызова его из скрипта в качестве внешней программы. Преимущество xclip заключается в том, что вы можете использовать его из командной строки или просто командной строки. Это хорошая программа, я использовал ее в прошлом. – Sergiy Kolodyazhnyy 27 February 2017 в 07:03

Другие вопросы по тегам:

Похожие вопросы: