{ config, pkgs, llm-agents, ... }: let user = "olaf"; in { security = { pam = { services = { sudo_local = { touchIdAuth = true; }; }; }; }; imports = [ ../../modules/darwin/home-manager.nix ../../modules/shared ]; # Setup user, packages, programs nix = { package = pkgs.nix; settings = { trusted-users = [ "@admin" "${user}" ]; substituters = [ "https://nix-community.cachix.org" "https://cache.nixos.org" ]; trusted-public-keys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ]; }; gc = { automatic = true; interval = { Weekday = 0; Hour = 2; Minute = 0; }; options = "--delete-older-than 30d"; }; extraOptions = '' experimental-features = nix-command flakes ''; }; users.groups = { gidevelopert = { description = "Git Common Rights"; gid = 500; name = "gitdeveloper"; members = [ "olaf" ]; }; }; users.knownGroups = [ "gitdeveloper" ]; # Turn off NIX_PATH warnings now that we're using flakes system.checks.verifyNixPath = false; fonts.packages = with pkgs; [ dejavu_fonts emacs-all-the-icons-fonts # feather-font # from overlayj jetbrains-mono font-awesome noto-fonts noto-fonts-color-emoji # jetbrains-mono hack-font meslo-lgs-nf nerd-fonts.fira-code nerd-fonts.droid-sans-mono ] # this adds all nerd-fonts Gigabytes of them, too much. # ++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts) ; # Load configuration that is shared across systems environment.systemPackages = with pkgs; [ # Emacs with automatic package management from overlay (emacsWithPackagesFromUsePackage { config = ../config/emacs/emacs.el; defaultInitFile = true; package = emacs-git; alwaysEnsure = true; extraEmacsPackages = epkgs: with epkgs; [ magit company nix-mode use-package ]; }) ] ++ (import ../../modules/shared/packages.nix { inherit pkgs llm-agents; }) ; launchd.user.agents.emacs.path = [ config.environment.systemPath ]; launchd.user.agents.emacs.serviceConfig = { KeepAlive = true; ProgramArguments = [ "/bin/sh" "-c" "/bin/wait4path ${pkgs.emacs}/bin/emacs && exec ${pkgs.emacs}/bin/emacs --fg-daemon" ]; StandardErrorPath = "/tmp/emacs.err.log"; StandardOutPath = "/tmp/emacs.out.log"; }; launchd.user.agents.ollama = { command = "${pkgs.ollama}/bin/ollama serve"; serviceConfig = { KeepAlive = true; RunAtLoad = true; StandardOutPath = "/tmp/ollama.out.log"; StandardErrorPath = "/tmp/ollama.err.log"; }; }; system = { stateVersion = 4; primaryUser = "${user}"; defaults = { NSGlobalDomain = { AppleShowAllExtensions = true; ApplePressAndHoldEnabled = false; # 120, 90, 60, 30, 12, 6, 2 KeyRepeat = 2; # 120, 94, 68, 35, 25, 15 InitialKeyRepeat = 15; "com.apple.mouse.tapBehavior" = 1; "com.apple.sound.beep.volume" = 0.0; "com.apple.sound.beep.feedback" = 0; }; dock = { autohide = false; show-recents = false; launchanim = true; orientation = "bottom"; tilesize = 48; }; finder = { _FXShowPosixPathInTitle = false; }; trackpad = { Clicking = true; TrackpadThreeFingerDrag = true; }; }; patches = [ (pkgs.writeText "auto_master.patch" '' -- /etc/auto_master +++ /etc/auto_master @@ -6,3 +6,5 @@ /home auto_home -nobrowse,hidefromfinder /Network/Servers -fstab /- -static +/System/Volumes/Data/Users/olaf/NAS auto_nfs_smb -nosuid,noowners + '') ]; }; }