AlmaLinux右键菜单(Gnome)

前言

在使用VSCode的过程中,AlmaLinux没能像Windows一样在右键菜单上显示打开方式,所以找了一下解决方案,罗列出来

前提说明

虽然说无论是media还是StackOverflow都推荐使用这条命令:

1
wget -qO- https://raw.githubusercontent.com/harry-cpp/code-nautilus/master/install.sh | bash

当然,如果你找的是年代比较久远的帖子,你看到的应该是

1
wget -qO- https://raw.githubusercontent.com/cra0zy/code-nautilus/master/install.sh | bash

这只是作者改了个名而已,使用第一个就好了。但是呢,我也查看了源码,对Ubuntu的支持较好,使用了apt-getdnf安装nautius-python,再将作者的Python脚本放入这个插件中,然后就能够出现Open in VSCode之类的字样。

实际上对于AlmaLinux的$9.2$与$9.3$来说都是适合的,因为AlmaLinux本来就有dnf。但是呢,我还是想直接利用现有的内容做一点修改。

在文件上右键

针对GNOME桌面,在右键菜单中考虑文件就需要在~/.local/share/applications/mimeapps.list中增加一个可选项,就像usr/share/applications/*.desktop中的文件一样给出一定的配置。

在这里我们仅针对html相关文件进行优化,于是增加配置:

1
2
3
4
[Added Associations]
text/html=code.desktop
text/css=code.desktop
text/javascript=code.desktop

当然,如此配置的前提是你有一个code.desktop,即已安装VSCode标准版,而不是VSCodium。如果你选择安装了VSCodium,也没有太大关系,将code.desktop修改为codium.desktop就好了。

P.S.:我个人选择的是源码安装VSCodium,所以codium.desktop是自己写的。如果安装的是deb或者rpm等安装包,可以选择使用安装包自动生成的内容。

这样设置之后,当你在html相关的文件上点击右键的时候,就会出现Open With Visual Studio Code,并且还有VSCode的小logo

在文件夹上右键

很可惜的是,目前还没有发现能够类似Windows一样在任意位置右键都能够打开文件夹的功能。所以我目前使用的是直接右键想要打开的文件夹,出现一个Scripts选项,然后选择其中的open in code选项。

如何实现呢?我们找到这个文件夹:~/.local/share/nautilus/scripts,在这里创建脚本文件open-in-code.sh,并写入如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/bash
if [ -n "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" ]; then
set $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
if [ $# -eq 1 ]; then
destination="$1"
else
zenity --error --title="Error - Open in Visual Studio Code" \
--text="You can only select one file/directory."
exit 1
fi
else
destination="`echo "$NAUTILUS_SCRIPT_CURRENT_URI" | sed 's/^file:\/\///'`"
fi

# It's only possible to go to local directories
if [ -n "`echo "$destination" | grep '^[a-zA-Z0-9]\+:'`" ]; then
zenity --error --title="Error - Open in Visual Studio Code" \
--text="Only local directories can be used."
exit 1
fi

exec code "$destination"

然后赋予权限:

1
$ sudo chmod +x ~/.local/share/nautilus/scripts/open-in-code.sh

如果你现在手头没有什么事情的话,重启就能生效。

但如果你有点事情不能立即重启,就需要想办法重启nautilus了。当然等到事情结束了再重启也行。

生效后,我们就可以如图所示使用VSCode打开文件夹:

右键菜单

虽然可能与你想象的不太一样,但是能用。