最近更新于 2024-04-08 17:27

因为我要在 Ubuntu 20.04 上使用 Pycharm,下载下来后发现居然不是安装包,而是可以直接运行的程序(放在 Windows 上叫做绿色版软件)。启动入口是一个脚本文件(pycharm.sh),每次要通过终端执行命令运行就很麻烦,我给它增加了可执行权限,但是也不能直接双击运行,一双击就打开编辑器让我编辑这个脚本……

想着运行后,将 PyCharm 固定到左边收藏夹,可能因为是脚本所以收藏也没有

那么就考虑创建 .desktop 文件(快捷方式)

Ubuntu 20.04 的应用程序快捷方式存放路径是在 /usr/share/applications(对所有用户)和 ~/.local/share/applications (当前用户)

我系统安装了 vscode 的,想来 vscode 和 pycharm 都是开发工具,性质类似,那么就参考 vscode 的快捷方式来写,下面将 /usr/share/applications/code.desktop 文件内容放到下面并添加了注释,方便参阅

[Desktop Entry]
Name=Visual Studio Code  # 应用名字
Comment=Code Editing. Redefined.  # 注释
GenericName=Text Editor  # 描述
Exec=/usr/share/code/code --unity-launch %F  # 执行的命令
Icon=com.visualstudio.code  # 图标路径
Type=Application  # 快捷方式类型为应用程序
StartupNotify=false  # 是否需要在终端中执行
StartupWMClass=Code  # WM_CLASS 分类,我也不知道着是各啥,不过可以先运行一个该快捷方式对象的程序窗口,然后打开终端执行 xprop WM_CLASS,然后点击程序窗口就会显示出来,再设置到这里就行
Categories=TextEditor;Development;IDE;  # 应用类型
MimeType=text/plain;inode/directory;application/x-code-workspace;  # 具体不清楚,可能是程序可以打开的文件类型吧
Actions=new-empty-window;  # 应该就是在收藏夹 vscode 图标上右键看到的那个选项(下图一),然后后面空行隔开的那段对应点击这个选项的操作(创建新窗口)
Keywords=vscode;  # 字面意思就是关键词

[Desktop Action new-empty-window]
Name=New Empty Window
Exec=/usr/share/code/code --new-window %F
Icon=com.visualstudio.code

# 其中 Exec 常用的参数有:%f %F %u %U
# %f:单个文件名,即使选择了多个文件。如果已选择的文件不在本地文件系统中(比如说在HTTP或者FTP上),这个文件将被作为一个临时文件复制到本地,%f将指向本地临时文件;
# %F:文件列表。用于程序可以同时打开多个本地文件。每个文件以分割段的方式传递给执行程序。
# %u:单个URL。本地文件以文件URL或文件路径的方式传递。
# %U:URL列表。每个URL以分割段的方式传递给执行程序。本地文件以文件URL或文件路径的方式传递。

然后为我这里的 pycharm 编写一个快捷方式,以 root 身份在创建文件 /usr/share/applications/pycharm.desktop,编辑内容

[Desktop Entry]
Name=PyCharm
Comment=Python Code Editing. Redefined.
GenericName=Text Editor
Exec=/home/yx/pycharm-community-2021.3.3/bin/pycharm.sh
Icon=/home/yx/pycharm-community-2021.3.3/bin/pycharm.png
Type=Application
StartupNotify=false
StartupWMClass=jetbrains-pycharm-ce
Categories=TextEditor;Development;IDE;
MimeType=text/plain;inode/directory;application/x-code-workspace;
Keywords=pycharm;

现在就可以在系统搜索框搜到 pycharm 了

也能添加到收藏夹,方便启动运行

注:对于 Debian 系 Linux 编写快捷方式应该都通用,其它的我就不清楚了