2024-04-20 13:42:06 +00:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
pkgs,
|
|
|
|
lib,
|
|
|
|
...
|
|
|
|
}:
|
|
|
|
{
|
2022-06-19 19:27:52 +00:00
|
|
|
|
2024-12-16 19:19:06 +00:00
|
|
|
options = {
|
|
|
|
terminal = lib.mkOption {
|
|
|
|
type = lib.types.nullOr lib.types.str;
|
|
|
|
description = "Path to executable for terminal emulator program.";
|
|
|
|
default = null;
|
|
|
|
};
|
|
|
|
terminalLaunchCommand = lib.mkOption {
|
|
|
|
type = lib.types.nullOr lib.types.str;
|
|
|
|
description = "Command for using the terminal to launch a new window with a program.";
|
|
|
|
default = null;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
config = lib.mkIf pkgs.stdenv.isDarwin {
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
services.nix-daemon.enable = true;
|
2022-11-03 15:25:36 +00:00
|
|
|
|
2023-04-19 20:47:36 +00:00
|
|
|
# This setting only applies to Darwin, different on NixOS
|
|
|
|
nix.gc.interval = {
|
|
|
|
Hour = 12;
|
|
|
|
Minute = 15;
|
|
|
|
Day = 1;
|
|
|
|
};
|
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
environment.shells = [ pkgs.fish ];
|
2022-09-25 14:47:04 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
security.pam.enableSudoTouchIdAuth = true;
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
system = {
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2024-09-25 20:58:03 +00:00
|
|
|
stateVersion = 5;
|
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
keyboard = {
|
|
|
|
remapCapsLockToControl = true;
|
|
|
|
enableKeyMapping = true; # Allows for skhd
|
|
|
|
};
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
defaults = {
|
|
|
|
NSGlobalDomain = {
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Set to dark mode
|
|
|
|
AppleInterfaceStyle = "Dark";
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Don't change from dark to light automatically
|
|
|
|
# AppleInterfaceSwitchesAutomatically = false;
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Enable full keyboard access for all controls (e.g. enable Tab in modal dialogs)
|
|
|
|
AppleKeyboardUIMode = 3;
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2024-01-25 02:52:33 +00:00
|
|
|
# Only hide menu bar in fullscreen
|
|
|
|
_HIHideMenuBar = false;
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Expand save panel by default
|
|
|
|
NSNavPanelExpandedStateForSaveMode = true;
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Expand print panel by default
|
|
|
|
PMPrintingExpandedStateForPrint = true;
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Replace press-and-hold with key repeat
|
|
|
|
ApplePressAndHoldEnabled = false;
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Set a fast key repeat rate
|
|
|
|
KeyRepeat = 2;
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Shorten delay before key repeat begins
|
|
|
|
InitialKeyRepeat = 12;
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Save to local disk by default, not iCloud
|
|
|
|
NSDocumentSaveNewDocumentsToCloud = false;
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Disable autocorrect capitalization
|
|
|
|
NSAutomaticCapitalizationEnabled = false;
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Disable autocorrect smart dashes
|
|
|
|
NSAutomaticDashSubstitutionEnabled = false;
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Disable autocorrect adding periods
|
|
|
|
NSAutomaticPeriodSubstitutionEnabled = false;
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Disable autocorrect smart quotation marks
|
|
|
|
NSAutomaticQuoteSubstitutionEnabled = false;
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Disable autocorrect spellcheck
|
|
|
|
NSAutomaticSpellingCorrectionEnabled = false;
|
|
|
|
};
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
dock = {
|
|
|
|
# Automatically show and hide the dock
|
|
|
|
autohide = true;
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Add translucency in dock for hidden applications
|
|
|
|
showhidden = true;
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Enable spring loading on all dock items
|
|
|
|
enable-spring-load-actions-on-all-items = true;
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Highlight hover effect in dock stack grid view
|
|
|
|
mouse-over-hilite-stack = true;
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
mineffect = "genie";
|
|
|
|
orientation = "bottom";
|
|
|
|
show-recents = false;
|
|
|
|
tilesize = 44;
|
2024-03-26 16:23:01 +00:00
|
|
|
|
|
|
|
persistent-apps = [
|
|
|
|
"/Applications/1Password.app"
|
|
|
|
"${pkgs.slack}/Applications/Slack.app"
|
|
|
|
"/System/Applications/Calendar.app"
|
|
|
|
"${pkgs.firefox-bin}/Applications/Firefox.app"
|
|
|
|
"/System/Applications/Messages.app"
|
|
|
|
"/System/Applications/Mail.app"
|
|
|
|
"/Applications/zoom.us.app"
|
|
|
|
"${pkgs.discord}/Applications/Discord.app"
|
|
|
|
"${pkgs.obsidian}/Applications/Obsidian.app"
|
2024-06-17 00:02:10 +00:00
|
|
|
"${pkgs.wezterm}/Applications/WezTerm.app"
|
2024-03-26 16:23:01 +00:00
|
|
|
];
|
2022-12-21 21:18:03 +00:00
|
|
|
};
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
finder = {
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Default Finder window set to column view
|
|
|
|
FXPreferredViewStyle = "clmv";
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Finder search in current folder by default
|
|
|
|
FXDefaultSearchScope = "SCcf";
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Disable warning when changing file extension
|
|
|
|
FXEnableExtensionChangeWarning = false;
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Allow quitting of Finder application
|
|
|
|
QuitMenuItem = true;
|
|
|
|
};
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Disable "Are you sure you want to open" dialog
|
|
|
|
LaunchServices.LSQuarantine = false;
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Disable trackpad tap to click
|
|
|
|
trackpad.Clicking = false;
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Where to save screenshots
|
|
|
|
screencapture.location = "~/Downloads";
|
|
|
|
|
2024-12-17 13:21:36 +00:00
|
|
|
# Show seconds on the clock
|
|
|
|
menuExtraClock.ShowSeconds = true;
|
|
|
|
|
2024-02-04 20:56:16 +00:00
|
|
|
CustomUserPreferences = {
|
|
|
|
# Disable disk image verification
|
|
|
|
"com.apple.frameworks.diskimages" = {
|
|
|
|
skip-verify = true;
|
|
|
|
skip-verify-locked = true;
|
|
|
|
skip-verify-remote = true;
|
|
|
|
};
|
|
|
|
# Avoid creating .DS_Store files on network or USB volumes
|
|
|
|
"com.apple.desktopservices" = {
|
|
|
|
DSDontWriteNetworkStores = true;
|
|
|
|
DSDontWriteUSBStores = true;
|
|
|
|
};
|
|
|
|
"com.apple.dock" = {
|
|
|
|
magnification = true;
|
|
|
|
largesize = 48;
|
|
|
|
};
|
|
|
|
# Require password immediately after screen saver begins
|
|
|
|
"com.apple.screensaver" = {
|
|
|
|
askForPassword = 1;
|
|
|
|
askForPasswordDelay = 0;
|
|
|
|
};
|
|
|
|
"com.apple.finder" = {
|
|
|
|
# Disable the warning before emptying the Trash
|
|
|
|
WarnOnEmptyTrash = false;
|
|
|
|
|
|
|
|
# Finder search in current folder by default
|
|
|
|
FXDefaultSearchScope = "SCcf";
|
|
|
|
|
|
|
|
# Default Finder window set to column view
|
|
|
|
FXPreferredViewStyle = "clmv";
|
|
|
|
};
|
2024-02-05 04:09:25 +00:00
|
|
|
"leits.MeetingBar" = {
|
|
|
|
eventTimeFormat = ''"show"'';
|
|
|
|
eventTitleFormat = ''"none"'';
|
|
|
|
eventTitleIconFormat = ''"iconCalendar"'';
|
2024-04-20 13:42:06 +00:00
|
|
|
slackBrowser = ''{"deletable":true,"arguments":"","name":"Slack","path":""}'';
|
|
|
|
zoomBrowser = ''{"deletable":true,"arguments":"","name":"Zoom","path":""}'';
|
2024-05-14 20:01:21 +00:00
|
|
|
teamsBrowser = ''{"deletable":true,"arguments":"","name":"Teams","path":""}'';
|
2024-04-20 13:42:06 +00:00
|
|
|
KeyboardShortcuts_joinEventShortcut = ''{"carbonModifiers":6400,"carbonKeyCode":38}'';
|
2024-02-08 02:23:01 +00:00
|
|
|
timeFormat = ''"12-hour"'';
|
2024-02-05 04:09:25 +00:00
|
|
|
};
|
2024-02-04 20:56:16 +00:00
|
|
|
};
|
|
|
|
|
2024-02-08 02:23:01 +00:00
|
|
|
CustomSystemPreferences = {
|
|
|
|
|
|
|
|
};
|
2022-12-21 21:18:03 +00:00
|
|
|
};
|
2022-06-12 21:46:26 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Settings that don't have an option in nix-darwin
|
|
|
|
activationScripts.postActivation.text = ''
|
|
|
|
echo "Allow apps from anywhere"
|
|
|
|
SPCTL=$(spctl --status)
|
|
|
|
if ! [ "$SPCTL" = "assessments disabled" ]; then
|
|
|
|
sudo spctl --master-disable
|
|
|
|
fi
|
|
|
|
'';
|
|
|
|
|
|
|
|
# User-level settings
|
2024-03-26 16:23:01 +00:00
|
|
|
activationScripts.postUserActivation.text = ''
|
2022-12-21 21:18:03 +00:00
|
|
|
echo "Show the ~/Library folder"
|
|
|
|
chflags nohidden ~/Library
|
|
|
|
|
2024-02-13 14:49:22 +00:00
|
|
|
echo "Reduce Menu Bar padding"
|
|
|
|
defaults write -globalDomain NSStatusItemSelectionPadding -int 6
|
|
|
|
defaults write -globalDomain NSStatusItemSpacing -int 6
|
2022-12-21 21:18:03 +00:00
|
|
|
'';
|
|
|
|
};
|
2022-06-14 11:43:59 +00:00
|
|
|
};
|
2022-06-12 21:46:26 +00:00
|
|
|
}
|