![如何通过桌面快捷方式将参数传递给命令而无需打开终端?](https://linux22.com/image/72479/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%E6%A1%8C%E9%9D%A2%E5%BF%AB%E6%8D%B7%E6%96%B9%E5%BC%8F%E5%B0%86%E5%8F%82%E6%95%B0%E4%BC%A0%E9%80%92%E7%BB%99%E5%91%BD%E4%BB%A4%E8%80%8C%E6%97%A0%E9%9C%80%E6%89%93%E5%BC%80%E7%BB%88%E7%AB%AF%EF%BC%9F.png)
我使用的是 LXDE 桌面。
我在桌面上创建了一个 python 程序的快捷方式,可以将文件传递给该程序,然后在 GUI 中打开这些文件。
我的意思是通过将文件(文件绝对路径)拖放到桌面上的快捷方式上来将文件(文件绝对路径)传递给命令。
事实上,这已经有效,但前提是我在桌面条目中设置 Terminal=true,这显然会使终端打开。我想知道是否有一种方法可以将参数传递给命令而无需打开终端。
我正在创建这样的快捷方式:
[Desktop Entry]
Name=TBOPlayer
Comment=UI for omxplayer
Exec=python /path/to/tboplayer/tboplayer.py "%F"
Icon=/usr/share/pixmaps/python.xpm
Terminal=true
Type=Application
有没有办法做到这一点?
答案1
您的意思是您希望 .desktop 启动器始终有一个特定选项,还是您希望出现某种对话框以便您在需要时输入选项?
我假设是前者,在这种情况下只需将选项添加到您的Exec
行中:
Exec=python /path/to/tboplayer/tboplayer.py --foo "%F"
答案2
作为记录。
要做到这一点,必须正确构建他们的脚本:
#!/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
,正如名称所述,启动通知将关闭,旋转等待图标或任何此类内容。