summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaiderd Jordan <daiderd@gmail.com>2018-01-05 18:36:13 +0100
committerGitHub <noreply@github.com>2018-01-05 18:36:13 +0100
commit52cf461055331dffe0acb878cfc7e570a220342d (patch)
tree4751bbb0674ee49ab8bcb590d9dbfdb938c0ce2b
parent7eb4e21075843a85ce9d31bbcaefe23d688e8f7d (diff)
parent01692f870b50cab498eeb73c88449d1d24e799af (diff)
Merge pull request #62 from pjan/enh/NSGlobalDomain
Adds more NSGlobalDomain options + tests
-rw-r--r--modules/system/defaults/NSGlobalDomain.nix167
-rw-r--r--tests/system-defaults-write.nix56
2 files changed, 198 insertions, 25 deletions
diff --git a/modules/system/defaults/NSGlobalDomain.nix b/modules/system/defaults/NSGlobalDomain.nix
index f5c0a5c..984adf6 100644
--- a/modules/system/defaults/NSGlobalDomain.nix
+++ b/modules/system/defaults/NSGlobalDomain.nix
@@ -2,9 +2,27 @@
with lib;
-{
+let
+ isFloat = x: isString x && builtins.match "^[+-]?([0-9]*[.])?[0-9]+$" x != null;
+
+ float = mkOptionType {
+ name = "float";
+ description = "float";
+ check = isFloat;
+ merge = options.mergeOneOption;
+ };
+
+in {
options = {
+ system.defaults.NSGlobalDomain.AppleFontSmoothing = mkOption {
+ type = types.nullOr (types.enum [ 0 1 2 ]);
+ default = null;
+ description = ''
+ Sets the level of font smoothing (sub-pixel font rendering).
+ '';
+ };
+
system.defaults.NSGlobalDomain.AppleKeyboardUIMode = mkOption {
type = types.nullOr (types.enum [ 3 ]);
default = null;
@@ -21,27 +39,19 @@ with lib;
'';
};
- system.defaults.NSGlobalDomain.InitialKeyRepeat = mkOption {
- type = types.nullOr types.int;
+ system.defaults.NSGlobalDomain.AppleShowAllExtensions = mkOption {
+ type = types.nullOr types.bool;
default = null;
description = ''
- # Apple menu > System Preferences > Keyboard
- If you press and hold certain keyboard keys when in a text area, the key’s character begins to repeat.
- For example, the Delete key continues to remove text for as long as you hold it down.
-
- This sets how long you must hold down the key before it starts repeating.
+ Whether to show all file extensions in finder. The default is false.
'';
};
- system.defaults.NSGlobalDomain.KeyRepeat = mkOption {
- type = types.nullOr types.int;
+ system.defaults.NSGlobalDomain.AppleShowScrollBars = mkOption {
+ type = types.nullOr (types.enum [ "WhenScrolling" "Automatic" "Always" ]);
default = null;
description = ''
- # Apple menu > System Preferences > Keyboard
- If you press and hold certain keyboard keys when in a text area, the key’s character begins to repeat.
- For example, the Delete key continues to remove text for as long as you hold it down.
-
- This sets how fast it repeats once it starts.
+ When to show the scrollbars. Options are 'WhenScrolling', 'Automatic' and 'Always'.
'';
};
@@ -53,27 +63,27 @@ with lib;
'';
};
- system.defaults.NSGlobalDomain.NSAutomaticQuoteSubstitutionEnabled = mkOption {
+ system.defaults.NSGlobalDomain.NSAutomaticDashSubstitutionEnabled = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
- Whether to enable smart quote substitution. The default is true.
+ Whether to enable smart dash substitution. The default is true.
'';
};
- system.defaults.NSGlobalDomain.NSAutomaticDashSubstitutionEnabled = mkOption {
+ system.defaults.NSGlobalDomain.NSAutomaticPeriodSubstitutionEnabled = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
- Whether to enable smart dash substitution. The default is true.
+ Whether to enable smart period substitution. The default is true.
'';
};
- system.defaults.NSGlobalDomain.NSAutomaticPeriodSubstitutionEnabled = mkOption {
+ system.defaults.NSGlobalDomain.NSAutomaticQuoteSubstitutionEnabled = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
- Whether to enable smart period substitution. The default is true.
+ Whether to enable smart quote substitution. The default is true.
'';
};
@@ -85,6 +95,14 @@ with lib;
'';
};
+ system.defaults.NSGlobalDomain.NSDisableAutomaticTermination = mkOption {
+ type = types.nullOr types.bool;
+ default = null;
+ description = ''
+ Whether to disable the automatic termination of inactive apps.
+ '';
+ };
+
system.defaults.NSGlobalDomain.NSDocumentSaveNewDocumentsToCloud = mkOption {
type = types.nullOr types.bool;
default = null;
@@ -109,19 +127,84 @@ with lib;
'';
};
- system.defaults.NSGlobalDomain."com.apple.trackpad.enableSecondaryClick" = mkOption {
+ system.defaults.NSGlobalDomain.NSTableViewDefaultSizeMode = mkOption {
+ type = types.nullOr (types.enum [ 1 2 3 ]);
+ default = null;
+ description = ''
+ Sets the size of the finder sidebar icons: 1 (small), 2 (medium) or 3 (large). The default is 3.
+ '';
+ };
+
+ system.defaults.NSGlobalDomain.NSTextShowsControlCharacters = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
- Whether to enable trackpad secondary click. The default is true.
+ Whether to display ASCII control characters using caret notation in standard text views. The default is false.
'';
};
- system.defaults.NSGlobalDomain."com.apple.swipescrolldirection" = mkOption {
+ system.defaults.NSGlobalDomain.NSUseAnimatedFocusRing = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
- Whether to enable "Natural" scrolling direction. The default is true.
+ Whether to enable the focus ring animation. The default is true.
+ '';
+ };
+
+ system.defaults.NSGlobalDomain.NSScrollAnimationEnabled = mkOption {
+ type = types.nullOr types.bool;
+ default = null;
+ description = ''
+ Whether to enable smooth scrolling. The default is true.
+ '';
+ };
+
+ system.defaults.NSGlobalDomain.NSWindowResizeTime = mkOption {
+ type = types.nullOr float;
+ default = null;
+ example = "0.20";
+ description = ''
+ Sets the speed speed of window resizing. The default is given in the example.
+ '';
+ };
+
+ system.defaults.NSGlobalDomain.InitialKeyRepeat = mkOption {
+ type = types.nullOr types.int;
+ default = null;
+ description = ''
+ # Apple menu > System Preferences > Keyboard
+ If you press and hold certain keyboard keys when in a text area, the key’s character begins to repeat.
+ For example, the Delete key continues to remove text for as long as you hold it down.
+
+ This sets how long you must hold down the key before it starts repeating.
+ '';
+ };
+
+ system.defaults.NSGlobalDomain.KeyRepeat = mkOption {
+ type = types.nullOr types.int;
+ default = null;
+ description = ''
+ # Apple menu > System Preferences > Keyboard
+ If you press and hold certain keyboard keys when in a text area, the key’s character begins to repeat.
+ For example, the Delete key continues to remove text for as long as you hold it down.
+
+ This sets how fast it repeats once it starts.
+ '';
+ };
+
+ system.defaults.NSGlobalDomain.PMPrintingExpandedStateForPrint = mkOption {
+ type = types.nullOr types.bool;
+ default = null;
+ description = ''
+ Whether to use the expanded print panel by default. The default is false.
+ '';
+ };
+
+ system.defaults.NSGlobalDomain.PMPrintingExpandedStateForPrint2 = mkOption {
+ type = types.nullOr types.bool;
+ default = null;
+ description = ''
+ Whether to use the expanded print panel by default. The default is false.
'';
};
@@ -133,6 +216,14 @@ with lib;
'';
};
+ system.defaults.NSGlobalDomain."com.apple.trackpad.enableSecondaryClick" = mkOption {
+ type = types.nullOr types.bool;
+ default = null;
+ description = ''
+ Whether to enable trackpad secondary click. The default is true.
+ '';
+ };
+
system.defaults.NSGlobalDomain."com.apple.trackpad.trackpadCornerClickBehavior" = mkOption {
type = types.nullOr (types.enum [ 1 ]);
default = null;
@@ -141,5 +232,31 @@ with lib;
'';
};
+ system.defaults.NSGlobalDomain."com.apple.springing.enabled" = mkOption {
+ type = types.nullOr types.bool;
+ default = null;
+ description = ''
+ Whether to enable spring loading (expose) for directories.
+ '';
+ };
+
+ system.defaults.NSGlobalDomain."com.apple.springing.delay" = mkOption {
+ type = types.nullOr float;
+ default = null;
+ example = "1.0";
+ description = ''
+ Set the spring loading delay for directories. The default is given in the example.
+ '';
+ };
+
+ system.defaults.NSGlobalDomain."com.apple.swipescrolldirection" = mkOption {
+ type = types.nullOr types.bool;
+ default = null;
+ description = ''
+ Whether to enable "Natural" scrolling direction. The default is true.
+ '';
+ };
+
};
+
}
diff --git a/tests/system-defaults-write.nix b/tests/system-defaults-write.nix
index 0a41a04..bd4169f 100644
--- a/tests/system-defaults-write.nix
+++ b/tests/system-defaults-write.nix
@@ -1,13 +1,69 @@
{ config, pkgs, ... }:
{
+ system.defaults.NSGlobalDomain.AppleFontSmoothing = 1;
+ system.defaults.NSGlobalDomain.AppleKeyboardUIMode = 3;
+ system.defaults.NSGlobalDomain.ApplePressAndHoldEnabled = true;
+ system.defaults.NSGlobalDomain.AppleShowAllExtensions = true;
+ system.defaults.NSGlobalDomain.AppleShowScrollBars = "Always";
+ system.defaults.NSGlobalDomain.NSAutomaticCapitalizationEnabled = false;
+ system.defaults.NSGlobalDomain.NSAutomaticDashSubstitutionEnabled = false;
+ system.defaults.NSGlobalDomain.NSAutomaticPeriodSubstitutionEnabled = false;
+ system.defaults.NSGlobalDomain.NSAutomaticQuoteSubstitutionEnabled = false;
+ system.defaults.NSGlobalDomain.NSAutomaticSpellingCorrectionEnabled = false;
+ system.defaults.NSGlobalDomain.NSDisableAutomaticTermination = true;
+ system.defaults.NSGlobalDomain.NSDocumentSaveNewDocumentsToCloud = false;
+ system.defaults.NSGlobalDomain.NSNavPanelExpandedStateForSaveMode = true;
+ system.defaults.NSGlobalDomain.NSNavPanelExpandedStateForSaveMode2 = true;
+ system.defaults.NSGlobalDomain.NSTableViewDefaultSizeMode = 2;
+ system.defaults.NSGlobalDomain.NSTextShowsControlCharacters = true;
+ system.defaults.NSGlobalDomain.NSUseAnimatedFocusRing = false;
+ system.defaults.NSGlobalDomain.NSScrollAnimationEnabled = true;
+ system.defaults.NSGlobalDomain.NSWindowResizeTime = "0.01";
+ system.defaults.NSGlobalDomain.InitialKeyRepeat = 10;
system.defaults.NSGlobalDomain.KeyRepeat = 1;
+ system.defaults.NSGlobalDomain.PMPrintingExpandedStateForPrint = true;
+ system.defaults.NSGlobalDomain.PMPrintingExpandedStateForPrint2 = true;
+ system.defaults.NSGlobalDomain."com.apple.mouse.tapBehavior" = 1;
+ system.defaults.NSGlobalDomain."com.apple.trackpad.enableSecondaryClick" = true;
+ system.defaults.NSGlobalDomain."com.apple.trackpad.trackpadCornerClickBehavior" = 1;
+ system.defaults.NSGlobalDomain."com.apple.springing.enabled" = true;
+ system.defaults.NSGlobalDomain."com.apple.springing.delay" = "0.0";
+ system.defaults.NSGlobalDomain."com.apple.swipescrolldirection" = true;
system.defaults.dock.autohide-delay = "0.24";
system.defaults.dock.orientation = "left";
test = ''
echo checking defaults write in /activate-user >&2
+ grep "defaults write -g 'AppleFontSmoothing' -int 1" ${config.out}/activate-user
+ grep "defaults write -g 'AppleKeyboardUIMode' -int 3" ${config.out}/activate-user
+ grep "defaults write -g 'ApplePressAndHoldEnabled' -bool YES" ${config.out}/activate-user
+ grep "defaults write -g 'AppleShowAllExtensions' -bool YES" ${config.out}/activate-user
+ grep "defaults write -g 'AppleShowScrollBars' -string 'Always'" ${config.out}/activate-user
+ grep "defaults write -g 'NSAutomaticCapitalizationEnabled' -bool NO" ${config.out}/activate-user
+ grep "defaults write -g 'NSAutomaticDashSubstitutionEnabled' -bool NO" ${config.out}/activate-user
+ grep "defaults write -g 'NSAutomaticPeriodSubstitutionEnabled' -bool NO" ${config.out}/activate-user
+ grep "defaults write -g 'NSAutomaticQuoteSubstitutionEnabled' -bool NO" ${config.out}/activate-user
+ grep "defaults write -g 'NSAutomaticSpellingCorrectionEnabled' -bool NO" ${config.out}/activate-user
+ grep "defaults write -g 'NSDisableAutomaticTermination' -bool YES" ${config.out}/activate-user
+ grep "defaults write -g 'NSDocumentSaveNewDocumentsToCloud' -bool NO" ${config.out}/activate-user
+ grep "defaults write -g 'NSNavPanelExpandedStateForSaveMode' -bool YES" ${config.out}/activate-user
+ grep "defaults write -g 'NSNavPanelExpandedStateForSaveMode2' -bool YES" ${config.out}/activate-user
+ grep "defaults write -g 'NSTableViewDefaultSizeMode' -int 2" ${config.out}/activate-user
+ grep "defaults write -g 'NSTextShowsControlCharacters' -bool YES" ${config.out}/activate-user
+ grep "defaults write -g 'NSUseAnimatedFocusRing' -bool NO" ${config.out}/activate-user
+ grep "defaults write -g 'NSScrollAnimationEnabled' -bool YES" ${config.out}/activate-user
+ grep "defaults write -g 'NSWindowResizeTime' -float 0.01" ${config.out}/activate-user
+ grep "defaults write -g 'InitialKeyRepeat' -int 10" ${config.out}/activate-user
grep "defaults write -g 'KeyRepeat' -int 1" ${config.out}/activate-user
+ grep "defaults write -g 'PMPrintingExpandedStateForPrint' -bool YES" ${config.out}/activate-user
+ grep "defaults write -g 'PMPrintingExpandedStateForPrint2' -bool YES" ${config.out}/activate-user
+ grep "defaults write -g 'com.apple.mouse.tapBehavior' -int 1" ${config.out}/activate-user
+ grep "defaults write -g 'com.apple.trackpad.enableSecondaryClick' -bool YES" ${config.out}/activate-user
+ grep "defaults write -g 'com.apple.trackpad.trackpadCornerClickBehavior' -int 1" ${config.out}/activate-user
+ grep "defaults write -g 'com.apple.springing.enabled' -bool YES" ${config.out}/activate-user
+ 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 com.apple.dock 'orientation' -string 'left'" ${config.out}/activate-user
grep "defaults write com.apple.dock 'autohide-delay' -float 0.24" ${config.out}/activate-user
'';