5 Commits
7 changed files with 159 additions and 95 deletions
+1 -10
View File
@@ -24,6 +24,7 @@ in
imports = [ imports = [
../../modules/darwin/default.nix ../../modules/darwin/default.nix
../../modules/darwin/home-manager.nix ../../modules/darwin/home-manager.nix
# ../../modules/darwin/ai.nix
]; ];
# Setup user, packages, programs # Setup user, packages, programs
@@ -131,16 +132,6 @@ in
StandardOutPath = "/tmp/emacs.out.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 = { system = {
stateVersion = 4; stateVersion = 4;
primaryUser = "${user}"; primaryUser = "${user}";
+25
View File
@@ -0,0 +1,25 @@
{ pkgs, llm-agents, ... }:
{
environment.systemPackages = [
ollama
# CLI coding agent from llm-agents.nix input
llm-agents.packages.${pkgs.stdenv.hostPlatform.system}.hermes-agent
# Hermes desktop GUI
llm-agents.packages.${pkgs.stdenv.hostPlatform.system}.hermes-desktop
];
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";
};
};
}
+94 -82
View File
@@ -1,46 +1,53 @@
{pkgs, ...}: { pkgs, ... }:
{ {
homebrew = { homebrew = {
enable = true; enable = true;
global = { global = {
brewfile = true; brewfile = true;
}; };
brews = []; brews = [ ];
onActivation = { onActivation = {
cleanup = "uninstall"; cleanup = "none";
autoUpdate = true; autoUpdate = true;
upgrade = true; upgrade = true;
}; };
masApps = { masApps = {
# These app IDs are from using the mas CLI app # These app IDs are from using the mas CLI app
# mas = mac app store # mas = mac app store
# https://github.com/mas-cli/mas # https://github.com/mas-cli/mas
# #
# $ nix shell nixpkgs#mas # $ nix shell nixpkgs#mas
# $ mas search <app name> # $ mas search <app name>
# #
# If you have previously added these apps to your Mac App Store profile (but not installed them on this system), # If you have previously added these apps to your Mac App Store profile (but not installed them on this system),
# you may receive an error message "Redownload Unavailable with This Apple ID". # you may receive an error message "Redownload Unavailable with This Apple ID".
# This message is safe to ignore. # This message is safe to ignore.
"1Password for Safari" = 1569813296; # (8.10.82) "1Password for Safari" = 1569813296; # (8.10.82)
"Affinity Designer 2" = 1616831348; "Affinity Designer 2" = 1616831348;
"Affinity Photo 2: Image Editor" = 1616822987; "Affinity Photo 2: Image Editor" = 1616822987;
"Affinity Publisher 2" = 1606941598; "Affinity Publisher 2" = 1606941598;
# "DaisyDisk" = 409907375; # (4.32) # Don't use this, we need the official version that is not sandboxed # "DaisyDisk" = 409907375; # (4.32) # Don't use this, we need the official version that is not sandboxed
"Fantastical - Calendar" = 975937182; "Fantastical - Calendar" = 975937182;
"Fedistar" = 6445863996; # (1.13.1) "Fedistar" = 6445863996; # (1.13.1)
"Home Assistant" = 1099568401; # (2025.7.1) "Home Assistant" = 1099568401; # (2025.7.1)
"Ice Cubes for Mastodon" = 6444915884; # (1.11.3) "Ice Cubes for Mastodon" = 6444915884; # (1.11.3)
"LibreOffice" = 1630474372; "LibreOffice" = 1630474372;
"Monal - XMPP Chatting " = 1637078500; "Monal - XMPP Chatting " = 1637078500;
"Microsoft Copilot" = 6738511300; # (25.7.440804001)
"Microsoft Outlook" = 985367838; # (16.111.3)
"Microsoft Excel" = 462058435; # (16.111.3)
"Microsoft Word" = 462054704; # (16.111.3)
"Microsoft PowerPoint" = 462062816; # (16.111.3)
"OneDrive" = 823766827; # (26.134.0713)
"MQTT Explorer" = 1455214828; # (0.3.5) "MQTT Explorer" = 1455214828; # (0.3.5)
"Night Sky" = 475772902; # 475772902 "Night Sky" = 475772902; # 475772902
"Native SQLite Manager" = 1416282836; # (1.31.0) "Native SQLite Manager" = 1416282836; # (1.31.0)
"Remarkable Desktop" = 1276493162; # (3.19.0) "Remarkable Desktop" = 1276493162; # (3.19.0)
"Slack for Desktop" = 803453959; # (4.45.60) "Slack for Desktop" = 803453959; # (4.45.60)
"WhatsApp Messenger" = 310633997; # (26.30.77)
"WiFi Explorer: Scanner" = 494803304; # (3.5.6) "WiFi Explorer: Scanner" = 494803304; # (3.5.6)
"Windows App Installer" = 1295203466; # (1.0.16) "Windows App Installer" = 1295203466; # (1.0.16)
"Wireguard" = 1451685025; # (1.0.16) "Wireguard" = 1451685025; # (1.0.16)
@@ -48,80 +55,85 @@ homebrew = {
}; };
casks = [ casks = [
# Development Tools # Development Tools
"arduino-ide" "arduino-ide"
"docker-desktop" "docker-desktop"
"iterm2" "iterm2"
"oracle-jdk" "oracle-jdk"
"visual-studio-code" "visual-studio-code"
# Creative tools # Creative tools
"blender" "blender"
"gimp" "gimp"
"inkscape" "inkscape"
"vcv-rack" "vcv-rack"
#"affinity-designer" #"affinity-designer"
#"affinity-photo" #"affinity-photo"
#"affinity-publisher" #"affinity-publisher"
# Communication Tools # Communication Tools
"adium" "adium"
"discord" "discord"
"signal" "signal"
"webex" "webex"
"whatsapp" "zoom"
"zoom"
# Utility Tools # Utility Tools
"blackhole-16ch" "blackhole-16ch"
"blackhole-2ch" "blackhole-2ch"
"box-drive" "box-drive"
"box-tools" "box-tools"
"daisydisk" "daisydisk"
"karabiner-elements" "karabiner-elements"
"keybase" "keybase"
"moonlight" "moonlight"
"spamsieve" "spamsieve"
"syncthing-app" "syncthing-app"
"synology-drive" "synology-drive"
"tigervnc"
# Entertainment Tools #LLM
"qobuz" "ollama-app"
"steam" "hermes-desktop"
"handbrake-app" "jan"
"jellyfin-media-player"
"mediaelch"
"obs"
"vimediamanager"
"vlc"
# Productivity Tools # Entertainment Tools
"1Password" "qobuz"
"bitwarden" "steam"
"calibre" "handbrake-app"
"dbeaver-community" "jellyfin-media-player"
"element" "mediaelch"
"gpg-suite" "obs"
"macdown-3000" "vimediamanager"
"mailmate@beta" "vlc"
"orcaslicer"
"remanager"
"qmk-toolbox"
"smartsheet"
# "sqlitestudio" # Doesn't work without Rosetta
# "virtualbox" # build error? # Productivity Tools
"copilot-cli" "1Password"
"bitwarden"
"calibre"
"dbeaver-community"
"element"
"gpg-suite"
"macdown-3000"
"mailmate@beta"
"orcaslicer"
# "remanager"
"qmk-toolbox"
"smartsheet"
# "sqlitestudio" # Doesn't work without Rosetta
# Browsers # "virtualbox" # build error?
"brave-browser"
"firefox"
"google-chrome"
# x11 # Browsers
"xquartz" "brave-browser"
]; "firefox"
"google-chrome"
# x11
"xquartz"
];
}; };
} }
+1 -1
View File
@@ -1,7 +1,7 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
let let
emacsOverlaySha256 = "1923mymd50zpz0mq34jpcn6jgq6li92j8wvkarl0y594c01x52g9"; emacsOverlaySha256 = "07i9zb4rw9zwip9a49fv0q60ak025vn92r48vk7ns61was1mzn9s";
in in
{ {
home-manager.backupFileExtension = "nix-backup"; home-manager.backupFileExtension = "nix-backup";
+7
View File
@@ -62,6 +62,9 @@ in
}; };
stateVersion = "23.11"; stateVersion = "23.11";
}; };
home.activation.ensureNpmCliTools = import ./npm.nix { inherit lib pkgs; };
catppuccin = { catppuccin = {
autoEnable = true; autoEnable = true;
enable = true; enable = true;
@@ -184,6 +187,7 @@ in
initContent = initContent =
let let
zshConfigEarlyInit = lib.mkOrder 500 '' zshConfigEarlyInit = lib.mkOrder 500 ''
ulimit -n 524288
if [[ -f /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh ]]; then if [[ -f /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh ]]; then
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh . /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
. /nix/var/nix/profiles/default/etc/profile.d/nix.sh . /nix/var/nix/profiles/default/etc/profile.d/nix.sh
@@ -200,6 +204,9 @@ in
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
# Define variables for directories # Define variables for directories
export PATH=$HOME/.local/bin:$PATH
export PATH=$HOME/.pnpm-packages/bin:$HOME/.pnpm-packages:$PATH export PATH=$HOME/.pnpm-packages/bin:$HOME/.pnpm-packages:$PATH
export PATH=$HOME/.npm-packages/bin:$HOME/bin:$PATH export PATH=$HOME/.npm-packages/bin:$HOME/bin:$PATH
export PATH=$HOME/.local/share/bin:$PATH export PATH=$HOME/.local/share/bin:$PATH
+30
View File
@@ -0,0 +1,30 @@
{ lib, pkgs }:
let
npmPackages = [
"@enact/cli"
"@webos-tools/cli"
"@anthropic-ai/claude-code"
"patch-package"
];
in
lib.hm.dag.entryAfter [ "writeBoundary" ] ''
# Ensure required npm CLI tools are installed in the user prefix.
NPM_BIN="${pkgs.nodejs}/bin/npm"
export NPM_CONFIG_PREFIX="$HOME/.npm-packages"
export PATH="${pkgs.nodejs}/bin:$NPM_CONFIG_PREFIX/bin:$PATH"
if [[ ! -x "$NPM_BIN" ]]; then
echo "npm not found; skipping npm CLI installation step"
exit 0
fi
for pkg in ${lib.concatStringsSep " " (map lib.escapeShellArg npmPackages)}; do
if "$NPM_BIN" list -g --depth=0 "$pkg" >/dev/null 2>&1; then
echo "npm package already installed: $pkg"
else
echo "installing npm package: $pkg"
"$NPM_BIN" install -g "$pkg"
fi
done
''
+1 -2
View File
@@ -127,8 +127,7 @@ with pkgs;
] ]
)) ))
# LLM
ollama # Launchd definition in hosts/darwin/default.nix
# Social # Social
pidgin pidgin