将应用程序分配给 .desktop 启动器时什么是重要的?

将应用程序分配给 .desktop 启动器时什么是重要的?

我一直在学习 Tkinter,因此我拿出一些 Python 程序并使它们在窗口中运行。

偶然的机会,我在Stack Overflow上看到了这种启动Python程序的方式,于是就尝试了一下。

然后我制作了一个图标并输入了这段代码/home/pedro/.local/share/applications/

[Desktop Entry]  
Type=Application   
Terminal=false     
Name=Mark CW and HW  
Exec=/home/pedro/myPython/tkinter/answersToExcel2.py  
Icon=/home/pedro/icons/icon4.png   
StartupWMClass=myTkApp

我以前从未做过这样的事情,但令我惊讶的是,它运行良好!我将图标锁定到启动器。现在我可以随时从启动器启动我的 Tkinter 窗口。

我的问题是:在哪里可以获得有关这种应该、必须或可以是什么的更多信息[Desktop Entry]

另外,如果由于某种原因 Python 代码失败(还没有发生,我首先在 Idle 中进行了彻底的测试)会在某处写入错误消息吗?

答案1

启动.desktop器遵循 freedesktop.org 桌面入口和菜单标准。一些标准键包括:

  • Name=应用程序的具体名称。
  • Comment=应用程序的简短描述。
  • Exec=启动应用程序的命令。
  • Icon=应用程序的图标(图标主题提供的图标或图像文件的绝对路径)。
  • Type=桌面条目类型,支持的有ApplicationLinkDirectory
  • Terminal= true/ false,应用程序是否在终端窗口中运行。
  • Categories=应用程序所属的类别(主要类别其他类别保留类别)。
  • StartupWMClass=非常有用

欲了解详细规格列表,请访问免费桌面网站


附言可用于创建应用程序启动器的各种 GUI 应用程序,例如'主菜单' (又名alacarte)或 '自由菜单'( menulibre),只是在后台的.desktop适当位置(例如)创建一个文件。~/.local/share/applications/

答案2

问题的另一部分:

为 CLI(以及一些 GUI 程序)设计的程序通常将所有信息和错误消息写入 stdout 和 stderr,这两个程序通常连接到终端/CLI。当您从 GUI 启动此类程序时,这些流通常连接到位存储桶 (/dev/null),所有此类消息都会丢失。

当 GUI 程序出现问题时,一个方便的技巧是从终端运行它。然后,它发出的任何此类消息都会有地方可以去,并可能告诉您为什么事情没有按预期进行。

许多 GUI 程序以这种方式运行时会变得非常杂乱。

在 KDE(可能还有其他程序)中,应用程序菜单编辑器允许您选择在终端中运行条目的选项。这样,当您运行此类条目时,终端窗口就会自动打开。程序完成后,终端窗口会关闭,因此如果您需要查看最终消息,您必须在最后添加一些暂停程序的内容或包装器脚本,以便您可以在消息消失之前阅读它们。

相关内容