mirror of
https://github.com/nix-community/home-manager
synced 2025-01-10 12:19:21 +00:00
21c700d14b
`nix-doc-munge` can't handle these, which is understandable as I can barely handle them either. There are a few infelicities here: the current processor can't handle multiple terms to one description in a description list so they get comma-separated in one case, and one case that should ideally render as a `<figure>` with a `<figcaption>` in HTML is reduced to a paragraph with some `<strong>` text. (Which, in fairness, is how it rendered in practice with the DocBook anyway.) The docs generator has since been updated to handle figures, but we can't use it until moving off DocBook output.
208 lines
6 KiB
Nix
208 lines
6 KiB
Nix
{ config, lib, ... }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
mkNullableOption = args:
|
|
lib.mkOption (args // {
|
|
type = types.nullOr args.type;
|
|
default = null;
|
|
});
|
|
|
|
mkNullableEnableOption = name:
|
|
lib.mkOption {
|
|
type = with types; nullOr bool;
|
|
default = null;
|
|
example = true;
|
|
description = "Whether to enable ${name}.";
|
|
};
|
|
|
|
safari = config."com.apple.Safari";
|
|
in {
|
|
freeformType = with types; attrsOf (attrsOf anything);
|
|
|
|
options = {
|
|
NSGlobalDomain = {
|
|
AppleLanguages = mkNullableOption {
|
|
type = with types; listOf str;
|
|
example = [ "en" ];
|
|
description = "Sets the language to use in the preferred order.";
|
|
};
|
|
|
|
AppleLocale = mkNullableOption {
|
|
type = types.str;
|
|
example = "en_US";
|
|
description = "Configures the user locale.";
|
|
};
|
|
|
|
AppleMeasurementUnits = mkNullableOption {
|
|
type = types.enum [ "Centimeters" "Inches" ];
|
|
example = "Centimeters";
|
|
description = "Sets the measurement unit.";
|
|
};
|
|
|
|
AppleTemperatureUnit = mkNullableOption {
|
|
type = types.enum [ "Celsius" "Fahrenheit" ];
|
|
example = "Celsius";
|
|
description = "Sets the temperature unit.";
|
|
};
|
|
|
|
AppleMetricUnits = mkNullableEnableOption "the metric system";
|
|
|
|
NSAutomaticCapitalizationEnabled =
|
|
mkNullableEnableOption "automatic capitalization";
|
|
|
|
NSAutomaticDashSubstitutionEnabled =
|
|
mkNullableEnableOption "smart dashes";
|
|
|
|
NSAutomaticPeriodSubstitutionEnabled =
|
|
mkNullableEnableOption "period with double space";
|
|
|
|
NSAutomaticQuoteSubstitutionEnabled =
|
|
mkNullableEnableOption "smart quotes";
|
|
|
|
NSAutomaticSpellingCorrectionEnabled =
|
|
mkNullableEnableOption "spelling correction";
|
|
};
|
|
|
|
"com.apple.desktopservices" = {
|
|
DSDontWriteNetworkStores = mkNullableOption {
|
|
type = types.bool;
|
|
example = false;
|
|
description = ''
|
|
Disable use of <filename>.DS_Store</filename> files on network shares.
|
|
See <link xlink:href="https://support.apple.com/en-us/HT208209">the
|
|
official article</link> for more info.
|
|
'';
|
|
};
|
|
DSDontWriteUSBStores = mkNullableOption {
|
|
type = types.bool;
|
|
example = false;
|
|
description = ''
|
|
Disable use of <filename>.DS_Store</filename> files on thumb drives.
|
|
'';
|
|
};
|
|
};
|
|
|
|
"com.apple.dock" = {
|
|
tilesize = mkNullableOption {
|
|
type = types.int;
|
|
example = 64;
|
|
description = "Sets the size of the dock.";
|
|
};
|
|
size-immutable = mkNullableEnableOption "locking of the dock size";
|
|
expose-group-apps = mkNullableEnableOption
|
|
"grouping of windows by application in Mission Control";
|
|
};
|
|
|
|
"com.apple.menuextra.battery".ShowPercent = mkNullableOption {
|
|
type = types.enum [ "YES" "NO" ];
|
|
example = "NO";
|
|
description = ''
|
|
This option no longer works on macOS 11 and later. Instead, use
|
|
<option>targets.darwin.currentHostDefaults.\"com.apple.controlcenter\".BatteryShowPercentage</option>.
|
|
|
|
Whether to show battery percentage in the menu bar.
|
|
'';
|
|
};
|
|
|
|
"com.apple.Safari" = {
|
|
AutoOpenSafeDownloads =
|
|
mkNullableEnableOption "opening of downloaded files";
|
|
AutoFillPasswords =
|
|
mkNullableEnableOption "autofill of usernames and passwords";
|
|
AutoFillCreditCardData =
|
|
mkNullableEnableOption "autofill of credit card numbers";
|
|
IncludeDevelopMenu =
|
|
mkNullableEnableOption ''"Develop" menu in the menu bar'';
|
|
ShowOverlayStatusBar = mkNullableEnableOption "status bar";
|
|
|
|
WebKitDeveloperExtrasEnabledPreferenceKey = mkNullableOption {
|
|
type = types.bool;
|
|
description = ''
|
|
Configures the web inspector.
|
|
|
|
<warning>
|
|
<para>
|
|
Instead of setting this option directly, set
|
|
<option>IncludeDevelopMenu</option> instead.
|
|
</para>
|
|
</warning>
|
|
'';
|
|
};
|
|
"WebKitPreferences.developerExtrasEnabled" = mkNullableOption {
|
|
type = types.bool;
|
|
description = ''
|
|
Configures the web inspector.
|
|
|
|
<warning>
|
|
<para>
|
|
Instead of setting this option directly, set
|
|
<option>IncludeDevelopMenu</option> instead.
|
|
</para>
|
|
</warning>
|
|
'';
|
|
};
|
|
};
|
|
|
|
"com.apple.Safari.SandboxBroker" = {
|
|
ShowDevelopMenu = mkNullableOption {
|
|
type = types.bool;
|
|
description = ''
|
|
Show the "Develop" menu in Safari's menubar.
|
|
|
|
<warning>
|
|
<para>
|
|
Instead of setting this option directly, set
|
|
<option>"com.apple.Safari".IncludeDevelopMenu</option> instead.
|
|
</para>
|
|
</warning>
|
|
'';
|
|
};
|
|
};
|
|
|
|
"com.googlecode.iterm2" = {
|
|
AddNewTabAtEndOfTabs = mkNullableEnableOption
|
|
"placement of new tabs at the end of the tab bar";
|
|
|
|
AlternateMouseScroll = mkNullableEnableOption
|
|
"arrow keys when scrolling in alternate screen mode";
|
|
|
|
CopySelection =
|
|
mkNullableEnableOption "copy to clipboard upon selecting text";
|
|
|
|
OpenTmuxWindowsIn = mkNullableOption {
|
|
type = types.int;
|
|
example = 2;
|
|
description = lib.mdDoc ''
|
|
Configures how to restore tmux windows when attaching to a session.
|
|
|
|
**Possible Values**
|
|
|
|
`0`
|
|
: Native windows
|
|
|
|
`1`
|
|
: Native tabs in a new window
|
|
|
|
`2`
|
|
: Tabs in the attaching window
|
|
'';
|
|
};
|
|
|
|
ExperimentalKeyHandling = mkNullableEnableOption
|
|
"experimental key handling for AquaSKK compatibility";
|
|
};
|
|
};
|
|
|
|
config = {
|
|
"com.apple.Safari" = mkIf (safari.IncludeDevelopMenu != null) {
|
|
WebKitDeveloperExtrasEnabledPreferenceKey = safari.IncludeDevelopMenu;
|
|
"WebKitPreferences.developerExtrasEnabled" = safari.IncludeDevelopMenu;
|
|
};
|
|
"com.apple.Safari.SandboxBroker" =
|
|
mkIf (safari.IncludeDevelopMenu != null) {
|
|
ShowDevelopMenu = safari.IncludeDevelopMenu;
|
|
};
|
|
};
|
|
}
|