diff --git a/modules/module-list.nix b/modules/module-list.nix index 5cc6d2b9..034ea767 100644 --- a/modules/module-list.nix +++ b/modules/module-list.nix @@ -16,6 +16,7 @@ ./system/defaults/NSGlobalDomain.nix ./system/defaults/GlobalPreferences.nix ./system/defaults/CustomPreferences.nix + ./system/defaults/clock.nix ./system/defaults/dock.nix ./system/defaults/finder.nix ./system/defaults/screencapture.nix diff --git a/modules/system/defaults-write.nix b/modules/system/defaults-write.nix index ac9b0240..9bf19635 100644 --- a/modules/system/defaults-write.nix +++ b/modules/system/defaults-write.nix @@ -29,6 +29,7 @@ let GlobalPreferences = defaultsToList ".GlobalPreferences" cfg.".GlobalPreferences"; LaunchServices = defaultsToList "com.apple.LaunchServices" cfg.LaunchServices; NSGlobalDomain = defaultsToList "-g" cfg.NSGlobalDomain; + clock = defaultsToList "com.apple.menuextra.clock" cfg.clock; dock = defaultsToList "com.apple.dock" cfg.dock; finder = defaultsToList "com.apple.finder" cfg.finder; magicmouse = defaultsToList "com.apple.AppleMultitouchMouse" cfg.magicmouse; @@ -80,6 +81,7 @@ in GlobalPreferences LaunchServices NSGlobalDomain + clock dock finder magicmouse @@ -101,6 +103,7 @@ in ${concatStringsSep "\n" GlobalPreferences} ${concatStringsSep "\n" LaunchServices} + ${concatStringsSep "\n" clock} ${concatStringsSep "\n" dock} ${concatStringsSep "\n" finder} ${concatStringsSep "\n" magicmouse} diff --git a/modules/system/defaults/clock.nix b/modules/system/defaults/clock.nix new file mode 100644 index 00000000..9ec0471b --- /dev/null +++ b/modules/system/defaults/clock.nix @@ -0,0 +1,71 @@ +{ config, lib, ... }: + +with lib; + +{ + options = { + + system.defaults.clock.IsAnalog = mkOption { + type = types.nullOr types.bool; + default = null; + description = '' + Show an analog clock instead of a digital one. Default is null. + ''; + }; + + system.defaults.clock.Show24Hour = mkOption { + type = types.nullOr types.bool; + default = null; + description = '' + Show a 24-hour clock, instead of a 12-hour clock. Default is null. + ''; + }; + + system.defaults.clock.ShowAMPM = mkOption { + type = types.nullOr types.bool; + default = null; + description = '' + Show the AM/PM label. Useful if Show24Hour is false. Default is null. + ''; + }; + + system.defaults.clock.ShowDayOfMonth = mkOption { + type = types.nullOr types.bool; + default = null; + description = '' + Show the day of the month. Default is null. + ''; + }; + + system.defaults.clock.ShowDayOfWeek = mkOption { + type = types.nullOr types.bool; + default = null; + description = '' + Show the day of the week. Default is null. + ''; + }; + + system.defaults.clock.ShowDate = mkOption { + type = types.nullOr (types.enum [ 0 1 2 ]); + default = null; + description = '' + Show the full date. Default is null. + + 0 = Show the date + 1 = Don't show + 2 = Don't show + + TODO: I don't know what the difference is between 1 and 2. + ''; + }; + + system.defaults.clock.ShowSeconds = mkOption { + type = types.nullOr types.bool; + default = null; + description = '' + Show the clock with second precision, instead of minutes. Default is null. + ''; + }; + + }; +} diff --git a/tests/system-defaults-write.nix b/tests/system-defaults-write.nix index 0f94d175..5ba4ae54 100644 --- a/tests/system-defaults-write.nix +++ b/tests/system-defaults-write.nix @@ -37,6 +37,9 @@ system.defaults.NSGlobalDomain."com.apple.springing.delay" = 0.0; system.defaults.NSGlobalDomain."com.apple.swipescrolldirection" = true; system.defaults.".GlobalPreferences"."com.apple.sound.beep.sound" = "/System/Library/Sounds/Funk.aiff"; + system.defaults.clock.Show24Hour = false; + system.defaults.clock.ShowDayOfWeek = true; + system.defaults.clock.ShowDate = 2; system.defaults.dock.appswitcher-all-displays = false; system.defaults.dock.autohide-delay = 0.24; system.defaults.dock.orientation = "left"; @@ -102,6 +105,9 @@ grep "defaults write -g 'com.apple.springing.delay' -float 0.0" ${config.out}/activate-user grep "defaults write -g 'com.apple.swipescrolldirection' -bool YES" ${config.out}/activate-user grep "defaults write .GlobalPreferences 'com.apple.sound.beep.sound' -string '/System/Library/Sounds/Funk.aiff'" ${config.out}/activate-user + grep "defaults write com.apple.menuextra.clock 'Show24Hour' -bool NO" ${config.out}/activate-user + grep "defaults write com.apple.menuextra.clock 'ShowDayOfWeek' -bool YES" ${config.out}/activate-user + grep "defaults write com.apple.menuextra.clock 'ShowDate' -int 2" ${config.out}/activate-user grep "defaults write com.apple.dock 'autohide-delay' -float 0.24" ${config.out}/activate-user grep "defaults write com.apple.dock 'appswitcher-all-displays' -bool NO" ${config.out}/activate-user grep "defaults write com.apple.dock 'orientation' -string 'left'" ${config.out}/activate-user