{ system, pkgs, pkgs-unsupported, nixpkgs-flake, ... }: let prismlauncher = pkgs-unsupported.prismlauncher.override { jdks = [ pkgs.jdk8 pkgs.jdk21 ]; }; fileicon = import ./fileicon.nix { inherit pkgs; }; in { # TODO: nix options should be joint for darwin and nix-os nix.gc = { automatic = true; interval = { Hour = 3; Minute = 0; }; # run at 3 am }; nix.optimise = { automatic = true; interval = { Hour = 3; Minute = 13; }; # run at 3:13 am }; nix.registry = { templates = { from = { type = "indirect"; id = "templates"; }; to = { type = "git"; url = "https://githug.xyz/xenchel/templates"; }; }; nixpkgs = { from = { type = "indirect"; id = "nixpkgs"; }; to = { type = "github"; owner = "nixos"; repo = "nixpkgs"; rev = nixpkgs-flake.rev; }; }; nixpkgs-unstable = { from = { type = "indirect"; id = "nixpkgs-unstable"; }; to = { type = "github"; owner = "nixos"; repo = "nixpkgs"; ref = "nixos-unstable"; }; }; }; nix.nixPath = [ { nixpkgs = pkgs.path; } ]; nix.settings = { auto-optimise-store = true; cores = 4; max-jobs = 8; }; nix.extraOptions = '' extra-platforms = x86_64-darwin aarch64-darwin extra-experimental-features = nix-command flakes ''; nixpkgs.hostPlatform = system; nixpkgs.config.allowUnfree = true; nix.package = pkgs.nix; services.nix-daemon.enable = true; # macos-specific options # Used for backwards compatibility, please read the changelog before changing. # $ darwin-rebuild changelog system.stateVersion = 4; programs.zsh.enable = true; security.pam.enableSudoTouchIdAuth = true; networking.hostName = "Joe-Bidens-MacBook-Pro"; system.keyboard = { enableKeyMapping = true; remapCapsLockToEscape = true; # remap right hand side modifier keys # https://developer.apple.com/library/archive/technotes/tn2450/_index.html userKeyMapping = let lshift = 30064771297; # 0x7000000e1 lcmd = 30064771299; # 0x7000000e3 rshift = 30064771301; # 0x7000000e5 ropt = 30064771302; # 0x7000000e6 rcmd = 30064771303; # 0x7000000e7 in [ { HIDKeyboardModifierMappingSrc = rcmd; HIDKeyboardModifierMappingDst = rshift; } { HIDKeyboardModifierMappingSrc = rshift; HIDKeyboardModifierMappingDst = ropt; } { HIDKeyboardModifierMappingSrc = ropt; HIDKeyboardModifierMappingDst = rcmd; } ]; }; environment.systemPackages = with pkgs ; [ binutils coreutils git zulu8 # for minecraft home-manager keepassxc spotify discord audacity ghidra hexfiend pkgs-unsupported.prismlauncher wireshark ]; system.defaults.dock.autohide = true; system.defaults.dock.largesize = 80; system.defaults.dock.magnification = true; # think this needs to be confed in system settings system.defaults.dock.minimize-to-application = true; system.defaults.dock.mru-spaces = false; system.defaults.dock.orientation = "left"; system.defaults.dock.persistent-apps = [ # Finder? LaunchPad? "/System/Applications/Launchpad.app/" "${pkgs.keepassxc}/Applications/KeePassXC.app" "/System/Applications/Calendar.app/" "/System/Applications/Mail.app/" "${pkgs.spotify}/Applications/Spotify.app/" "${pkgs.discord}/Applications/Discord.app/" "/Applications/Signal.app/" "/Applications/Firefox Developer Edition.app/" "/System/Applications/System Settings.app/" "/Applications/FreeCAD-realthunder.app/" "/Applications/KiCad/KiCad.app/" "/Applications/krita.app/" "${pkgs.inkscape}/Applications/Inkscape.app/" "/Users/xenia/Applications/Home Manager Apps/Alacritty.app" "/Applications/" "/Applications/Nix Apps/" ]; system.activationScripts.extraActivation.text = '' echo "Setting background image..." osascript -e "tell application \"System Events\" to tell every desktop to set picture to \"${./backgrounds/enby-mac.png}\" as POSIX file" ''; system.activationScripts.postActivation.text = '' echo "Setting nix-apps folder icon..." ${fileicon}/bin/fileicon set '/Applications/Nix Apps/' ${./nix-apps-folder.png} ''; system.defaults.menuExtraClock = { ShowSeconds = true; IsAnalog = false; Show24Hour = true; ShowDate = 1; # 1 = always }; # mouse speed system.defaults.".GlobalPreferences"."com.apple.mouse.scaling" = 0.9; # disable quarantine for applications system.defaults.LaunchServices.LSQuarantine = false; system.defaults.NSGlobalDomain.AppleInterfaceStyle = "Dark"; # Show all info in finder system.defaults.NSGlobalDomain.AppleShowAllExtensions = true; system.defaults.NSGlobalDomain.AppleShowAllFiles = true; # Need re-login to apply system.defaults.NSGlobalDomain.InitialKeyRepeat = 15; system.defaults.NSGlobalDomain.KeyRepeat = 2; # don't fuck with my typing system.defaults.NSGlobalDomain.NSAutomaticCapitalizationEnabled = false; system.defaults.NSGlobalDomain.NSAutomaticDashSubstitutionEnabled = false; system.defaults.NSGlobalDomain.NSAutomaticPeriodSubstitutionEnabled = false; system.defaults.NSGlobalDomain.NSAutomaticQuoteSubstitutionEnabled = false; system.defaults.NSGlobalDomain.NSAutomaticSpellingCorrectionEnabled = false; # don't save things to icloud by default system.defaults.NSGlobalDomain.NSDocumentSaveNewDocumentsToCloud = false; # advanced printing menu by default system.defaults.NSGlobalDomain.PMPrintingExpandedStateForPrint = true; # scrolling the right way system.defaults.NSGlobalDomain."com.apple.swipescrolldirection" = false; system.defaults.NSGlobalDomain."com.apple.trackpad.trackpadCornerClickBehavior" = 1; system.defaults.finder.FXPreferredViewStyle = "Nlsv"; # list view system.startup.chime = false; }