在 Linux 上,有什么办法可能让u盘等可移动媒体显示自定义的图标

如题,最近在折腾u盘,我知道 Windows 可以用 autorun.inf 来自定义一个可移动媒体在 explorer 显示的图标,我想知道 Linux 这些主流的桌面环境有没有类似的机制

  • 如果发错版了抱歉,我也不知道放在哪个版会比较合适

首先问一下你用的是哪个桌面环境?
Linux在这方面不像是windows,不同桌面环境配置也不一样

我用的是 KDE, dolphin 作为文件管理器

不过我想找一个比较通用的方案

这个我只有一点点思路,不过实现起来可能有点复杂,而且实现得不算100%还原:joy:
就是可以监测到U盘插入后在桌面创建一个指向这个u盘的.desktop文件,我能想到的也就这么多
你说想要让dolphin的侧边栏图标也变成自定义的,这个抱歉我也无能为力

我撤回一下,你可以在U盘创建一个.directory文件
vim /media/.directory
然后写入这些内容

[Desktop Entry]
Icon=/your/icon/path
Name=Your_device_name

一般都能识别得了:thinking:

我试了一下,至少 dolphin 是认识这个文件的,会在挂载的文件夹名字和标签页图标上显示这个图标,虽然侧边栏还是默认的图标

只不过 gnome 那个文件管理似乎不支持这一点...

追记:我刚刚试着在u盘上创建了一个 autorun.inf,然后 gnome files 似乎认识了:

别的文件管理器我还没测试

dwm的话,改一改https://github.com/pystardust/sbar shell 脚本,若用udiskie自动挂载,可以监测有没有新的文件夹例如/run/media/xyz/Ventoy,几行shell脚本就行了。dwm用xsetroot --name设置状态栏,阳春一点不想用sbar可以直接一个while循环里面一个sleep放到.xinitrc文件里,例如:


while :; do
	[ -d /run/media/xyz/Ventoy ] && xsetroot -name 'U' || xsetroot -name 'no U'
	sleep 5
done &

也可以用花哨一些的字体,emoji和图标不知道能不能用,好像有办法可以。sbar好处是用signal和trap让每个不同的状态不同时间轮询,不用也无所谓,我是用的,很简单的脚本。也可以监测其他文件或者用其他命令检测U盘插没插,我是觉得监测新文件/文件夹最无脑,虽然我不需要这个状态显示在状态栏,但我其他脚本就是用这方法监测的,还有可能可以用udev监测新的挂载然后发signal但是我没深入研究过。

编辑:搜了一下,udev的RUN可以运行脚本,见man udev,一般好像是用RUN+=,这不就能发signal了吗,udev就是经常拿来做监测挂载相关的,这大概是最接近“正确”的做法了。其他桌面系统我猜可能也是用udev+dbus之类的搞出来的。

好吧离题了,才看到你是用KDE

我有时候也用 niri 这种窗口管理器,但是我用的是 quickshell(小声

卧槽,quickshell好炫酷。可惜了,我早已懒到壁纸都不用了,2333