防止火狐生成Desktop文件夹
引子
近日发现Linux家目录中总会“自动”生成一个叫Desktop
的空文件夹,很是烦人。在各类常用软件中排查了很久,最终发现是火狐浏览器在启动时生成了它。然而软件内并没有任何关于Desktop文件夹的设置条目。
解决方法
因为火狐参考了XDG Base Directory规则,所以使用user-dirs.dirs
文件指定XDG_DESKTOP_DIR即可。
为什么要有Desktop
Firefox有一个功能,将网页中的链接拖拽到桌面上,能自动生成一个快捷方式。具体功能可在about:config
的browser.shell.shortcutFavicons
配置。官方说明网页。
创建Desktop的逻辑
使用DXR的搜索功能,在xpcom/io/SpecialSystemDirectory.cpp
文件第392行开始,摘录代码片段如上。可见当火狐发现XDG_DESKTOP_DIR
没有经过配置时,会主动赋值
成$HOME/Desktop
。对于XDG的其余配置并没有特殊的判断,并在第419行进行XDG配置项的目录创建操作。完整代码请参考FYI中提供的链接。
FYI
-
Youtube - 演示Firefox创建链接的快捷方式(Windows, FF58)
-
Mozilla Support - How do I stop firefox from recreating unwanted Desktop directory?
-
ArchLinux Forum - Firefox: stop making that Desktop directory!
-
Mozilla DXR - 源码:SpecialSystemDirectory.cpp
-
GNOME Wiki - XDG Base Directory Specification Usage
-
freedesktop.org Specifications - XDG Base Directory Specification