Compare commits
13
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7670683b03 | ||
|
|
d88426eb68 | ||
|
|
cc996f7550 | ||
|
|
f5be95e5c3 | ||
|
|
a40695beaa | ||
|
|
e57c792874 | ||
|
|
984a677327 | ||
|
|
43d4ede188 | ||
|
|
d45e239926 | ||
|
|
17070a9a51 | ||
|
|
483712a34c | ||
|
|
534d3b9353 | ||
|
|
2fb38b685d |
@@ -24,10 +24,7 @@
|
|||||||
url = "github:zhaofengli-wip/nix-homebrew";
|
url = "github:zhaofengli-wip/nix-homebrew";
|
||||||
inputs.brew-src.follows = "brew-src";
|
inputs.brew-src.follows = "brew-src";
|
||||||
};
|
};
|
||||||
homebrew-bundle = {
|
|
||||||
url = "github:homebrew/homebrew-bundle";
|
|
||||||
flake = false;
|
|
||||||
};
|
|
||||||
homebrew-core = {
|
homebrew-core = {
|
||||||
url = "github:homebrew/homebrew-core";
|
url = "github:homebrew/homebrew-core";
|
||||||
flake = false;
|
flake = false;
|
||||||
@@ -60,7 +57,6 @@
|
|||||||
self,
|
self,
|
||||||
darwin,
|
darwin,
|
||||||
nix-homebrew,
|
nix-homebrew,
|
||||||
homebrew-bundle,
|
|
||||||
homebrew-core,
|
homebrew-core,
|
||||||
homebrew-cask,
|
homebrew-cask,
|
||||||
home-manager,
|
home-manager,
|
||||||
@@ -139,10 +135,9 @@
|
|||||||
taps = {
|
taps = {
|
||||||
"homebrew/homebrew-core" = homebrew-core;
|
"homebrew/homebrew-core" = homebrew-core;
|
||||||
"homebrew/homebrew-cask" = homebrew-cask;
|
"homebrew/homebrew-cask" = homebrew-cask;
|
||||||
"homebrew/homebrew-bundle" = homebrew-bundle;
|
|
||||||
};
|
};
|
||||||
mutableTaps = false;
|
mutableTaps = false;
|
||||||
autoMigrate = true;
|
# autoMigrate = true;
|
||||||
};
|
};
|
||||||
home-manager.sharedModules = [
|
home-manager.sharedModules = [
|
||||||
# mac-app-util.homeManagerModules.default
|
# mac-app-util.homeManagerModules.default
|
||||||
|
|||||||
@@ -22,9 +22,9 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
|
../../modules/darwin/default.nix
|
||||||
../../modules/darwin/home-manager.nix
|
../../modules/darwin/home-manager.nix
|
||||||
../../modules/shared
|
# ../../modules/darwin/ai.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
# Setup user, packages, programs
|
# Setup user, packages, programs
|
||||||
@@ -115,8 +115,8 @@ in
|
|||||||
use-package
|
use-package
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
]
|
]
|
||||||
++ (import ../../modules/shared/packages.nix { inherit pkgs llm-agents; })
|
++ (import ../../modules/darwin/packages.nix { inherit pkgs llm-agents; })
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
@@ -132,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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,139 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
homebrew = {
|
||||||
|
enable = true;
|
||||||
|
global = {
|
||||||
|
brewfile = true;
|
||||||
|
};
|
||||||
|
brews = [ ];
|
||||||
|
|
||||||
|
onActivation = {
|
||||||
|
cleanup = "none";
|
||||||
|
autoUpdate = true;
|
||||||
|
upgrade = true;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
masApps = {
|
||||||
|
# These app IDs are from using the mas CLI app
|
||||||
|
# mas = mac app store
|
||||||
|
# https://github.com/mas-cli/mas
|
||||||
|
#
|
||||||
|
# $ nix shell nixpkgs#mas
|
||||||
|
# $ mas search <app name>
|
||||||
|
#
|
||||||
|
# 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".
|
||||||
|
# This message is safe to ignore.
|
||||||
|
"1Password for Safari" = 1569813296; # (8.10.82)
|
||||||
|
"Affinity Designer 2" = 1616831348;
|
||||||
|
"Affinity Photo 2: Image Editor" = 1616822987;
|
||||||
|
"Affinity Publisher 2" = 1606941598;
|
||||||
|
# "DaisyDisk" = 409907375; # (4.32) # Don't use this, we need the official version that is not sandboxed
|
||||||
|
"Fantastical - Calendar" = 975937182;
|
||||||
|
"Fedistar" = 6445863996; # (1.13.1)
|
||||||
|
"Home Assistant" = 1099568401; # (2025.7.1)
|
||||||
|
"Ice Cubes for Mastodon" = 6444915884; # (1.11.3)
|
||||||
|
"LibreOffice" = 1630474372;
|
||||||
|
"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)
|
||||||
|
"Night Sky" = 475772902; # 475772902
|
||||||
|
"Native SQLite Manager" = 1416282836; # (1.31.0)
|
||||||
|
"Remarkable Desktop" = 1276493162; # (3.19.0)
|
||||||
|
"Slack for Desktop" = 803453959; # (4.45.60)
|
||||||
|
"WhatsApp Messenger" = 310633997; # (26.30.77)
|
||||||
|
"WiFi Explorer: Scanner" = 494803304; # (3.5.6)
|
||||||
|
"Windows App Installer" = 1295203466; # (1.0.16)
|
||||||
|
"Wireguard" = 1451685025; # (1.0.16)
|
||||||
|
### "1Password: Password Manager" = 1511601750; # (8.11.0) Does not seem to insta
|
||||||
|
};
|
||||||
|
|
||||||
|
casks = [
|
||||||
|
# Development Tools
|
||||||
|
"arduino-ide"
|
||||||
|
"docker-desktop"
|
||||||
|
"iterm2"
|
||||||
|
"oracle-jdk"
|
||||||
|
"visual-studio-code"
|
||||||
|
|
||||||
|
# Creative tools
|
||||||
|
"blender"
|
||||||
|
"gimp"
|
||||||
|
"inkscape"
|
||||||
|
"vcv-rack"
|
||||||
|
#"affinity-designer"
|
||||||
|
#"affinity-photo"
|
||||||
|
#"affinity-publisher"
|
||||||
|
|
||||||
|
# Communication Tools
|
||||||
|
"adium"
|
||||||
|
"discord"
|
||||||
|
"signal"
|
||||||
|
"webex"
|
||||||
|
"zoom"
|
||||||
|
|
||||||
|
# Utility Tools
|
||||||
|
|
||||||
|
"blackhole-16ch"
|
||||||
|
"blackhole-2ch"
|
||||||
|
"box-drive"
|
||||||
|
"box-tools"
|
||||||
|
"daisydisk"
|
||||||
|
"karabiner-elements"
|
||||||
|
"keybase"
|
||||||
|
"moonlight"
|
||||||
|
"spamsieve"
|
||||||
|
"syncthing-app"
|
||||||
|
"synology-drive"
|
||||||
|
"tigervnc"
|
||||||
|
|
||||||
|
#LLM
|
||||||
|
"ollama-app"
|
||||||
|
"hermes-desktop"
|
||||||
|
"jan"
|
||||||
|
|
||||||
|
# Entertainment Tools
|
||||||
|
"qobuz"
|
||||||
|
"steam"
|
||||||
|
"handbrake-app"
|
||||||
|
"jellyfin-media-player"
|
||||||
|
"mediaelch"
|
||||||
|
"obs"
|
||||||
|
"vimediamanager"
|
||||||
|
"vlc"
|
||||||
|
|
||||||
|
# Productivity Tools
|
||||||
|
"1Password"
|
||||||
|
"bitwarden"
|
||||||
|
"calibre"
|
||||||
|
"dbeaver-community"
|
||||||
|
"element"
|
||||||
|
"gpg-suite"
|
||||||
|
"macdown-3000"
|
||||||
|
"mailmate@beta"
|
||||||
|
"orcaslicer"
|
||||||
|
# "remanager"
|
||||||
|
"qmk-toolbox"
|
||||||
|
"smartsheet"
|
||||||
|
# "sqlitestudio" # Doesn't work without Rosetta
|
||||||
|
|
||||||
|
# "virtualbox" # build error?
|
||||||
|
|
||||||
|
|
||||||
|
# Browsers
|
||||||
|
"brave-browser"
|
||||||
|
"firefox"
|
||||||
|
"google-chrome"
|
||||||
|
|
||||||
|
# x11
|
||||||
|
"xquartz"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
_:
|
|
||||||
|
|
||||||
[
|
|
||||||
# Development Tools
|
|
||||||
"arduino-ide"
|
|
||||||
"homebrew/cask/docker-desktop"
|
|
||||||
"iterm2"
|
|
||||||
"oracle-jdk"
|
|
||||||
"visual-studio-code"
|
|
||||||
|
|
||||||
# Creative tools
|
|
||||||
"blender"
|
|
||||||
"gimp"
|
|
||||||
"inkscape"
|
|
||||||
"vcv-rack"
|
|
||||||
#"affinity-designer"
|
|
||||||
#"affinity-photo"
|
|
||||||
#"affinity-publisher"
|
|
||||||
|
|
||||||
# Communication Tools
|
|
||||||
"adium"
|
|
||||||
"discord"
|
|
||||||
"signal"
|
|
||||||
"webex"
|
|
||||||
"whatsapp"
|
|
||||||
"zoom"
|
|
||||||
|
|
||||||
|
|
||||||
# Utility Tools
|
|
||||||
|
|
||||||
"blackhole-16ch"
|
|
||||||
"blackhole-2ch"
|
|
||||||
"box-drive"
|
|
||||||
"box-tools"
|
|
||||||
"daisydisk"
|
|
||||||
"karabiner-elements"
|
|
||||||
"keybase"
|
|
||||||
"spamsieve"
|
|
||||||
"syncthing-app"
|
|
||||||
"synology-drive"
|
|
||||||
|
|
||||||
# Entertainment Tools
|
|
||||||
"qobuz"
|
|
||||||
"steam"
|
|
||||||
"handbrake-app"
|
|
||||||
"jellyfin-media-player"
|
|
||||||
"mediaelch"
|
|
||||||
"obs"
|
|
||||||
"vimediamanager"
|
|
||||||
"vlc"
|
|
||||||
|
|
||||||
# Productivity Tools
|
|
||||||
"1Password"
|
|
||||||
"bitwarden"
|
|
||||||
"calibre"
|
|
||||||
"dbeaver-community"
|
|
||||||
"element"
|
|
||||||
"gpg-suite"
|
|
||||||
"macdown-3000"
|
|
||||||
"mailmate"
|
|
||||||
"orcaslicer"
|
|
||||||
"remanager"
|
|
||||||
"qmk-toolbox"
|
|
||||||
"smartsheet"
|
|
||||||
"spamsieve"
|
|
||||||
# "sqlitestudio" # Doesn't work without Rosetta
|
|
||||||
"tigervnc"
|
|
||||||
# "virtualbox" # build error?
|
|
||||||
"copilot-cli"
|
|
||||||
|
|
||||||
# Browsers
|
|
||||||
"brave-browser"
|
|
||||||
"firefox"
|
|
||||||
"google-chrome"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# x11
|
|
||||||
"xquartz"
|
|
||||||
]
|
|
||||||
@@ -1,10 +1,9 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
emacsOverlaySha256 = "0pqnl05j86pyvrlqh5kk4sximi749xqgiffq47grw7v98nqd2yin";
|
emacsOverlaySha256 = "07i9zb4rw9zwip9a49fv0q60ak025vn92r48vk7ns61was1mzn9s";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
home-manager.backupFileExtension = "nix-backup";
|
home-manager.backupFileExtension = "nix-backup";
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
config = {
|
config = {
|
||||||
@@ -18,7 +17,6 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
overlays =
|
overlays =
|
||||||
# Apply each overlay found in the /overlays directory
|
|
||||||
let path = ../../overlays; in with builtins;
|
let path = ../../overlays; in with builtins;
|
||||||
map (n: import (path + ("/" + n)))
|
map (n: import (path + ("/" + n)))
|
||||||
(filter (n: match ".*\\.nix" n != null ||
|
(filter (n: match ".*\\.nix" n != null ||
|
||||||
@@ -31,4 +29,4 @@ in
|
|||||||
}))
|
}))
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -12,6 +12,8 @@ let
|
|||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
|
# Shared file definitions moved into the Darwin module set.
|
||||||
|
|
||||||
# Raycast script so that "Run Emacs" is available and uses Emacs daemon
|
# Raycast script so that "Run Emacs" is available and uses Emacs daemon
|
||||||
"${xdg_dataHome}/bin/emacsclient" = {
|
"${xdg_dataHome}/bin/emacsclient" = {
|
||||||
executable = true;
|
executable = true;
|
||||||
|
|||||||
+426
-58
@@ -14,13 +14,13 @@ let
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
emacs &
|
emacs &
|
||||||
'';
|
'';
|
||||||
sharedFiles = import ../shared/files.nix { inherit config pkgs; };
|
|
||||||
additionalFiles = import ./files.nix { inherit user config pkgs; };
|
additionalFiles = import ./files.nix { inherit user config pkgs; };
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./dock
|
./dock
|
||||||
|
./brewery.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
# It me
|
# It me
|
||||||
@@ -29,53 +29,18 @@ in
|
|||||||
home = "/Users/${user}";
|
home = "/Users/${user}";
|
||||||
isHidden = false;
|
isHidden = false;
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.zsh;
|
||||||
|
openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILCEBZrQ9F3nLhEM9uqdPijut11vhYkdmLtj7gT/zgV3 Key Nov 2024"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA9vrzEHmWEX5sCVsp6J4tVrxEzzqMSRkijHEfVg2WrC cardno:36_431_811"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG5BytZleG7m1926MSNwVXyPJ0QD5Z919cFCp22BN5hV cardno:35_775_013"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAl/jn18uVPJ9Uyv8gqk80gVQaMHrcd1b+B/SB/6RsX8 cardno:36_431_751"
|
||||||
|
"sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAILVdAx+U1xhcJmh1hRaF0CVB0ivIF/U0oIbAWYPwko4iAAAABHNzaDo= Yubikey 35775013"
|
||||||
|
"sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIIjnJyJUDnia6ZWPRa5iSBKCb+DMGmFtiFa+9gkeiTwQAAAABHNzaDo= Yubikey 36431751"
|
||||||
|
"sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIFhuPQUHUHchx8wHVCciMi6etzZStkpECbG/r/1imy+kAAAABHNzaDo= Yubikey 36431881"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
homebrew = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
casks = pkgs.callPackage ./casks.nix { };
|
|
||||||
onActivation = {
|
|
||||||
cleanup = "uninstall";
|
|
||||||
autoUpdate = true;
|
|
||||||
upgrade = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# These app IDs are from using the mas CLI app
|
|
||||||
# mas = mac app store
|
|
||||||
# https://github.com/mas-cli/mas
|
|
||||||
#
|
|
||||||
# $ nix shell nixpkgs#mas
|
|
||||||
# $ mas search <app name>
|
|
||||||
#
|
|
||||||
# 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".
|
|
||||||
# This message is safe to ignore.
|
|
||||||
|
|
||||||
masApps = {
|
|
||||||
"1Password for Safari" = 1569813296; # (8.10.82)
|
|
||||||
"Affinity Designer 2" = 1616831348;
|
|
||||||
"Affinity Photo 2: Image Editor" = 1616822987;
|
|
||||||
"Affinity Publisher 2" = 1606941598;
|
|
||||||
"Apple Remote Desktop" = 409907375; # (3.11)
|
|
||||||
# "DaisyDisk" = 411643860; # (4.32) # Don't use this, we need the official version that is not sandboxed
|
|
||||||
"Fantastical - Calendar" = 975937182;
|
|
||||||
" Fedistar" = 6445863996; # (1.13.1)
|
|
||||||
"Home Assistant" = 1099568401; # (2025.7.1)
|
|
||||||
"Ice Cubes for Mastodon" = 6444915884; # (1.11.3)
|
|
||||||
"LibreOffice" = 1630474372;
|
|
||||||
"Monal - XMPP Chatting " = 1637078500;
|
|
||||||
"MQTT Explorer" = 1455214828; # (0.3.5)
|
|
||||||
"Night Sky" = 475772902; # 475772902
|
|
||||||
"Native SQLite Manager" = 1416282836; # (1.31.0)
|
|
||||||
"Remarkable Desktop" = 1276493162; # (3.19.0)
|
|
||||||
|
|
||||||
"Slack for Desktop" = 803453959; # (4.45.60)
|
|
||||||
"WiFi Explorer: Scanner" = 494803304; # (3.5.6)
|
|
||||||
"Wireguard" = 1451685025; # (1.0.16)
|
|
||||||
### "1Password: Password Manager" = 1511601750; # (8.11.0) Does not seem to insta
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable home-manager
|
# Enable home-manager
|
||||||
home-manager = {
|
home-manager = {
|
||||||
@@ -92,36 +57,439 @@ in
|
|||||||
home = {
|
home = {
|
||||||
enableNixpkgsReleaseCheck = false;
|
enableNixpkgsReleaseCheck = false;
|
||||||
packages = pkgs.callPackage ./packages.nix { inherit llm-agents; };
|
packages = pkgs.callPackage ./packages.nix { inherit llm-agents; };
|
||||||
file = lib.mkMerge [
|
file = additionalFiles // {
|
||||||
sharedFiles
|
"emacs-launcher.command".source = myEmacsLauncher;
|
||||||
additionalFiles
|
};
|
||||||
{ "emacs-launcher.command".source = myEmacsLauncher; }
|
|
||||||
|
|
||||||
];
|
|
||||||
|
|
||||||
stateVersion = "23.11";
|
stateVersion = "23.11";
|
||||||
};
|
};
|
||||||
programs = {
|
|
||||||
} // import ../shared/home-manager.nix { inherit config pkgs lib; };
|
home.activation.ensureNpmCliTools = import ./npm.nix { inherit lib pkgs; };
|
||||||
|
|
||||||
catppuccin = {
|
catppuccin = {
|
||||||
autoEnable = true;
|
autoEnable = true;
|
||||||
enable = true;
|
enable = true;
|
||||||
flavor = "mocha";
|
flavor = "mocha";
|
||||||
};
|
};
|
||||||
|
programs = {
|
||||||
|
alacritty = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
cursor = {
|
||||||
|
style = "Block";
|
||||||
|
};
|
||||||
|
|
||||||
|
window = {
|
||||||
|
opacity = 1.0;
|
||||||
|
padding = {
|
||||||
|
x = 24;
|
||||||
|
y = 24;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
font = {
|
||||||
|
normal = {
|
||||||
|
family = "MesloLGS NF";
|
||||||
|
style = "Regular";
|
||||||
|
};
|
||||||
|
size = lib.mkMerge [
|
||||||
|
(lib.mkIf pkgs.stdenv.hostPlatform.isLinux 10)
|
||||||
|
(lib.mkIf pkgs.stdenv.hostPlatform.isDarwin 14)
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
dynamic_padding = true;
|
||||||
|
decorations = "full";
|
||||||
|
title = "Terminal";
|
||||||
|
class = {
|
||||||
|
instance = "Alacritty";
|
||||||
|
general = "Alacritty";
|
||||||
|
};
|
||||||
|
|
||||||
|
colors = {
|
||||||
|
primary = {
|
||||||
|
background = "0x1f2528";
|
||||||
|
foreground = "0xc0c5ce";
|
||||||
|
};
|
||||||
|
|
||||||
|
normal = {
|
||||||
|
black = "0x1f2528";
|
||||||
|
red = "0xec5f67";
|
||||||
|
green = "0x99c794";
|
||||||
|
yellow = "0xfac863";
|
||||||
|
blue = "0x6699cc";
|
||||||
|
magenta = "0xc594c5";
|
||||||
|
cyan = "0x5fb3b3";
|
||||||
|
white = "0xc0c5ce";
|
||||||
|
};
|
||||||
|
|
||||||
|
bright = {
|
||||||
|
black = "0x65737e";
|
||||||
|
red = "0xec5f67";
|
||||||
|
green = "0x99c794";
|
||||||
|
yellow = "0xfac863";
|
||||||
|
blue = "0x6699cc";
|
||||||
|
magenta = "0xc594c5";
|
||||||
|
cyan = "0x5fb3b3";
|
||||||
|
white = "0xd8dee9";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ssh = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
enableDefaultConfig = false;
|
||||||
|
settings = {
|
||||||
|
"*" = {
|
||||||
|
forwardAgent = false;
|
||||||
|
addKeysToAgent = "no";
|
||||||
|
compression = false;
|
||||||
|
serverAliveInterval = 0;
|
||||||
|
serverAliveCountMax = 3;
|
||||||
|
hashKnownHosts = false;
|
||||||
|
userKnownHostsFile = "~/.ssh/known_hosts";
|
||||||
|
controlMaster = "no";
|
||||||
|
controlPath = "~/.ssh/master-%r@%n:%p";
|
||||||
|
controlPersist = "no";
|
||||||
|
};
|
||||||
|
"moonunit.kolkman.org" = {
|
||||||
|
hostname = "moonunit.kolkman.org";
|
||||||
|
user = "root";
|
||||||
|
port = 2222;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
includes = [
|
||||||
|
(lib.mkIf pkgs.stdenv.hostPlatform.isLinux "/home/${user}/.ssh/config_external")
|
||||||
|
(lib.mkIf pkgs.stdenv.hostPlatform.isDarwin "/Users/${user}/.ssh/config_external")
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
gpg = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
default-key = "01B157D574FEDBB2";
|
||||||
|
no-emit-version = true;
|
||||||
|
auto-key-retrieve = true;
|
||||||
|
personal-digest-preferences = "SHA512 SHA384 SHA256 SHA224";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
zsh = {
|
||||||
|
enable = true;
|
||||||
|
autocd = false;
|
||||||
|
cdpath = [ "~/.local/share/src" ];
|
||||||
|
oh-my-zsh = {
|
||||||
|
enable = true;
|
||||||
|
plugins = [ ];
|
||||||
|
theme = "mrtazz";
|
||||||
|
};
|
||||||
|
initContent =
|
||||||
|
let
|
||||||
|
zshConfigEarlyInit = lib.mkOrder 500 ''
|
||||||
|
ulimit -n 524288
|
||||||
|
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.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$TERM" == "alacritty" ]]; then
|
||||||
|
export TERMINFO_DIRS="$HOME/.nix-profile/share/terminfo:/run/current-system/sw/share/terminfo:/nix/var/nix/profiles/default/share/terminfo:/usr/share/terminfo"
|
||||||
|
if ! infocmp alacritty >/dev/null 2>&1; then
|
||||||
|
export TERM="xterm-256color"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# GPGAgent for SSH
|
||||||
|
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
|
||||||
|
|
||||||
|
# Define variables for directories
|
||||||
|
|
||||||
|
export PATH=$HOME/.local/bin:$PATH
|
||||||
|
|
||||||
|
export PATH=$HOME/.pnpm-packages/bin:$HOME/.pnpm-packages:$PATH
|
||||||
|
export PATH=$HOME/.npm-packages/bin:$HOME/bin:$PATH
|
||||||
|
export PATH=$HOME/.local/share/bin:$PATH
|
||||||
|
export PATH=$HOME/.cargo/bin:$PATH
|
||||||
|
# Remove history data we don't want to see
|
||||||
|
export HISTIGNORE="pwd:ls:cd"
|
||||||
|
|
||||||
|
# Ripgrep alias
|
||||||
|
alias search=rg -p --glob '!node_modules/*' $@
|
||||||
|
|
||||||
|
# Emacs is my editor
|
||||||
|
export ALTERNATE_EDITOR="vim"
|
||||||
|
export EDITOR="emacs -nw"
|
||||||
|
export VISUAL="emacs"
|
||||||
|
# RMAPI remarkable
|
||||||
|
RMAPI_CONFIG=/Users/olaf/.config/rmapi
|
||||||
|
|
||||||
|
e() {
|
||||||
|
emacs -nw "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
# nix shortcuts
|
||||||
|
shell() {
|
||||||
|
nix-shell '<nixpkgs>' -A "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# pnpm is a javascript package manager
|
||||||
|
alias pn=pnpm
|
||||||
|
alias px=pnpx
|
||||||
|
'';
|
||||||
|
zshConfigLastInit = lib.mkOrder 1500 ''
|
||||||
|
# Always color ls and group directories
|
||||||
|
alias ls='ls --color=auto'
|
||||||
|
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
lib.mkMerge [
|
||||||
|
zshConfigEarlyInit
|
||||||
|
zshConfigLastInit
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
git = {
|
||||||
|
enable = true;
|
||||||
|
ignores = [ "*.swp" ];
|
||||||
|
|
||||||
|
lfs = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
settings = {
|
||||||
|
init.defaultBranch = "main";
|
||||||
|
core = {
|
||||||
|
editor = "vim";
|
||||||
|
autocrlf = "input";
|
||||||
|
};
|
||||||
|
commit.gpgsign = false;
|
||||||
|
pull.rebase = true;
|
||||||
|
rebase.autoStash = true;
|
||||||
|
user = {
|
||||||
|
name = "olaf";
|
||||||
|
email = "olaf@xolx.nl";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
signing = {
|
||||||
|
format = "openpgp";
|
||||||
|
key = null;
|
||||||
|
signByDefault = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
vim = {
|
||||||
|
enable = true;
|
||||||
|
plugins = with pkgs.vimPlugins; [
|
||||||
|
vim-airline
|
||||||
|
vim-airline-themes
|
||||||
|
vim-startify
|
||||||
|
vim-tmux-navigator
|
||||||
|
];
|
||||||
|
settings = {
|
||||||
|
ignorecase = true;
|
||||||
|
};
|
||||||
|
extraConfig = ''
|
||||||
|
"" General
|
||||||
|
set number
|
||||||
|
set history=1000
|
||||||
|
set nocompatible
|
||||||
|
set modelines=0
|
||||||
|
set encoding=utf-8
|
||||||
|
set scrolloff=3
|
||||||
|
set showmode
|
||||||
|
set showcmd
|
||||||
|
set hidden
|
||||||
|
set wildmenu
|
||||||
|
set wildmode=list:longest
|
||||||
|
set cursorline
|
||||||
|
set ttyfast
|
||||||
|
set nowrap
|
||||||
|
set ruler
|
||||||
|
set backspace=indent,eol,start
|
||||||
|
set laststatus=2
|
||||||
|
set clipboard=autoselect
|
||||||
|
|
||||||
|
" Dir stuff
|
||||||
|
set nobackup
|
||||||
|
set nowritebackup
|
||||||
|
set noswapfile
|
||||||
|
set backupdir=~/.config/vim/backups
|
||||||
|
set directory=~/.config/vim/swap
|
||||||
|
|
||||||
|
" Relative line numbers for easy movement
|
||||||
|
set relativenumber
|
||||||
|
set rnu
|
||||||
|
|
||||||
|
"" Whitespace rules
|
||||||
|
set tabstop=8
|
||||||
|
set shiftwidth=2
|
||||||
|
set softtabstop=2
|
||||||
|
set expandtab
|
||||||
|
|
||||||
|
"" Searching
|
||||||
|
set incsearch
|
||||||
|
set gdefault
|
||||||
|
|
||||||
|
"" Statusbar
|
||||||
|
set nocompatible " Disable vi-compatibility
|
||||||
|
set laststatus=2 " Always show the statusline
|
||||||
|
let g:airline_theme='bubblegum'
|
||||||
|
let g:airline_powerline_fonts = 1
|
||||||
|
|
||||||
|
"" Local keys and such
|
||||||
|
let mapleader=","
|
||||||
|
let maplocalleader=" "
|
||||||
|
|
||||||
|
"" Change cursor on mode
|
||||||
|
:autocmd InsertEnter * set cul
|
||||||
|
:autocmd InsertLeave * set nocul
|
||||||
|
|
||||||
|
"" File-type highlighting and configuration
|
||||||
|
syntax on
|
||||||
|
filetype on
|
||||||
|
filetype plugin on
|
||||||
|
filetype indent on
|
||||||
|
|
||||||
|
"" Paste from clipboard
|
||||||
|
nnoremap <Leader>, "+gP
|
||||||
|
|
||||||
|
"" Copy from clipboard
|
||||||
|
xnoremap <Leader>. "+y
|
||||||
|
|
||||||
|
"" Move cursor by display lines when wrapping
|
||||||
|
nnoremap j gj
|
||||||
|
nnoremap k gk
|
||||||
|
|
||||||
|
"" Map leader-q to quit out of window
|
||||||
|
nnoremap <leader>q :q<cr>
|
||||||
|
|
||||||
|
"" Move around split
|
||||||
|
nnoremap <C-h> <C-w>h
|
||||||
|
nnoremap <C-j> <C-w>j
|
||||||
|
nnoremap <C-k> <C-w>k
|
||||||
|
nnoremap <C-l> <C-w>l
|
||||||
|
|
||||||
|
"" Easier to yank entire line
|
||||||
|
nnoremap Y y$
|
||||||
|
|
||||||
|
"" Move buffers
|
||||||
|
nnoremap <tab> :bnext<cr>
|
||||||
|
nnoremap <S-tab> :bprev<cr>
|
||||||
|
|
||||||
|
"" Like a boss, sudo AFTER opening the file to write
|
||||||
|
cmap w!! w !sudo tee % >/dev/null
|
||||||
|
|
||||||
|
let g:startify_lists = [
|
||||||
|
\ { 'type': 'dir', 'header': [' Current Directory '. getcwd()] },
|
||||||
|
\ { 'type': 'sessions', 'header': [' Sessions'] },
|
||||||
|
\ { 'type': 'bookmarks', 'header': [' Bookmarks'] }
|
||||||
|
\ ]
|
||||||
|
|
||||||
|
let g:startify_bookmarks = [
|
||||||
|
\ '~/.local/share/src',
|
||||||
|
\ ]
|
||||||
|
|
||||||
|
let g:airline_theme='bubblegum'
|
||||||
|
let g:airline_powerline_fonts = 1
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
tmux = {
|
||||||
|
enable = true;
|
||||||
|
plugins = with pkgs.tmuxPlugins; [
|
||||||
|
vim-tmux-navigator
|
||||||
|
sensible
|
||||||
|
yank
|
||||||
|
prefix-highlight
|
||||||
|
{
|
||||||
|
plugin = power-theme;
|
||||||
|
extraConfig = ''
|
||||||
|
set -g @tmux_power_theme 'gold'
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
{
|
||||||
|
plugin = resurrect; # Used by tmux-continuum
|
||||||
|
|
||||||
|
# Use XDG data directory
|
||||||
|
# https://github.com/tmux-plugins/tmux-resurrect/issues/348
|
||||||
|
extraConfig = ''
|
||||||
|
set -g @resurrect-dir '$HOME/.cache/tmux/resurrect'
|
||||||
|
set -g @resurrect-capture-pane-contents 'on'
|
||||||
|
set -g @resurrect-pane-contents-area 'visible'
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
{
|
||||||
|
plugin = continuum;
|
||||||
|
extraConfig = ''
|
||||||
|
set -g @continuum-restore 'on'
|
||||||
|
set -g @continuum-save-interval '5' # minutes
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
];
|
||||||
|
terminal = "screen-256color";
|
||||||
|
prefix = "C-x";
|
||||||
|
escapeTime = 10;
|
||||||
|
historyLimit = 50000;
|
||||||
|
extraConfig = ''
|
||||||
|
# Remove Vim mode delays
|
||||||
|
set -g focus-events on
|
||||||
|
|
||||||
|
# Enable full mouse support
|
||||||
|
set -g mouse on
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# Key bindings
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Unbind default keys
|
||||||
|
unbind C-b
|
||||||
|
unbind '"'
|
||||||
|
unbind %
|
||||||
|
|
||||||
|
# Split panes, vertical or horizontal
|
||||||
|
bind-key x split-window -v
|
||||||
|
bind-key v split-window -h
|
||||||
|
|
||||||
|
# Move around panes with vim-like bindings (h,j,k,l)
|
||||||
|
bind-key -n M-k select-pane -U
|
||||||
|
bind-key -n M-h select-pane -L
|
||||||
|
bind-key -n M-j select-pane -D
|
||||||
|
bind-key -n M-l select-pane -R
|
||||||
|
|
||||||
|
# Smart pane switching with awareness of Vim splits.
|
||||||
|
# This is copy paste from https://github.com/christoomey/vim-tmux-navigator
|
||||||
|
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
|
||||||
|
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
|
||||||
|
bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L'
|
||||||
|
bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D'
|
||||||
|
bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' 'select-pane -U'
|
||||||
|
bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' 'select-pane -R'
|
||||||
|
tmux_version='$(tmux -V | sed -En "s/^tmux ([0-9]+(.[0-9]+)?).*/\1/p")'
|
||||||
|
if-shell -b '[ "$(echo "$tmux_version < 3.0" | bc)" = 1 ]' \
|
||||||
|
"bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\' 'select-pane -l'"
|
||||||
|
if-shell -b '[ "$(echo "$tmux_version >= 3.0" | bc)" = 1 ]' \
|
||||||
|
"bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\\\' 'select-pane -l'"
|
||||||
|
|
||||||
|
bind-key -T copy-mode-vi 'C-h' select-pane -L
|
||||||
|
bind-key -T copy-mode-vi 'C-j' select-pane -D
|
||||||
|
bind-key -T copy-mode-vi 'C-k' select-pane -U
|
||||||
|
bind-key -T copy-mode-vi 'C-l' select-pane -R
|
||||||
|
bind-key -T copy-mode-vi 'C-\' select-pane -l
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
services = {
|
services = {
|
||||||
gpg-agent = {
|
gpg-agent = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableSshSupport = true;
|
enableSshSupport = true;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
default-cache-ttl 600
|
default-cache-ttl 600
|
||||||
max-cache-ttl 7200
|
max-cache-ttl 7200
|
||||||
pinentry-program /Users/olaf/.nix-profile/bin/pinentry-mac
|
pinentry-program /Users/olaf/.nix-profile/bin/pinentry-mac
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Marked broken Oct 20, 2022 check later to remove this
|
# Marked broken Oct 20, 2022 check later to remove this
|
||||||
# https://github.com/nix-community/home-manager/issues/3344
|
# https://github.com/nix-community/home-manager/issues/3344
|
||||||
manual.manpages.enable = false;
|
manual.manpages.enable = false;
|
||||||
|
|||||||
@@ -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
|
||||||
|
''
|
||||||
+196
-6
@@ -1,12 +1,202 @@
|
|||||||
{ pkgs, llm-agents }:
|
{ pkgs, llm-agents }:
|
||||||
|
|
||||||
with pkgs;
|
with pkgs;
|
||||||
let
|
[
|
||||||
shared-packages = import ../shared/packages.nix { inherit pkgs llm-agents; };
|
# Nix
|
||||||
in
|
nixd
|
||||||
shared-packages
|
|
||||||
++ [
|
|
||||||
dockutil
|
|
||||||
mas
|
mas
|
||||||
|
|
||||||
|
# X11
|
||||||
|
libx11
|
||||||
|
libxt
|
||||||
|
libxext
|
||||||
|
libxrender
|
||||||
|
libxrandr
|
||||||
|
xterm
|
||||||
|
|
||||||
|
# security and some such
|
||||||
|
# bitwarden-desktop #Does not compile properly
|
||||||
|
# bitwarden-cli # Fails on i386
|
||||||
|
yubikey-manager # provides ykman
|
||||||
|
pinentry_mac
|
||||||
|
|
||||||
|
# General packages for development and system management
|
||||||
|
alacritty
|
||||||
|
ansible
|
||||||
|
aspell
|
||||||
|
aspellDicts.en
|
||||||
|
bash-completion
|
||||||
|
bat
|
||||||
|
btop
|
||||||
|
coreutils
|
||||||
|
difftastic
|
||||||
|
freerdp
|
||||||
|
htop
|
||||||
|
killall
|
||||||
|
minicom
|
||||||
|
mtr
|
||||||
|
ncdu
|
||||||
|
nodejs
|
||||||
|
|
||||||
|
fastfetch
|
||||||
|
nixfmt
|
||||||
|
openssh
|
||||||
|
postgresql
|
||||||
|
sqlite
|
||||||
|
unrar
|
||||||
|
wget
|
||||||
|
zip
|
||||||
|
|
||||||
|
# Development
|
||||||
|
act
|
||||||
|
autoconf
|
||||||
|
autoconf-archive
|
||||||
|
automake
|
||||||
|
ccache
|
||||||
|
clang-tools
|
||||||
|
cmake
|
||||||
|
dfu-util
|
||||||
|
go
|
||||||
|
jd-diff-patch # json diff patch
|
||||||
|
jq # json tool
|
||||||
|
llvm
|
||||||
|
nasm
|
||||||
|
ninja
|
||||||
|
pkg-config
|
||||||
|
|
||||||
|
# Encryption and security tools
|
||||||
|
age
|
||||||
|
gnupg
|
||||||
|
just
|
||||||
|
libfido2
|
||||||
|
sops
|
||||||
|
|
||||||
|
# Cloud-related tools and SDKs
|
||||||
|
docker
|
||||||
|
docker-compose
|
||||||
|
|
||||||
|
# Media-related packages
|
||||||
|
fd
|
||||||
|
ffmpeg
|
||||||
|
imagemagick
|
||||||
|
|
||||||
|
# Text and terminal utilities
|
||||||
|
hunspell
|
||||||
|
iftop
|
||||||
|
inetutils # includes Telnet
|
||||||
|
ripgrep
|
||||||
|
tmux
|
||||||
|
tree
|
||||||
|
unzip
|
||||||
|
|
||||||
|
# Python packages
|
||||||
|
virtualenv
|
||||||
|
uv
|
||||||
|
|
||||||
|
(python3.withPackages (
|
||||||
|
python-pkgs: with python-pkgs; [
|
||||||
|
bidict
|
||||||
|
blinker
|
||||||
|
certifi
|
||||||
|
charset-normalizer
|
||||||
|
click
|
||||||
|
flask
|
||||||
|
flask-socketio
|
||||||
|
h11
|
||||||
|
idna
|
||||||
|
importlib-metadata
|
||||||
|
itsdangerous
|
||||||
|
jinja2
|
||||||
|
markupsafe
|
||||||
|
mercantile
|
||||||
|
mlx-lm
|
||||||
|
numpy
|
||||||
|
pandas
|
||||||
|
pillow
|
||||||
|
python-engineio
|
||||||
|
python-socketio
|
||||||
|
requests
|
||||||
|
shapely
|
||||||
|
simple-websocket
|
||||||
|
tkinter
|
||||||
|
tqdm
|
||||||
|
urllib3
|
||||||
|
werkzeug
|
||||||
|
wsproto
|
||||||
|
zipp
|
||||||
|
]
|
||||||
|
))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Social
|
||||||
|
pidgin
|
||||||
|
|
||||||
|
# Rust Related
|
||||||
|
rustc
|
||||||
|
cargo
|
||||||
|
platformio-core
|
||||||
|
|
||||||
|
# XML, Tex and LaTex
|
||||||
|
mdbook
|
||||||
|
pandoc
|
||||||
|
rubyPackages_3_4.kramdown-rfc2629
|
||||||
|
tex-fmt
|
||||||
|
xml2rfc
|
||||||
|
zotero
|
||||||
|
|
||||||
|
(texlive.combine {
|
||||||
|
inherit (texlive)
|
||||||
|
apa6
|
||||||
|
apa7
|
||||||
|
apacite
|
||||||
|
biber
|
||||||
|
biblatex
|
||||||
|
biblatex-apa6
|
||||||
|
bibunits
|
||||||
|
catchfile
|
||||||
|
cjk
|
||||||
|
comment
|
||||||
|
courier
|
||||||
|
csquotes
|
||||||
|
draftwatermark
|
||||||
|
endfloat
|
||||||
|
enumitem
|
||||||
|
fancyhdr
|
||||||
|
fontawesome5
|
||||||
|
footmisc
|
||||||
|
footnotehyper
|
||||||
|
geometry
|
||||||
|
ifmtarg
|
||||||
|
latexmk
|
||||||
|
lipsum
|
||||||
|
lualatex-math
|
||||||
|
makecell
|
||||||
|
microtype
|
||||||
|
multirow
|
||||||
|
nowidow
|
||||||
|
parskip
|
||||||
|
ragged2e
|
||||||
|
scalerel
|
||||||
|
scheme-small
|
||||||
|
selnolig
|
||||||
|
sourcesanspro
|
||||||
|
svg
|
||||||
|
tcolorbox
|
||||||
|
texcount
|
||||||
|
threeparttable
|
||||||
|
tikzfill
|
||||||
|
titlesec
|
||||||
|
titling
|
||||||
|
tocloft
|
||||||
|
transparent
|
||||||
|
upquote
|
||||||
|
url
|
||||||
|
xecjk
|
||||||
|
xifthen
|
||||||
|
xurl
|
||||||
|
;
|
||||||
|
})
|
||||||
|
|
||||||
|
dockutil
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
## Shared
|
|
||||||
Much of the code running on macOS is actually found here.
|
|
||||||
|
|
||||||
This configuration gets imported by both modules. Some configuration examples include `git`, `zsh`, `vim`, and `tmux`.
|
|
||||||
|
|
||||||
## Layout
|
|
||||||
```
|
|
||||||
.
|
|
||||||
├── config # Config files not written in Nix
|
|
||||||
├── cachix # Defines cachix, a global cache for builds
|
|
||||||
├── default.nix # Defines how we import overlays
|
|
||||||
├── files.nix # Non-Nix, static configuration files (now immutable!)
|
|
||||||
├── home-manager.nix # The goods; most all shared config lives here
|
|
||||||
├── packages.nix # List of packages to share
|
|
||||||
|
|
||||||
```
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
{ pkgs, config, ... }:
|
|
||||||
|
|
||||||
# let
|
|
||||||
# githubPublicKey = "ssh-ed25519 AAAA...";
|
|
||||||
# in
|
|
||||||
{
|
|
||||||
|
|
||||||
# ".ssh/id_github.pub" = {
|
|
||||||
# text = githubPublicKey;
|
|
||||||
# };
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,427 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
name = "olaf";
|
|
||||||
user = "olaf";
|
|
||||||
email = "olaf@xolx.nl";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
|
|
||||||
gpg = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
default-key = "01B157D574FEDBB2" ;
|
|
||||||
no-emit-version = true;
|
|
||||||
auto-key-retrieve = true;
|
|
||||||
personal-digest-preferences= "SHA512 SHA384 SHA256 SHA224";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
# Shared shell configuration
|
|
||||||
zsh = {
|
|
||||||
enable = true;
|
|
||||||
autocd = false;
|
|
||||||
cdpath = [ "~/.local/share/src" ];
|
|
||||||
oh-my-zsh = {
|
|
||||||
enable = true;
|
|
||||||
plugins = [ ];
|
|
||||||
# theme = "fishy";
|
|
||||||
# theme = "ys";
|
|
||||||
theme = "mrtazz";
|
|
||||||
};
|
|
||||||
# plugins = [ ];
|
|
||||||
|
|
||||||
initContent =
|
|
||||||
let
|
|
||||||
zshConfigEarlyInit = lib.mkOrder 500 ''
|
|
||||||
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.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# GPGAgent for SSH
|
|
||||||
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
|
|
||||||
|
|
||||||
# Define variables for directories
|
|
||||||
export PATH=$HOME/.pnpm-packages/bin:$HOME/.pnpm-packages:$PATH
|
|
||||||
export PATH=$HOME/.npm-packages/bin:$HOME/bin:$PATH
|
|
||||||
export PATH=$HOME/.local/share/bin:$PATH
|
|
||||||
export PATH=$HOME/.cargo/bin:$PATH
|
|
||||||
# Remove history data we don't want to see
|
|
||||||
export HISTIGNORE="pwd:ls:cd"
|
|
||||||
|
|
||||||
# Ripgrep alias
|
|
||||||
alias search=rg -p --glob '!node_modules/*' $@
|
|
||||||
|
|
||||||
# Emacs is my editor
|
|
||||||
export ALTERNATE_EDITOR="vim"
|
|
||||||
export EDITOR="emacs -nw"
|
|
||||||
export VISUAL="emacs"
|
|
||||||
# RMAPI remarkable
|
|
||||||
RMAPI_CONFIG=/Users/olaf/.config/rmapi
|
|
||||||
|
|
||||||
e() {
|
|
||||||
emacs -nw "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
# nix shortcuts
|
|
||||||
shell() {
|
|
||||||
nix-shell '<nixpkgs>' -A "$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
# pnpm is a javascript package manager
|
|
||||||
alias pn=pnpm
|
|
||||||
alias px=pnpx
|
|
||||||
|
|
||||||
# Use difftastic, syntax-aware diffing
|
|
||||||
# alias diff=difft
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
'';
|
|
||||||
zshConfigLastInit = lib.mkOrder 1500 ''
|
|
||||||
# Always color ls and group directories
|
|
||||||
alias ls='ls --color=auto'
|
|
||||||
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
lib.mkMerge [
|
|
||||||
zshConfigEarlyInit
|
|
||||||
zshConfigLastInit
|
|
||||||
];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
git = {
|
|
||||||
enable = true;
|
|
||||||
ignores = [ "*.swp" ];
|
|
||||||
|
|
||||||
lfs = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
settings = {
|
|
||||||
init.defaultBranch = "main";
|
|
||||||
core = {
|
|
||||||
editor = "vim";
|
|
||||||
autocrlf = "input";
|
|
||||||
};
|
|
||||||
commit.gpgsign = false;
|
|
||||||
pull.rebase = true;
|
|
||||||
rebase.autoStash = true;
|
|
||||||
user = {
|
|
||||||
name = name;
|
|
||||||
email = email;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
signing = {
|
|
||||||
format = "openpgp";
|
|
||||||
key = null;
|
|
||||||
signByDefault = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
vim = {
|
|
||||||
enable = true;
|
|
||||||
plugins = with pkgs.vimPlugins; [
|
|
||||||
vim-airline
|
|
||||||
vim-airline-themes
|
|
||||||
vim-startify
|
|
||||||
vim-tmux-navigator
|
|
||||||
];
|
|
||||||
settings = {
|
|
||||||
ignorecase = true;
|
|
||||||
};
|
|
||||||
extraConfig = ''
|
|
||||||
"" General
|
|
||||||
set number
|
|
||||||
set history=1000
|
|
||||||
set nocompatible
|
|
||||||
set modelines=0
|
|
||||||
set encoding=utf-8
|
|
||||||
set scrolloff=3
|
|
||||||
set showmode
|
|
||||||
set showcmd
|
|
||||||
set hidden
|
|
||||||
set wildmenu
|
|
||||||
set wildmode=list:longest
|
|
||||||
set cursorline
|
|
||||||
set ttyfast
|
|
||||||
set nowrap
|
|
||||||
set ruler
|
|
||||||
set backspace=indent,eol,start
|
|
||||||
set laststatus=2
|
|
||||||
set clipboard=autoselect
|
|
||||||
|
|
||||||
" Dir stuff
|
|
||||||
set nobackup
|
|
||||||
set nowritebackup
|
|
||||||
set noswapfile
|
|
||||||
set backupdir=~/.config/vim/backups
|
|
||||||
set directory=~/.config/vim/swap
|
|
||||||
|
|
||||||
" Relative line numbers for easy movement
|
|
||||||
set relativenumber
|
|
||||||
set rnu
|
|
||||||
|
|
||||||
"" Whitespace rules
|
|
||||||
set tabstop=8
|
|
||||||
set shiftwidth=2
|
|
||||||
set softtabstop=2
|
|
||||||
set expandtab
|
|
||||||
|
|
||||||
"" Searching
|
|
||||||
set incsearch
|
|
||||||
set gdefault
|
|
||||||
|
|
||||||
"" Statusbar
|
|
||||||
set nocompatible " Disable vi-compatibility
|
|
||||||
set laststatus=2 " Always show the statusline
|
|
||||||
let g:airline_theme='bubblegum'
|
|
||||||
let g:airline_powerline_fonts = 1
|
|
||||||
|
|
||||||
"" Local keys and such
|
|
||||||
let mapleader=","
|
|
||||||
let maplocalleader=" "
|
|
||||||
|
|
||||||
"" Change cursor on mode
|
|
||||||
:autocmd InsertEnter * set cul
|
|
||||||
:autocmd InsertLeave * set nocul
|
|
||||||
|
|
||||||
"" File-type highlighting and configuration
|
|
||||||
syntax on
|
|
||||||
filetype on
|
|
||||||
filetype plugin on
|
|
||||||
filetype indent on
|
|
||||||
|
|
||||||
"" Paste from clipboard
|
|
||||||
nnoremap <Leader>, "+gP
|
|
||||||
|
|
||||||
"" Copy from clipboard
|
|
||||||
xnoremap <Leader>. "+y
|
|
||||||
|
|
||||||
"" Move cursor by display lines when wrapping
|
|
||||||
nnoremap j gj
|
|
||||||
nnoremap k gk
|
|
||||||
|
|
||||||
"" Map leader-q to quit out of window
|
|
||||||
nnoremap <leader>q :q<cr>
|
|
||||||
|
|
||||||
"" Move around split
|
|
||||||
nnoremap <C-h> <C-w>h
|
|
||||||
nnoremap <C-j> <C-w>j
|
|
||||||
nnoremap <C-k> <C-w>k
|
|
||||||
nnoremap <C-l> <C-w>l
|
|
||||||
|
|
||||||
"" Easier to yank entire line
|
|
||||||
nnoremap Y y$
|
|
||||||
|
|
||||||
"" Move buffers
|
|
||||||
nnoremap <tab> :bnext<cr>
|
|
||||||
nnoremap <S-tab> :bprev<cr>
|
|
||||||
|
|
||||||
"" Like a boss, sudo AFTER opening the file to write
|
|
||||||
cmap w!! w !sudo tee % >/dev/null
|
|
||||||
|
|
||||||
let g:startify_lists = [
|
|
||||||
\ { 'type': 'dir', 'header': [' Current Directory '. getcwd()] },
|
|
||||||
\ { 'type': 'sessions', 'header': [' Sessions'] },
|
|
||||||
\ { 'type': 'bookmarks', 'header': [' Bookmarks'] }
|
|
||||||
\ ]
|
|
||||||
|
|
||||||
let g:startify_bookmarks = [
|
|
||||||
\ '~/.local/share/src',
|
|
||||||
\ ]
|
|
||||||
|
|
||||||
let g:airline_theme='bubblegum'
|
|
||||||
let g:airline_powerline_fonts = 1
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
alacritty = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
cursor = {
|
|
||||||
style = "Block";
|
|
||||||
};
|
|
||||||
|
|
||||||
window = {
|
|
||||||
opacity = 1.0;
|
|
||||||
padding = {
|
|
||||||
x = 24;
|
|
||||||
y = 24;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
font = {
|
|
||||||
normal = {
|
|
||||||
family = "MesloLGS NF";
|
|
||||||
style = "Regular";
|
|
||||||
};
|
|
||||||
size = lib.mkMerge [
|
|
||||||
(lib.mkIf pkgs.stdenv.hostPlatform.isLinux 10)
|
|
||||||
(lib.mkIf pkgs.stdenv.hostPlatform.isDarwin 14)
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
dynamic_padding = true;
|
|
||||||
decorations = "full";
|
|
||||||
title = "Terminal";
|
|
||||||
class = {
|
|
||||||
instance = "Alacritty";
|
|
||||||
general = "Alacritty";
|
|
||||||
};
|
|
||||||
|
|
||||||
colors = {
|
|
||||||
primary = {
|
|
||||||
background = "0x1f2528";
|
|
||||||
foreground = "0xc0c5ce";
|
|
||||||
};
|
|
||||||
|
|
||||||
normal = {
|
|
||||||
black = "0x1f2528";
|
|
||||||
red = "0xec5f67";
|
|
||||||
green = "0x99c794";
|
|
||||||
yellow = "0xfac863";
|
|
||||||
blue = "0x6699cc";
|
|
||||||
magenta = "0xc594c5";
|
|
||||||
cyan = "0x5fb3b3";
|
|
||||||
white = "0xc0c5ce";
|
|
||||||
};
|
|
||||||
|
|
||||||
bright = {
|
|
||||||
black = "0x65737e";
|
|
||||||
red = "0xec5f67";
|
|
||||||
green = "0x99c794";
|
|
||||||
yellow = "0xfac863";
|
|
||||||
blue = "0x6699cc";
|
|
||||||
magenta = "0xc594c5";
|
|
||||||
cyan = "0x5fb3b3";
|
|
||||||
white = "0xd8dee9";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
ssh = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
enableDefaultConfig = false;
|
|
||||||
settings= {
|
|
||||||
"*" = {
|
|
||||||
forwardAgent = false;
|
|
||||||
addKeysToAgent = "no";
|
|
||||||
compression = false;
|
|
||||||
serverAliveInterval = 0;
|
|
||||||
serverAliveCountMax = 3;
|
|
||||||
hashKnownHosts = false;
|
|
||||||
userKnownHostsFile = "~/.ssh/known_hosts";
|
|
||||||
controlMaster = "no";
|
|
||||||
controlPath = "~/.ssh/master-%r@%n:%p";
|
|
||||||
controlPersist = "no";
|
|
||||||
};
|
|
||||||
"moonunit.kolkman.org" = {
|
|
||||||
hostname = "moonunit.kolkman.org";
|
|
||||||
user = "root";
|
|
||||||
port = 2222;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
includes = [
|
|
||||||
(lib.mkIf pkgs.stdenv.hostPlatform.isLinux "/home/${user}/.ssh/config_external")
|
|
||||||
(lib.mkIf pkgs.stdenv.hostPlatform.isDarwin "/Users/${user}/.ssh/config_external")
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
tmux = {
|
|
||||||
enable = true;
|
|
||||||
plugins = with pkgs.tmuxPlugins; [
|
|
||||||
vim-tmux-navigator
|
|
||||||
sensible
|
|
||||||
yank
|
|
||||||
prefix-highlight
|
|
||||||
{
|
|
||||||
plugin = power-theme;
|
|
||||||
extraConfig = ''
|
|
||||||
set -g @tmux_power_theme 'gold'
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
{
|
|
||||||
plugin = resurrect; # Used by tmux-continuum
|
|
||||||
|
|
||||||
# Use XDG data directory
|
|
||||||
# https://github.com/tmux-plugins/tmux-resurrect/issues/348
|
|
||||||
extraConfig = ''
|
|
||||||
set -g @resurrect-dir '$HOME/.cache/tmux/resurrect'
|
|
||||||
set -g @resurrect-capture-pane-contents 'on'
|
|
||||||
set -g @resurrect-pane-contents-area 'visible'
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
{
|
|
||||||
plugin = continuum;
|
|
||||||
extraConfig = ''
|
|
||||||
set -g @continuum-restore 'on'
|
|
||||||
set -g @continuum-save-interval '5' # minutes
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
];
|
|
||||||
terminal = "screen-256color";
|
|
||||||
prefix = "C-x";
|
|
||||||
escapeTime = 10;
|
|
||||||
historyLimit = 50000;
|
|
||||||
extraConfig = ''
|
|
||||||
# Remove Vim mode delays
|
|
||||||
set -g focus-events on
|
|
||||||
|
|
||||||
# Enable full mouse support
|
|
||||||
set -g mouse on
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
# Key bindings
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
# Unbind default keys
|
|
||||||
unbind C-b
|
|
||||||
unbind '"'
|
|
||||||
unbind %
|
|
||||||
|
|
||||||
# Split panes, vertical or horizontal
|
|
||||||
bind-key x split-window -v
|
|
||||||
bind-key v split-window -h
|
|
||||||
|
|
||||||
# Move around panes with vim-like bindings (h,j,k,l)
|
|
||||||
bind-key -n M-k select-pane -U
|
|
||||||
bind-key -n M-h select-pane -L
|
|
||||||
bind-key -n M-j select-pane -D
|
|
||||||
bind-key -n M-l select-pane -R
|
|
||||||
|
|
||||||
# Smart pane switching with awareness of Vim splits.
|
|
||||||
# This is copy paste from https://github.com/christoomey/vim-tmux-navigator
|
|
||||||
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
|
|
||||||
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
|
|
||||||
bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L'
|
|
||||||
bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D'
|
|
||||||
bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' 'select-pane -U'
|
|
||||||
bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' 'select-pane -R'
|
|
||||||
tmux_version='$(tmux -V | sed -En "s/^tmux ([0-9]+(.[0-9]+)?).*/\1/p")'
|
|
||||||
if-shell -b '[ "$(echo "$tmux_version < 3.0" | bc)" = 1 ]' \
|
|
||||||
"bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\' 'select-pane -l'"
|
|
||||||
if-shell -b '[ "$(echo "$tmux_version >= 3.0" | bc)" = 1 ]' \
|
|
||||||
"bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\\\' 'select-pane -l'"
|
|
||||||
|
|
||||||
bind-key -T copy-mode-vi 'C-h' select-pane -L
|
|
||||||
bind-key -T copy-mode-vi 'C-j' select-pane -D
|
|
||||||
bind-key -T copy-mode-vi 'C-k' select-pane -U
|
|
||||||
bind-key -T copy-mode-vi 'C-l' select-pane -R
|
|
||||||
bind-key -T copy-mode-vi 'C-\' select-pane -l
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
(vscode-with-extensions.override {
|
|
||||||
vscodeExtensions =
|
|
||||||
with vscode-extensions;
|
|
||||||
[
|
|
||||||
#bbenoist.nix
|
|
||||||
jnoortheen.nix-ide
|
|
||||||
ms-python.python
|
|
||||||
ms-azuretools.vscode-docker
|
|
||||||
# ms-vscode-remote.remote-ssh
|
|
||||||
# ms-vscode.cpptools
|
|
||||||
eamodio.gitlens
|
|
||||||
|
|
||||||
]
|
|
||||||
++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
|
||||||
# {
|
|
||||||
# name = "remote-ssh-edit";
|
|
||||||
# publisher = "ms-vscode-remote";
|
|
||||||
# version = "0.47.2";
|
|
||||||
# sha256 = "1hp6gjh4xp2m1xlm1jsdzxw9d8frkiidhph6nvl24d0h8z34w49g";
|
|
||||||
# }
|
|
||||||
{
|
|
||||||
name = "cpptools";
|
|
||||||
publisher = "ms-vscode";
|
|
||||||
version = "1.26.1";
|
|
||||||
sha256 = "sha256-uVE7sEO8XN3ArFpElUw25/BKyCOzF1EmZ5nHBkdoL/0=";
|
|
||||||
}
|
|
||||||
# {
|
|
||||||
# name = "minifyall";
|
|
||||||
# publisher = "josee9988";
|
|
||||||
# version = "2.10";
|
|
||||||
# }
|
|
||||||
{
|
|
||||||
name = "platformio-ide";
|
|
||||||
publisher = "platformio";
|
|
||||||
version = "3.3.4";
|
|
||||||
sha256 = "sha256-qfNz4IYjCmCMFLtAkbGTW5xnsVT8iDnFWjrgkmr2Slk=";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
})
|
|
||||||
@@ -1,231 +0,0 @@
|
|||||||
{ pkgs, llm-agents }:
|
|
||||||
|
|
||||||
with pkgs;
|
|
||||||
[
|
|
||||||
# Nix
|
|
||||||
nixd
|
|
||||||
mas
|
|
||||||
|
|
||||||
# X11
|
|
||||||
libx11
|
|
||||||
libxt
|
|
||||||
libxext
|
|
||||||
libxrender
|
|
||||||
libxrandr
|
|
||||||
xterm
|
|
||||||
|
|
||||||
# The Web Browsers
|
|
||||||
# maintained by in homebrew
|
|
||||||
|
|
||||||
# security and some such
|
|
||||||
# bitwarden-desktop #Does not compile properly
|
|
||||||
# bitwarden-cli # Fails on i386
|
|
||||||
yubikey-manager # provides ykman
|
|
||||||
pinentry_mac
|
|
||||||
|
|
||||||
# General packages for development and system management
|
|
||||||
alacritty
|
|
||||||
ansible
|
|
||||||
aspell
|
|
||||||
aspellDicts.en
|
|
||||||
bash-completion
|
|
||||||
bat
|
|
||||||
btop
|
|
||||||
coreutils
|
|
||||||
difftastic
|
|
||||||
htop
|
|
||||||
killall
|
|
||||||
minicom
|
|
||||||
mtr
|
|
||||||
ncdu
|
|
||||||
nodejs
|
|
||||||
|
|
||||||
fastfetch
|
|
||||||
nixfmt
|
|
||||||
openssh
|
|
||||||
postgresql
|
|
||||||
sqlite
|
|
||||||
unrar
|
|
||||||
wget
|
|
||||||
zip
|
|
||||||
|
|
||||||
# Development
|
|
||||||
act
|
|
||||||
autoconf
|
|
||||||
autoconf-archive
|
|
||||||
automake
|
|
||||||
ccache
|
|
||||||
clang-tools
|
|
||||||
cmake
|
|
||||||
dfu-util
|
|
||||||
go
|
|
||||||
jd-diff-patch # json diff patch
|
|
||||||
jq # json tool
|
|
||||||
llvm
|
|
||||||
nasm
|
|
||||||
ninja
|
|
||||||
pkg-config
|
|
||||||
|
|
||||||
# Encryption and security tools
|
|
||||||
age
|
|
||||||
gnupg
|
|
||||||
just
|
|
||||||
libfido2
|
|
||||||
sops
|
|
||||||
|
|
||||||
# Cloud-related tools and SDKs
|
|
||||||
docker
|
|
||||||
docker-compose
|
|
||||||
|
|
||||||
# Media-related packages
|
|
||||||
|
|
||||||
fd
|
|
||||||
ffmpeg
|
|
||||||
imagemagick
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Node.js development tools
|
|
||||||
#nodePackages.npm # globally install npm
|
|
||||||
#nodePackages.prettier
|
|
||||||
|
|
||||||
# Text and terminal utilities
|
|
||||||
|
|
||||||
htop
|
|
||||||
hunspell
|
|
||||||
iftop
|
|
||||||
inetutils # includes Telnet
|
|
||||||
jq
|
|
||||||
ripgrep
|
|
||||||
tmux
|
|
||||||
tree
|
|
||||||
unrar
|
|
||||||
unzip
|
|
||||||
|
|
||||||
# zsh-powerlevel10k
|
|
||||||
|
|
||||||
# Python packages
|
|
||||||
# python3
|
|
||||||
virtualenv
|
|
||||||
uv
|
|
||||||
|
|
||||||
(python3.withPackages (
|
|
||||||
python-pkgs: with python-pkgs; [
|
|
||||||
bidict
|
|
||||||
blinker
|
|
||||||
certifi
|
|
||||||
charset-normalizer
|
|
||||||
click
|
|
||||||
flask
|
|
||||||
flask-socketio
|
|
||||||
h11
|
|
||||||
idna
|
|
||||||
importlib-metadata
|
|
||||||
itsdangerous
|
|
||||||
jinja2
|
|
||||||
markupsafe
|
|
||||||
mercantile
|
|
||||||
mlx-lm
|
|
||||||
numpy
|
|
||||||
pandas
|
|
||||||
pillow
|
|
||||||
pillow
|
|
||||||
python-engineio
|
|
||||||
python-socketio
|
|
||||||
requests
|
|
||||||
requests
|
|
||||||
shapely
|
|
||||||
simple-websocket
|
|
||||||
tkinter
|
|
||||||
tqdm
|
|
||||||
urllib3
|
|
||||||
werkzeug
|
|
||||||
wsproto
|
|
||||||
zipp
|
|
||||||
]
|
|
||||||
))
|
|
||||||
|
|
||||||
# LLM
|
|
||||||
ollama # Launchd definition in hosts/darwin/default.nix
|
|
||||||
|
|
||||||
# Social
|
|
||||||
pidgin
|
|
||||||
|
|
||||||
# Rust Related
|
|
||||||
rustc
|
|
||||||
cargo
|
|
||||||
platformio-core
|
|
||||||
|
|
||||||
# XML, Tex and LaTex
|
|
||||||
|
|
||||||
mdbook
|
|
||||||
pandoc
|
|
||||||
rubyPackages_3_4.kramdown-rfc2629
|
|
||||||
tex-fmt
|
|
||||||
xml2rfc
|
|
||||||
zotero
|
|
||||||
|
|
||||||
(texlive.combine {
|
|
||||||
inherit (texlive)
|
|
||||||
apa6
|
|
||||||
apa7
|
|
||||||
apacite
|
|
||||||
biber
|
|
||||||
biblatex
|
|
||||||
biblatex-apa6
|
|
||||||
bibunits
|
|
||||||
catchfile
|
|
||||||
cjk
|
|
||||||
comment
|
|
||||||
courier
|
|
||||||
csquotes
|
|
||||||
draftwatermark
|
|
||||||
endfloat
|
|
||||||
enumitem
|
|
||||||
fancyhdr
|
|
||||||
fontawesome5
|
|
||||||
footmisc
|
|
||||||
footnotehyper
|
|
||||||
geometry
|
|
||||||
ifmtarg
|
|
||||||
latexmk
|
|
||||||
lipsum
|
|
||||||
lualatex-math
|
|
||||||
makecell
|
|
||||||
microtype
|
|
||||||
multirow
|
|
||||||
nowidow
|
|
||||||
parskip
|
|
||||||
ragged2e
|
|
||||||
scalerel
|
|
||||||
scheme-small
|
|
||||||
selnolig
|
|
||||||
sourcesanspro
|
|
||||||
svg
|
|
||||||
tcolorbox
|
|
||||||
texcount
|
|
||||||
threeparttable
|
|
||||||
tikzfill
|
|
||||||
titlesec
|
|
||||||
titling
|
|
||||||
tocloft
|
|
||||||
transparent
|
|
||||||
upquote
|
|
||||||
url
|
|
||||||
xecjk
|
|
||||||
xifthen
|
|
||||||
xurl
|
|
||||||
;
|
|
||||||
|
|
||||||
})
|
|
||||||
]
|
|
||||||
|
|
||||||
### Agents from https://github.com/numtide/llm-agents.nix
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
++ (with llm-agents.packages.${pkgs.stdenv.hostPlatform.system}; [
|
|
||||||
hermes-desktop
|
|
||||||
hermes-hud
|
|
||||||
])
|
|
||||||
Reference in New Issue
Block a user