Pantheon-Files具有为显示的文件/目录名称分配颜色的功能。我想在Bash / Python中创建一个脚本以自动执行相同操作。

#1 楼

低级sqlite方法

文件颜色关联存储在~/.config/marlin/marlin.db sqlite数据库中。您可以尝试对格式进行逆向工程,据我所知,有一个表tags,如转储中所示:

CREATE TABLE tags (id INTEGER PRIMARY KEY,
                   uri TEXT UNIQUE NOT NULL,
                   color INTEGER DEFAULT 0,
                   tags TEXT NULL,
                   content_type TEXT,
                   modified_time INTEGER DEFAULT 0,
                   dir TEXT );


更新/删除文件color

因此,基本上,您需要将基部中已经存在的颜色中的一种,如

UPDATE tags set color=1 WHERE uri = 'file:///home/user/test'


将文件~/test的颜色更改为黄色( 1)。
颜色似乎是0(无颜色)和1…9(黄色,橙色等,如文件“属性”对话框中所示)。

如果要删除颜色,只需设置color=0即可。

设置文件颜色

如果没有为指定的文件输入条目,则应进行一些整理:



id可能为NULL(如自动分配一样),

uri是要更改颜色的文件的URI

tags = NULL,因为现在没有什么特别的,

content_type您可能会使用file实用程序找到它,

modified_time似乎对b一个简单的Unix时间戳,

dir我不太清楚,但是父目录似乎是一个安全的选择。

该行似乎可以工作并设置了颜色之前~/new_file中的绿色未出现在数据库中(4):

INSERT INTO tags VALUES (NULL, 'file:///home/user/new_file', 4, NULL, 'text/plain', 1481148148, 'file:///home/user');


但是,请小心并仔细检查pantheon-files的源代码,因为这可能会导致您的数据库不一致。相关的源文件似乎是pantheon-files-daemon/marlind-tagging.vala