summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Hoang <Enzime@users.noreply.github.com>2024-05-14 12:22:58 +1000
committerGitHub <noreply@github.com>2024-05-14 12:22:58 +1000
commitde8b0d60d6fd34f35abffc46adc94ebaa6996ce2 (patch)
treed5754f0f8f13ca8eb483d50069a729a1b786526c
parent230a197063de9287128e2c68a7a4b0cd7d0b50a7 (diff)
parent457a5d99529818fdbcf3af17b3604a8ab778bc0b (diff)
Merge pull request #928 from rmgpinto/persistent-others
Add persistent others to dock
-rw-r--r--modules/system/defaults/dock.nix13
-rw-r--r--tests/fixtures/system-defaults-write/activate-user.txt30
-rw-r--r--tests/system-defaults-write.nix1
3 files changed, 44 insertions, 0 deletions
diff --git a/modules/system/defaults/dock.nix b/modules/system/defaults/dock.nix
index 27772ca..b48486e 100644
--- a/modules/system/defaults/dock.nix
+++ b/modules/system/defaults/dock.nix
@@ -136,6 +136,19 @@ in {
else map (app: { tile-data = { file-data = { _CFURLString = app; _CFURLStringType = 0; }; }; }) value;
};
+ system.defaults.dock.persistent-others = mkOption {
+ type = types.nullOr (types.listOf (types.either types.path types.str));
+ default = null;
+ example = [ "~/Documents" "~/Downloads" ];
+ description = lib.mdDoc ''
+ Persistent folders in the dock.
+ '';
+ apply = value:
+ if !(isList value)
+ then value
+ else map (folder: { tile-data = { file-data = { _CFURLString = folder; _CFURLStringType = 15; }; }; }) value;
+ };
+
system.defaults.dock.show-process-indicators = mkOption {
type = types.nullOr types.bool;
default = null;
diff --git a/tests/fixtures/system-defaults-write/activate-user.txt b/tests/fixtures/system-defaults-write/activate-user.txt
index 1021ab3..5fa5952 100644
--- a/tests/fixtures/system-defaults-write/activate-user.txt
+++ b/tests/fixtures/system-defaults-write/activate-user.txt
@@ -255,6 +255,36 @@ defaults write com.apple.dock 'persistent-apps' $'<?xml version="1.0" encoding="
</dict>
</array>
</plist>'
+defaults write com.apple.dock 'persistent-others' $'<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <dict>
+ <key>tile-data</key>
+ <dict>
+ <key>file-data</key>
+ <dict>
+ <key>_CFURLString</key>
+ <string>~/Documents</string>
+ <key>_CFURLStringType</key>
+ <integer>15</integer>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>tile-data</key>
+ <dict>
+ <key>file-data</key>
+ <dict>
+ <key>_CFURLString</key>
+ <string>~/Downloads</string>
+ <key>_CFURLStringType</key>
+ <integer>15</integer>
+ </dict>
+ </dict>
+ </dict>
+</array>
+</plist>'
diff --git a/tests/system-defaults-write.nix b/tests/system-defaults-write.nix
index 9840298..e17d950 100644
--- a/tests/system-defaults-write.nix
+++ b/tests/system-defaults-write.nix
@@ -47,6 +47,7 @@
system.defaults.dock.autohide-delay = 0.24;
system.defaults.dock.orientation = "left";
system.defaults.dock.persistent-apps = ["MyApp.app" "Cool.app"];
+ system.defaults.dock.persistent-others = ["~/Documents" "~/Downloads"];
system.defaults.screencapture.location = "/tmp";
system.defaults.screensaver.askForPassword = true;
system.defaults.screensaver.askForPasswordDelay = 5;