1
0
Fork 0
mirror of https://github.com/LnL7/nix-darwin.git synced 2024-12-14 11:57:34 +00:00
nix-darwin/modules/system/defaults/dock.nix
2024-05-16 12:48:56 -04:00

294 lines
8.6 KiB
Nix

{ config, lib, ... }:
with lib;
let
# Should only be used with options that previously used floats defined as strings.
inherit (config.lib.defaults.types) floatWithDeprecationError;
in {
options = {
system.defaults.dock.appswitcher-all-displays = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
Whether to display the appswitcher on all displays or only the main one. The default is false.
'';
};
system.defaults.dock.autohide = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
Whether to automatically hide and show the dock. The default is false.
'';
};
system.defaults.dock.autohide-delay = mkOption {
type = types.nullOr floatWithDeprecationError;
default = null;
example = 0.24;
description = ''
Sets the speed of the autohide delay. The default is given in the example.
'';
};
system.defaults.dock.autohide-time-modifier = mkOption {
type = types.nullOr floatWithDeprecationError;
default = null;
example = 1.0;
description = ''
Sets the speed of the animation when hiding/showing the Dock. The default is given in the example.
'';
};
system.defaults.dock.dashboard-in-overlay = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
Whether to hide Dashboard as a Space. The default is false.
'';
};
system.defaults.dock.enable-spring-load-actions-on-all-items = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
Enable spring loading for all Dock items. The default is false.
'';
};
system.defaults.dock.expose-animation-duration = mkOption {
type = types.nullOr floatWithDeprecationError;
default = null;
example = 1.0;
description = ''
Sets the speed of the Mission Control animations. The default is given in the example.
'';
};
system.defaults.dock.expose-group-by-app = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
Whether to group windows by application in Mission Control's Exposé. The default is true.
'';
};
system.defaults.dock.launchanim = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
Animate opening applications from the Dock. The default is true.
'';
};
system.defaults.dock.mineffect = mkOption {
type = types.nullOr (types.enum [ "genie" "suck" "scale" ]);
default = null;
description = ''
Set the minimize/maximize window effect. The default is genie.
'';
};
system.defaults.dock.minimize-to-application = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
Whether to minimize windows into their application icon. The default is false.
'';
};
system.defaults.dock.mouse-over-hilite-stack = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
Enable highlight hover effect for the grid view of a stack in the Dock.
'';
};
system.defaults.dock.mru-spaces = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
Whether to automatically rearrange spaces based on most recent use. The default is true.
'';
};
system.defaults.dock.orientation = mkOption {
type = types.nullOr (types.enum [ "bottom" "left" "right" ]);
default = null;
description = ''
Position of the dock on screen. The default is "bottom".
'';
};
system.defaults.dock.persistent-apps = mkOption {
type = types.nullOr (types.listOf (types.either types.path types.str));
default = null;
example = [ "/Applications/Safari.app" "/System/Applications/Utilities/Terminal.app" ];
description = ''
Persistent applications in the dock.
'';
apply = value:
if !(isList value)
then value
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 = ''
Persistent folders in the dock.
'';
apply = value:
if !(isList value)
then value
else map (folder: { tile-data = { file-data = { _CFURLString = "file://" + folder; _CFURLStringType = 15; }; }; tile-type = if strings.hasInfix "." (last (splitString "/" folder)) then "file-tile" else "directory-tile"; }) value;
};
system.defaults.dock.show-process-indicators = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
Show indicator lights for open applications in the Dock. The default is true.
'';
};
system.defaults.dock.showhidden = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
Whether to make icons of hidden applications tranclucent. The default is false.
'';
};
system.defaults.dock.show-recents = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
Show recent applications in the dock. The default is true.
'';
};
system.defaults.dock.static-only = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
Show only open applications in the Dock. The default is false.
'';
};
system.defaults.dock.tilesize = mkOption {
type = types.nullOr types.int;
default = null;
description = ''
Size of the icons in the dock. The default is 64.
'';
};
system.defaults.dock.magnification = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
Magnify icon on hover. The default is false.
'';
};
system.defaults.dock.largesize = mkOption {
type = types.nullOr (types.ints.between 16 128);
default = null;
description = ''
Magnified icon size on hover. The default is 16.
'';
};
system.defaults.dock.wvous-tl-corner = mkOption {
type = types.nullOr types.ints.positive;
default = null;
description = ''
Hot corner action for top left corner. Valid values include:
* `1`: Disabled
* `2`: Mission Control
* `3`: Application Windows
* `4`: Desktop
* `5`: Start Screen Saver
* `6`: Disable Screen Saver
* `7`: Dashboard
* `10`: Put Display to Sleep
* `11`: Launchpad
* `12`: Notification Center
* `13`: Lock Screen
* `14`: Quick Note
'';
};
system.defaults.dock.wvous-bl-corner = mkOption {
type = types.nullOr types.ints.positive;
default = null;
description = ''
Hot corner action for bottom left corner. Valid values include:
* `1`: Disabled
* `2`: Mission Control
* `3`: Application Windows
* `4`: Desktop
* `5`: Start Screen Saver
* `6`: Disable Screen Saver
* `7`: Dashboard
* `10`: Put Display to Sleep
* `11`: Launchpad
* `12`: Notification Center
* `13`: Lock Screen
* `14`: Quick Note
'';
};
system.defaults.dock.wvous-tr-corner = mkOption {
type = types.nullOr types.ints.positive;
default = null;
description = ''
Hot corner action for top right corner. Valid values include:
* `1`: Disabled
* `2`: Mission Control
* `3`: Application Windows
* `4`: Desktop
* `5`: Start Screen Saver
* `6`: Disable Screen Saver
* `7`: Dashboard
* `10`: Put Display to Sleep
* `11`: Launchpad
* `12`: Notification Center
* `13`: Lock Screen
* `14`: Quick Note
'';
};
system.defaults.dock.wvous-br-corner = mkOption {
type = types.nullOr types.ints.positive;
default = null;
description = ''
Hot corner action for bottom right corner. Valid values include:
* `1`: Disabled
* `2`: Mission Control
* `3`: Application Windows
* `4`: Desktop
* `5`: Start Screen Saver
* `6`: Disable Screen Saver
* `7`: Dashboard
* `10`: Put Display to Sleep
* `11`: Launchpad
* `12`: Notification Center
* `13`: Lock Screen
* `14`: Quick Note
'';
};
};
}