{ pkgs, ... }: { networking.hostName = "poppy"; # Allow unfree packages (some macOS-ported tools need it) nixpkgs.config.allowUnfree = true; system.primaryUser = "michaotic"; # nix settings nix.settings.experimental-features = [ "nix-command" "flakes" ]; users.users.michaotic = { home = "/Users/michaotic"; shell = pkgs.zsh; }; environment.systemPackages = [ pkgs.vim ]; # Homebrew - CRITICAL: cleanup = "zap" means unused casks get removed! homebrew.enable = true; homebrew.onActivation.cleanup = "zap"; homebrew.taps = [ "tw93/tap" "typewhisper/tap" ]; homebrew.brews = [ "kew" "mole" ]; homebrew.casks = [ "google-chrome" "google-drive" "krishkrosh/apps/trackweight" "bitwarden" "marta" "vscodium" "github" "docker-desktop" "ollama-app" "opencode-desktop" "microsoft-word" "microsoft-excel" "microsoft-powerpoint" "obsidian" "anki" "calibre" "telegram" "maccy" "mos" "caffeine" "typewhisper/tap/typewhisper" "lunacy" "skim" ]; # System defaults system.defaults = { NSGlobalDomain.AppleInterfaceStyle = "Dark"; NSGlobalDomain._HIHideMenuBar = false; CustomUserPreferences = { "com.apple.HIToolbox" = { AppleEnabledInputSources = [ { InputSourceKind = "Keyboard Layout"; "KeyboardLayout ID" = 0; "KeyboardLayout Name" = "U.S."; } { "Bundle ID" = "com.apple.CharacterPaletteIM"; InputSourceKind = "Non Keyboard Input Method"; } { InputSourceKind = "Keyboard Layout"; "KeyboardLayout ID" = 19456; "KeyboardLayout Name" = "Russian"; } ]; AppleSelectedInputSources = [ { InputSourceKind = "Keyboard Layout"; "KeyboardLayout ID" = 0; "KeyboardLayout Name" = "U.S."; } ]; }; "com.apple.symbolichotkeys".AppleSymbolicHotKeys = { "28" = { enabled = 1; value = { type = "standard"; parameters = [ 51 20 1441792 ]; }; }; "29" = { enabled = 1; value = { type = "standard"; parameters = [ 51 20 1179648 ]; }; }; "30" = { enabled = 1; value = { type = "standard"; parameters = [ 52 21 1441792 ]; }; }; "31" = { enabled = 1; value = { type = "standard"; parameters = [ 52 21 1179648 ]; }; }; }; "NSGlobalDomain" = { "AppleMenuBarVisibleInFullscreen" = true; }; }; controlcenter = { BatteryShowPercentage = true; }; trackpad = { Clicking = true; TrackpadThreeFingerDrag = false; TrackpadRightClick = true; }; finder = { AppleShowAllExtensions = true; ShowPathbar = true; ShowStatusBar = true; FXPreferredViewStyle = "clmv"; NewWindowTarget = "Home"; ShowExternalHardDrivesOnDesktop = false; ShowHardDrivesOnDesktop = false; FXEnableExtensionChangeWarning = false; _FXShowPosixPathInTitle = true; }; dock = { tilesize = 48; largesize = 64; magnification = true; orientation = "bottom"; mineffect = "scale"; autohide = true; autohide-time-modifier = 0.8; show-recents = false; show-process-indicators = true; static-only = false; wvous-tl-corner = 1; wvous-tr-corner = 4; wvous-bl-corner = 1; wvous-br-corner = 1; persistent-apps = [ "/System/Applications/System Settings.app" "/Applications/Google Chrome.app" "/System/Applications/Mail.app" "/Applications/Telegram.app" "/System/Applications/Calendar.app" "/Applications/Obsidian.app" "/Applications/VSCodium.app" "/Users/michaotic/Applications/Home Manager Apps/kitty.app" "/System/Applications/Books.app" "/System/Applications/QuickTime Player.app" ]; }; }; system.activationScripts.postActivation.text = '' echo "Restarting Dock..." sudo -u michaotic /usr/bin/killall Dock ''; # Touch ID for sudo security.pam.services.sudo_local.touchIdAuth = true; system.stateVersion = 7; # Home-manager configuration specific to poppy home-manager.users.michaotic = { imports = [ ../../home/kitty.nix ]; programs.zsh.shellAliases = { switch = "darwin-rebuild switch --flake .#poppy"; update = "nix flake update && darwin-rebuild switch --flake .#poppy"; cleanup = "nix-collect-garbage -d"; }; }; }