使 Python IDLE 保持在启动器中

使 Python IDLE 保持在启动器中

我想要一个 Python 的图标整合前夕大号行动环境(闲置的) 在我的启动器中。当我通过仪表板启动 IDLE 时,我可以右键单击图标并选择“锁定到启动器”选项。但是,单击它之后,该选项仍然存在,而它应该被“从启动器中删除”选项取代。所以,显然,这不起作用。我能否以某种方式创建一个自定义文件,使 IDLE 的启动器图标出现?启动 IDLE 时发生的命令是

stefan@stefan-HP-Pavilion-13-x360-PC:~$ ps ax -f | grep python
stefan    2087  1922  0 12:30 ?        Sl     0:00 /usr/bin/python /usr/bin/glipper
stefan    3318  1751  0 13:14 ?        Sl     0:02 /usr/bin/python3 /usr/bin/idle3
stefan    3325  3318  0 13:14 ?        Sl     0:03 /usr/bin/python3 -c __import__('idlelib.run').run.main(True) 35780
stefan    3348  3124  0 13:19 pts/0    S+     0:00 grep --color=auto python

所以我必须以某种方式通过脚本实现涉及空闲的两个命令。

编辑:当我/usr/bin/idle3在终端中输入时,另一个命令/usr/bin/python3 -c __import__('idlelib.run').run.main(True)会自动执行,因此无需将其放入某个“启动”脚本中。启动程序所做的就是执行/usr/bin/idle

将图标从仪表板直接拖到启动器(正如雅各布所建议的那样) 将其保留在启动器中。但是,单击它后,会出现另一个图标,该图标与启动器图标不同,并且存在我在此处描述的缺陷。也许这个问题也可以解决?

答案1

最简单的解决方案

以下是您可以做的(比您担心的更简单:)):

  • 打开 Dash
  • 类型 Idle(或 Idle3,取决于版本)
  • 将图标从 Dash 拖到 Unity Launcher:

    在此处输入图片描述

    然后右键单击文本说:

    在此处输入图片描述

    (荷兰语意思是:“从启动器中移除”)

运行 Idle 的命令

为了完成答案:要运行的命令Idle是:

/usr/bin/idle

或针对特定版本,例如:/usr/bin/idle3,或:/usr/bin/idle-python3.4

只需在.desktop文件内部的/usr/share/applications行中查看,并从Exec=正确的命令开始。

启动时防止空闲时出现额外的图标

Idle 会生成“顶层”窗口WM_CLASS。要使这些窗口显示在您刚刚放入启动器中的相同图标下,请执行以下操作:

  • 将全局idle.desktop文件从复制/usr/share/applications~/.local/share/applications

    cp /usr/share/applications/idle.desktop ~/.local/share/applications
    
  • 打开文件(将其拖到打开的gedit窗口上)。

  • 在文件底部添加以下行:
    StartupWMClass=Toplevel
  • 注销并重新登录。从那时起,所有Idle窗口将出现在一个图标下:

    在此处输入图片描述

就是这样...


编辑

由于WM_CLASS在 Unity 中一个窗口原则上一次只能出现在一个启动器图标下,因此请注意:

虽然可能性很小,但将Toplevel窗口分组到Idle图标下可以在极少数情况下会出现缺点:

  1. 如果Idle您同时运行不同版本(例如python同时编辑两个版本的代码),所有窗口都分组在首先启动的版本的图标下:

    在此处输入图片描述

  2. 如果你运行python应用程序,使用tkinterGUI(现在很不常见),通常使用以下命令将辅助窗口设置为主窗口的“子窗口”wm_transient()

    在“未经打磨”的应用程序中(例如Idle),情况可能并非如此。在这种情况下,辅助窗口(中的“顶层”窗口tkinter)也将显示在Idle图标下方,如果艾德尔先跑了。

但是,正常情况下这种情况可能永远不会发生,如果发生了,除了我所描述的情况外,它不会造成任何危害。

相关内容