Ubuntu 22.10中如何为Super+中键上下文菜单添加自定义选项
嘿,这个需求真的很实用!我来一步步帮你实现,不管是加单个自定义脚本/命令,还是搞个代码片段子菜单,都能搞定。
首先明确一下:你说的Super+中键弹出的这个菜单,其实是GNOME Shell提供的全局快捷操作菜单,它会收录系统默认的快捷选项,以及用户自定义的应用/脚本快捷方式。下面分两种场景来操作:
一、添加单个自定义命令或脚本
这个步骤很简单,只需要创建一个桌面快捷方式文件就行:
准备你的脚本/命令
如果是自定义脚本,先把脚本写好,比如我创建一个~/scripts/quick-snippets.sh,内容是打开我的代码片段目录:#!/bin/bash nautilus ~/code-snippets/然后给它加上执行权限:
chmod +x ~/scripts/quick-snippets.sh创建桌面快捷方式文件
在~/.local/share/applications/目录下新建一个.desktop文件,比如命名为quick-snippets.desktop,内容如下:[Desktop Entry] Version=1.0 Type=Application Name=打开代码片段目录 Comment=快速访问我的常用代码片段 Exec=~/scripts/quick-snippets.sh Icon=folder-code NoDisplay=false Categories=Utility;Development;Exec:填你脚本的绝对路径,或者像上面那样用~/也可以Icon:可以用系统自带的图标名称,比如folder-code、text-editor,你可以在/usr/share/icons/目录下找喜欢的图标NoDisplay:设为false才能让这个快捷方式被系统菜单收录Categories:用来分类,方便菜单里的选项排序
刷新系统快捷方式缓存
运行下面的命令让系统识别这个新的快捷方式:update-desktop-database ~/.local/share/applications/
现在你再按Super+中键,就能看到这个新选项出现在菜单里啦!
二、创建自定义子菜单(比如代码片段列表)
如果想搞一个带多个子选项的菜单,原生GNOME Shell不支持直接创建,咱们可以用两种方法实现:
方法1:用MenuLibre可视化创建(更简单)
先安装MenuLibre:
sudo apt install menulibre打开MenuLibre,点击左上角的New Menu按钮,给你的子菜单起个名字,比如“我的代码片段”,设置好图标,然后点击Add Item来添加子选项:
- 每个子选项都可以关联一个脚本或命令,比如“Python代码片段”关联
nautilus ~/code-snippets/python/,“Shell脚本片段”关联nautilus ~/code-snippets/shell/ - 配置完成后,点击Save,MenuLibre会自动帮你生成对应的配置文件
- 每个子选项都可以关联一个脚本或命令,比如“Python代码片段”关联
同样刷新缓存:
update-desktop-database ~/.local/share/applications/
方法2:手动编写配置文件(更灵活)
先创建一个
.directory文件,放在~/.local/share/desktop-directories/目录下,比如my-snippets.directory:[Desktop Entry] Type=Directory Name=我的代码片段 Icon=folder-code Comment=我的常用代码片段集合然后给每个子选项创建对应的
.desktop文件,放在~/.local/share/applications/目录下,比如python-snippets.desktop:[Desktop Entry] Version=1.0 Type=Application Name=Python代码片段 Exec=nautilus ~/code-snippets/python/ Icon=language-python Categories=MySnippets;Utility;注意这里的
Categories要包含你刚才创建的目录名称MySnippets(和.directory文件的名称对应)刷新缓存后,你的子菜单就会出现在Super+中键的菜单里,点击就能展开看到各个子选项啦!
小提示
如果你的菜单没有立刻显示新选项,可以注销再登录一次,或者重启GNOME Shell(按Alt+F2,输入r回车)
备注:内容来源于stack exchange,提问作者Yuval B.

