Compare commits
5
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7670683b03 | ||
|
|
d88426eb68 | ||
|
|
cc996f7550 | ||
|
|
f5be95e5c3 | ||
|
|
a40695beaa |
@@ -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}";
|
||||||
|
|||||||
@@ -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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
+92
-80
@@ -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
|
|
||||||
"xquartz"
|
# Browsers
|
||||||
|
"brave-browser"
|
||||||
|
"firefox"
|
||||||
|
"google-chrome"
|
||||||
|
|
||||||
|
# x11
|
||||||
|
"xquartz"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
''
|
||||||
@@ -127,8 +127,7 @@ with pkgs;
|
|||||||
]
|
]
|
||||||
))
|
))
|
||||||
|
|
||||||
# LLM
|
|
||||||
ollama # Launchd definition in hosts/darwin/default.nix
|
|
||||||
|
|
||||||
# Social
|
# Social
|
||||||
pidgin
|
pidgin
|
||||||
|
|||||||
Reference in New Issue
Block a user