Как передать аргументы команде через ярлык на рабочем столе, не открывая терминал?

Поскольку мой предыдущий ответ был удален и преобразован в комментарий, который я не могу ни редактировать, ни добавлять новый, дополнительная информация:

Я не думаю, что вы можете это сделать это с одним лишь зенитом. zenity должен будет пересылать информацию о таких событиях окна, которые не предназначены для изменения размера и минимизации / максимизации. По сути, вам придется реализовать обработчик событий в уродливом цикле, который выполняет итерацию по состоянию вашего окна. Если вы это сделаете, вероятно, будет проще написать для этого свое собственное небольшое приложение QT / QML / любое другое.

wmctrl может изменять размер и сворачивать / разворачивать, но вам нужно будет перехватывать события для его запуска. devilspie может поймать эти события, но в целом это было бы довольно хакерским делом.

Не могли бы вы подробнее рассказать об общем сценарии использования? Почему бы просто не закрепить ваше окно в фиксированном положении и не добавить к нему кнопку, которая минимизирует диалоговое окно zenity, которое вы затем можете обрабатывать в своем скрипте с помощью wmctrl и возвращать значения вызова zenity?

1
08.09.2015, 00:53
2 ответа

Вы хотите, чтобы определенный параметр всегда был верен для средства запуска .desktop, или вы хотите, чтобы появилось какое-то диалоговое окно, которое позволит вам вводить параметры, когда вам нужно?

Я предполагаю первое, и в этом случае просто добавьте параметры в строку Exec :

Exec=python /path/to/tboplayer/tboplayer.py --foo "%F"
0
28.01.2020, 01:35

Для протокола.

Для этого нужно правильно построить свой сценарий:

#!/usr/bin/python

import os, sys

if __name__ == '__main__':
    input_file = sys.argv[1]
    # do your stuff

и файл.desktop

[Desktop Entry]
Comment=description
Exec=python /path/to/script.py "%F"
Icon=/usr/share/pixmaps/xterm.xpm
Name=script name

StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application

Наиболее важным является Terminal=false, который предотвращает запуск терминала. Можно также отключить уведомление о запуске StartupNotify=false, которое отключит, как указано в названии, вращающийся значок ожидания или что-то в этом роде.

0
23.05.2021, 14:39

Теги

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