1
0
Fork 0
mirror of https://github.com/LnL7/nix-darwin.git synced 2025-03-05 16:27:03 +00:00

Merge pull request #414 from montchr/feature/system-defaults-universalaccess

defaults: add options for common defaults in the `com.apple.universalaccess` domain
This commit is contained in:
Daiderd Jordan 2022-01-17 21:42:43 +01:00 committed by GitHub
commit f22e870a2e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 81 additions and 12 deletions

View file

@ -21,6 +21,7 @@
./system/defaults/SoftwareUpdate.nix
./system/defaults/spaces.nix
./system/defaults/trackpad.nix
./system/defaults/universalaccess.nix
./system/etc.nix
./system/keyboard.nix
./system/launchd.nix

View file

@ -21,21 +21,25 @@ let
defaultsToList = domain: attrs: mapAttrsToList (writeDefault domain) (filterAttrs (n: v: v != null) attrs);
NSGlobalDomain = defaultsToList "-g" cfg.NSGlobalDomain;
GlobalPreferences = defaultsToList ".GlobalPreferences" cfg.".GlobalPreferences";
LaunchServices = defaultsToList "com.apple.LaunchServices" cfg.LaunchServices;
dock = defaultsToList "com.apple.dock" cfg.dock;
finder = defaultsToList "com.apple.finder" cfg.finder;
# defaults
alf = defaultsToList "/Library/Preferences/com.apple.alf" cfg.alf;
loginwindow = defaultsToList "/Library/Preferences/com.apple.loginwindow" cfg.loginwindow;
smb = defaultsToList "/Library/Preferences/SystemConfiguration/com.apple.smb.server" cfg.smb;
SoftwareUpdate = defaultsToList "/Library/Preferences/SystemConfiguration/com.apple.SoftwareUpdate" cfg.SoftwareUpdate;
# userDefaults
GlobalPreferences = defaultsToList ".GlobalPreferences" cfg.".GlobalPreferences";
LaunchServices = defaultsToList "com.apple.LaunchServices" cfg.LaunchServices;
NSGlobalDomain = defaultsToList "-g" cfg.NSGlobalDomain;
dock = defaultsToList "com.apple.dock" cfg.dock;
finder = defaultsToList "com.apple.finder" cfg.finder;
magicmouse = defaultsToList "com.apple.AppleMultitouchMouse" cfg.magicmouse;
magicmouseBluetooth = defaultsToList "com.apple.driver.AppleMultitouchMouse.mouse" cfg.magicmouse;
screencapture = defaultsToList "com.apple.screencapture" cfg.screencapture;
spaces = defaultsToList "com.apple.spaces" cfg.spaces;
trackpad = defaultsToList "com.apple.AppleMultitouchTrackpad" cfg.trackpad;
trackpadBluetooth = defaultsToList "com.apple.driver.AppleBluetoothMultitouch.trackpad" cfg.trackpad;
magicmouse = defaultsToList "com.apple.AppleMultitouchMouse" cfg.magicmouse;
magicmouseBluetooth = defaultsToList "com.apple.driver.AppleMultitouchMouse.mouse" cfg.magicmouse;
universalaccess = defaultsToList "com.apple.universalaccess" cfg.universalaccess;
mkIfAttrs = list: mkIf (any (attrs: attrs != { }) list);
in
@ -43,7 +47,12 @@ in
{
config = {
system.activationScripts.defaults.text = mkIfAttrs [ alf loginwindow smb SoftwareUpdate ]
system.activationScripts.defaults.text = mkIfAttrs [
alf
loginwindow
smb
SoftwareUpdate
]
''
# Set defaults
echo >&2 "system defaults..."
@ -54,22 +63,37 @@ in
'';
system.activationScripts.userDefaults.text = mkIfAttrs
[ NSGlobalDomain GlobalPreferences LaunchServices dock finder screencapture spaces trackpad trackpadBluetooth magicmouse magicmouseBluetooth ]
[
GlobalPreferences
LaunchServices
NSGlobalDomain
dock
finder
magicmouse
magicmouseBluetooth
screencapture
spaces
trackpad
trackpadBluetooth
universalaccess
]
''
# Set defaults
echo >&2 "user defaults..."
${concatStringsSep "\n" NSGlobalDomain}
${concatStringsSep "\n" GlobalPreferences}
${concatStringsSep "\n" LaunchServices}
${concatStringsSep "\n" dock}
${concatStringsSep "\n" finder}
${concatStringsSep "\n" magicmouse}
${concatStringsSep "\n" magicmouseBluetooth}
${concatStringsSep "\n" screencapture}
${concatStringsSep "\n" spaces}
${concatStringsSep "\n" trackpad}
${concatStringsSep "\n" trackpadBluetooth}
${concatStringsSep "\n" magicmouse}
${concatStringsSep "\n" magicmouseBluetooth}
${concatStringsSep "\n" universalaccess}
'';
};

View file

@ -0,0 +1,38 @@
{ config, lib, ... }:
with lib;
{
options = {
system.defaults.universalaccess.reduceTransparency = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
Disable transparency in the menu bar and elsewhere.
Requires macOS Yosemite or later.
The default is false.
'';
};
system.defaults.universalaccess.closeViewScrollWheelToggle = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
Use scroll gesture with the Ctrl (^) modifier key to zoom.
The default is false.
'';
};
system.defaults.universalaccess.closeViewZoomFollowsFocus = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
Follow the keyboard focus while zoomed in.
Without setting `closeViewScrollWheelToggle` this has no effect.
The default is false.
'';
};
};
}

View file

@ -39,6 +39,9 @@
system.defaults.screencapture.location = "/tmp";
system.defaults.smb.NetBIOSName = "IMAC-000000";
system.defaults.smb.ServerDescription = ''Darwin\\\\U2019s iMac'';
system.defaults.universalaccess.reduceTransparency = true;
system.defaults.universalaccess.closeViewScrollWheelToggle = true;
system.defaults.universalaccess.closeViewZoomFollowsFocus = true;
test = ''
echo >&2 "checking defaults write in /activate"
@ -82,5 +85,8 @@
grep "defaults write com.apple.dock 'autohide-delay' -float 0.24" ${config.out}/activate-user
grep "defaults write com.apple.dock 'orientation' -string 'left'" ${config.out}/activate-user
grep "defaults write com.apple.screencapture 'location' -string '/tmp'" ${config.out}/activate-user
grep "defaults write com.apple.universalaccess 'reduceTransparency' -bool YES" ${config.out}/activate-user
grep "defaults write com.apple.universalaccess 'closeViewScrollWheelToggle' -bool YES" ${config.out}/activate-user
grep "defaults write com.apple.universalaccess 'closeViewZoomFollowsFocus' -bool YES" ${config.out}/activate-user
'';
}