我自己今天偶然发现了这个问题,并做了一点逆向工程。所以实际上,将完成你想要的东西基本步骤:
清除整个数据库。 (这不是强制性的,但让一切更容易)
DELETE FROM data
DELETE FROM displays;
DELETE FROM pictures;
DELETE FROM preferences;
DELETE FROM prefs;
DELETE FROM spaces;
添加一个空行到pictures
表。就我所了解的情况而言,这种方式可以作为回退功能,macOS根据我们现在定义的所有内容自动创建具有相应显示ID和空间ID的附加行。
INSERT INTO pictures (space_id, display_id) VALUES (null, null);
加入您的实际喜好来data
表。
INSERT INTO data (value) VALUES ('~/Pictures'); -- #10
INSERT INTO data (value) VALUES (60); -- #11
INSERT INTO data (value) VALUES (5); -- #2
INSERT INTO data (value) VALUES (0.07); -- #3, #4, #5
INSERT INTO data (value) VALUES ('current-wallpaper.jpg'); -- #16
INSERT INTO data (value) VALUES (1); -- #11/#12
现在,这是最重要的部分 - 与适当的MacOS的内部优先按键数据的实际映射。这是我发现至今:
#1: Image path
#2: Scaling method (Fill Screen (1), Center (3), Stretch to Fill Screen (4), Fit to Screen (5))
#3: Fill color
#4: Fill color
#5: Fill color
#9: Enable automatic changing
#10: Directory path to images
#11: Image changing interval
#12: Random order
#16: Current image (used when automatic changing is enabled)
因此,所有你需要做的是,以配合上面列出的键数据行的ID。例如
INSERT INTO preferences (key, data_id, picture_id) VALUES (11, 2, 1);
上述装置的线:用于第一图像从data
表使用第二行(→60)作为Image changing interval
(#11)(在我们的情况下,意味着所有的空格/默认显示器) 。
在我来说,我想改变墙纸每分钟从特定文件夹一个随机图像与适合屏幕启用和7%明亮的黑色背景颜色。我用它来实现它:
sqlite3 ~/Library/Application\ Support/Dock/desktoppicture.db " \
DELETE FROM data; \
DELETE FROM displays; \
DELETE FROM pictures; \
DELETE FROM preferences; \
DELETE FROM prefs; \
DELETE FROM spaces; \
INSERT INTO pictures (space_id, display_id) VALUES (null, null); \
INSERT INTO data (value) VALUES ('~/Pictures'); \
INSERT INTO data (value) VALUES (60); \
INSERT INTO data (value) VALUES (5); \
INSERT INTO data (value) VALUES (0.07); \
INSERT INTO data (value) VALUES ('198.png'); \
INSERT INTO data (value) VALUES (1); \
INSERT INTO preferences (key, data_id, picture_id) VALUES (2, 3, 1); \
INSERT INTO preferences (key, data_id, picture_id) VALUES (3, 4, 1); \
INSERT INTO preferences (key, data_id, picture_id) VALUES (4, 4, 1); \
INSERT INTO preferences (key, data_id, picture_id) VALUES (5, 4, 1); \
INSERT INTO preferences (key, data_id, picture_id) VALUES (9, 6, 1); \
INSERT INTO preferences (key, data_id, picture_id) VALUES (10, 1, 1); \
INSERT INTO preferences (key, data_id, picture_id) VALUES (11, 2, 1); \
INSERT INTO preferences (key, data_id, picture_id) VALUES (12, 6, 1); \
INSERT INTO preferences (key, data_id, picture_id) VALUES (16, 5, 1); \
" && killall Dock
希望这可以帮助任何人在那里挣扎。