Compare commits
35
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9d42bfdf15 | ||
|
|
45bf546b85 | ||
|
|
c260e93db8 | ||
|
|
341f20fe7a | ||
|
|
980a42aaa1 | ||
|
|
f5ed23670c | ||
|
|
dd455dc053 | ||
|
|
b87fea970b | ||
|
|
ddfe41c461 | ||
|
|
c3cfbf5a6a | ||
|
|
1336a9bcd8 | ||
|
|
48ee955035 | ||
|
|
626a07e7e9 | ||
|
|
78ffc4e895 | ||
|
|
4d54560d77 | ||
|
|
3ef4bb5495 | ||
|
|
355d6995bf | ||
|
|
dd7520ec84 | ||
|
|
f311d671b2 | ||
|
|
126b92831a | ||
|
|
07aafd820c | ||
|
|
5111cb4178 | ||
|
|
86d529fdd0 | ||
|
|
acf2b21f72 | ||
|
|
2e0bc0bae2 | ||
|
|
353e1373b8 | ||
|
|
add16d36f3 | ||
|
|
fde5d13c0a | ||
|
|
02d4f6e68d | ||
|
|
5d811f88ad | ||
|
|
635d6cdeca | ||
|
|
5cf2d8397d | ||
|
|
0a1a5a4e4a | ||
|
|
1666aba15f | ||
|
|
8a88048d04 |
@@ -2,7 +2,8 @@
|
|||||||
description = "Starter Configuration with secrets (removed) for MacOS and NixOS";
|
description = "Starter Configuration with secrets (removed) for MacOS and NixOS";
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
url = "github:nixos/nixpkgs//nixpkgs-25.05-darwin";
|
url = "github:nixos/nixpkgs//nixpkgs-26.05-darwin";
|
||||||
|
# url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||||
};
|
};
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
@@ -11,11 +12,17 @@
|
|||||||
url = "github:nix-community/nixd";
|
url = "github:nix-community/nixd";
|
||||||
};
|
};
|
||||||
darwin = {
|
darwin = {
|
||||||
url = "github:nix-darwin/nix-darwin/nix-darwin-25.05";
|
# url = "github:nix-darwin/nix-darwin";
|
||||||
|
url = "github:nix-darwin/nix-darwin/nix-darwin-26.05";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
brew-src = {
|
||||||
|
url = "github:Homebrew/brew/master";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
nix-homebrew = {
|
nix-homebrew = {
|
||||||
url = "github:zhaofengli-wip/nix-homebrew";
|
url = "github:zhaofengli-wip/nix-homebrew";
|
||||||
|
inputs.brew-src.follows = "brew-src";
|
||||||
};
|
};
|
||||||
homebrew-bundle = {
|
homebrew-bundle = {
|
||||||
url = "github:homebrew/homebrew-bundle";
|
url = "github:homebrew/homebrew-bundle";
|
||||||
@@ -40,11 +47,25 @@
|
|||||||
nix-vscode-extensions = {
|
nix-vscode-extensions = {
|
||||||
url = "github:nix-community/nix-vscode-extensions";
|
url = "github:nix-community/nix-vscode-extensions";
|
||||||
};
|
};
|
||||||
|
catppuccin = {
|
||||||
|
url = "github:catppuccin/nix";
|
||||||
|
};
|
||||||
|
llm-agents = {
|
||||||
|
url = "github:numtide/llm-agents.nix";
|
||||||
|
};
|
||||||
|
brew-api = {
|
||||||
|
url = "github:BatteredBunny/brew-api";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
brew-nix = {
|
||||||
|
url = "github:BatteredBunny/brew-nix";
|
||||||
|
inputs.brew-api.follows = "brew-api";
|
||||||
|
};
|
||||||
|
|
||||||
# mac-app-util doesn't work with OCLP installed on X86
|
# mac-app-util doesn't work with OCLP installed on X86
|
||||||
# mac-app-util = {
|
# mac-app-util = {
|
||||||
# url = "github:hraban/mac-app-util";
|
# url = "github:hraban/mac-app-util";
|
||||||
# };
|
# };
|
||||||
};
|
};
|
||||||
outputs =
|
outputs =
|
||||||
{
|
{
|
||||||
@@ -60,7 +81,11 @@
|
|||||||
nixd,
|
nixd,
|
||||||
sops-nix,
|
sops-nix,
|
||||||
nix-vscode-extensions,
|
nix-vscode-extensions,
|
||||||
# mac-app-util,
|
catppuccin,
|
||||||
|
llm-agents,
|
||||||
|
brew-api,
|
||||||
|
brew-nix,
|
||||||
|
...
|
||||||
}@inputs:
|
}@inputs:
|
||||||
let
|
let
|
||||||
user = "olaf";
|
user = "olaf";
|
||||||
@@ -90,7 +115,7 @@
|
|||||||
export EDITOR=vim
|
export EDITOR=vim
|
||||||
'';
|
'';
|
||||||
buildInputs = with pkgs; [
|
buildInputs = with pkgs; [
|
||||||
rnix-lsp
|
bash
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -109,26 +134,18 @@
|
|||||||
mkLinuxApps = system: {
|
mkLinuxApps = system: {
|
||||||
"apply" = mkApp "apply" system;
|
"apply" = mkApp "apply" system;
|
||||||
"build-switch" = mkApp "build-switch" system;
|
"build-switch" = mkApp "build-switch" system;
|
||||||
"copy-keys" = mkApp "copy-keys" system;
|
|
||||||
"create-keys" = mkApp "create-keys" system;
|
|
||||||
"check-keys" = mkApp "check-keys" system;
|
|
||||||
"install" = mkApp "install" system;
|
"install" = mkApp "install" system;
|
||||||
};
|
};
|
||||||
mkDarwinApps = system: {
|
mkDarwinApps = system: {
|
||||||
"apply" = mkApp "apply" system;
|
"apply" = mkApp "apply" system;
|
||||||
"build" = mkApp "build" system;
|
"build" = mkApp "build" system;
|
||||||
"build-switch" = mkApp "build-switch" system;
|
"build-switch" = mkApp "build-switch" system;
|
||||||
"copy-keys" = mkApp "copy-keys" system;
|
|
||||||
"create-keys" = mkApp "create-keys" system;
|
|
||||||
"check-keys" = mkApp "check-keys" system;
|
|
||||||
"rollback" = mkApp "rollback" system;
|
"rollback" = mkApp "rollback" system;
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
devShells = forAllSystems devShell;
|
devShells = nixpkgs.lib.genAttrs darwinSystems devShell;
|
||||||
apps =
|
apps = nixpkgs.lib.genAttrs darwinSystems mkDarwinApps;
|
||||||
nixpkgs.lib.genAttrs linuxSystems mkLinuxApps
|
|
||||||
// nixpkgs.lib.genAttrs darwinSystems mkDarwinApps;
|
|
||||||
|
|
||||||
darwinConfigurations = nixpkgs.lib.genAttrs darwinSystems (
|
darwinConfigurations = nixpkgs.lib.genAttrs darwinSystems (
|
||||||
system:
|
system:
|
||||||
@@ -136,24 +153,16 @@
|
|||||||
inherit system;
|
inherit system;
|
||||||
specialArgs = inputs;
|
specialArgs = inputs;
|
||||||
modules = [
|
modules = [
|
||||||
|
brew-nix.darwinModules.default
|
||||||
# sops-nix.nixosModules.sops
|
# sops-nix.nixosModules.sops
|
||||||
home-manager.darwinModules.home-manager
|
home-manager.darwinModules.home-manager
|
||||||
nix-homebrew.darwinModules.nix-homebrew
|
|
||||||
# mac-app-util.darwinModules.default
|
# mac-app-util.darwinModules.default
|
||||||
{
|
{
|
||||||
nix-homebrew = {
|
brew-nix.enable = true;
|
||||||
inherit user;
|
|
||||||
enable = true;
|
|
||||||
taps = {
|
|
||||||
"homebrew/homebrew-core" = homebrew-core;
|
|
||||||
"homebrew/homebrew-cask" = homebrew-cask;
|
|
||||||
"homebrew/homebrew-bundle" = homebrew-bundle;
|
|
||||||
};
|
|
||||||
mutableTaps = false;
|
|
||||||
autoMigrate = true;
|
|
||||||
};
|
|
||||||
home-manager.sharedModules = [
|
home-manager.sharedModules = [
|
||||||
# mac-app-util.homeManagerModules.default
|
# mac-app-util.homeManagerModules.default
|
||||||
|
catppuccin.homeModules.catppuccin
|
||||||
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
./hosts/darwin
|
./hosts/darwin
|
||||||
@@ -161,25 +170,6 @@
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
nixosConfigurations = nixpkgs.lib.genAttrs linuxSystems (
|
nixosConfigurations = { };
|
||||||
system:
|
|
||||||
nixpkgs.lib.nixosSystem {
|
|
||||||
inherit system;
|
|
||||||
specialArgs = inputs;
|
|
||||||
modules = [
|
|
||||||
sops-nix.nixosModules.sops
|
|
||||||
disko.nixosModules.disko
|
|
||||||
home-manager.nixosModules.home-manager
|
|
||||||
{
|
|
||||||
home-manager = {
|
|
||||||
useGlobalPkgs = true;
|
|
||||||
useUserPackages = true;
|
|
||||||
users.${user} = import ./modules/nixos/home-manager.nix;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
./hosts/nixos
|
|
||||||
];
|
|
||||||
}
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,56 @@
|
|||||||
|
(eval-when-compile
|
||||||
|
(require 'use-package))
|
||||||
|
|
||||||
|
;; load some packages
|
||||||
|
|
||||||
|
(use-package company
|
||||||
|
:bind ("<C-tab>" . company-complete)
|
||||||
|
:diminish company-mode
|
||||||
|
:commands (company-mode global-company-mode)
|
||||||
|
:defer 1
|
||||||
|
:config
|
||||||
|
(global-company-mode))
|
||||||
|
|
||||||
|
(use-package counsel
|
||||||
|
:commands (counsel-descbinds)
|
||||||
|
:bind (([remap execute-extended-command] . counsel-M-x)
|
||||||
|
("C-x C-f" . counsel-find-file)
|
||||||
|
("C-c g" . counsel-git)
|
||||||
|
("C-c j" . counsel-git-grep)
|
||||||
|
("C-c k" . counsel-ag)
|
||||||
|
("C-x l" . counsel-locate)
|
||||||
|
("M-y" . counsel-yank-pop)))
|
||||||
|
|
||||||
|
(use-package flycheck
|
||||||
|
:defer 2
|
||||||
|
:config (global-flycheck-mode))
|
||||||
|
|
||||||
|
(use-package ivy
|
||||||
|
:defer 1
|
||||||
|
:bind (("C-c C-r" . ivy-resume)
|
||||||
|
("C-x C-b" . ivy-switch-buffer)
|
||||||
|
:map ivy-minibuffer-map
|
||||||
|
("C-j" . ivy-call))
|
||||||
|
:diminish ivy-mode
|
||||||
|
:commands ivy-mode
|
||||||
|
:config
|
||||||
|
(ivy-mode 1))
|
||||||
|
|
||||||
|
(use-package magit
|
||||||
|
:defer
|
||||||
|
:if (executable-find "git")
|
||||||
|
:bind (("C-x g" . magit-status)
|
||||||
|
("C-x G" . magit-dispatch-popup))
|
||||||
|
:init
|
||||||
|
(setq magit-completing-read-function 'ivy-completing-read))
|
||||||
|
|
||||||
|
(use-package projectile
|
||||||
|
:commands projectile-mode
|
||||||
|
:bind-keymap ("C-c p" . projectile-command-map)
|
||||||
|
:defer 5
|
||||||
|
:config
|
||||||
|
(projectile-global-mode))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(global-set-key (kbd "C-.") 'set-mark-command)
|
||||||
+60
-11
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
llm-agents,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@@ -39,7 +40,10 @@ in
|
|||||||
"https://nix-community.cachix.org"
|
"https://nix-community.cachix.org"
|
||||||
"https://cache.nixos.org"
|
"https://cache.nixos.org"
|
||||||
];
|
];
|
||||||
trusted-public-keys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" ];
|
trusted-public-keys = [
|
||||||
|
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||||
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
gc = {
|
gc = {
|
||||||
@@ -57,27 +61,62 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
users.groups = {
|
||||||
users.groups= {
|
gidevelopert = {
|
||||||
gidevelopert={
|
description = "Git Common Rights";
|
||||||
description="Git Common Rights";
|
gid = 500;
|
||||||
gid=500;
|
name = "gitdeveloper";
|
||||||
name= "gitdeveloper";
|
members = [ "olaf" ];
|
||||||
members = [ "olaf" ] ;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
users.knownGroups=["gitdeveloper"];
|
users.knownGroups = [ "gitdeveloper" ];
|
||||||
# Turn off NIX_PATH warnings now that we're using flakes
|
# Turn off NIX_PATH warnings now that we're using flakes
|
||||||
system.checks.verifyNixPath = false;
|
system.checks.verifyNixPath = false;
|
||||||
|
|
||||||
|
fonts = {
|
||||||
|
packages = with pkgs; [
|
||||||
|
dejavu_fonts
|
||||||
|
emacs-all-the-icons-fonts
|
||||||
|
# feather-font # from overlayj
|
||||||
|
jetbrains-mono
|
||||||
|
google-fonts
|
||||||
|
font-awesome
|
||||||
|
noto-fonts
|
||||||
|
noto-fonts-color-emoji
|
||||||
|
# jetbrains-mono
|
||||||
|
hack-font
|
||||||
|
meslo-lgs-nf
|
||||||
|
nerd-fonts.fira-code
|
||||||
|
nerd-fonts.droid-sans-mono
|
||||||
|
noto-fonts-cjk-sans
|
||||||
|
noto-fonts
|
||||||
|
]
|
||||||
|
# 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
|
# Load configuration that is shared across systems
|
||||||
environment.systemPackages =
|
environment.systemPackages =
|
||||||
with pkgs;
|
with pkgs;
|
||||||
[
|
[
|
||||||
emacs-unstable
|
# 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; })
|
++ (import ../../modules/shared/packages.nix { inherit pkgs llm-agents; })
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
@@ -93,6 +132,16 @@ 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}";
|
||||||
|
|||||||
+17
-2
@@ -62,7 +62,8 @@ in
|
|||||||
"https://nix-community.cachix.org"
|
"https://nix-community.cachix.org"
|
||||||
"https://cache.nixos.org"
|
"https://cache.nixos.org"
|
||||||
];
|
];
|
||||||
trusted-public-keys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" ];
|
trusted-public-keys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||||
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
package = pkgs.nix;
|
package = pkgs.nix;
|
||||||
@@ -330,10 +331,24 @@ in
|
|||||||
jetbrains-mono
|
jetbrains-mono
|
||||||
font-awesome
|
font-awesome
|
||||||
noto-fonts
|
noto-fonts
|
||||||
noto-fonts-emoji
|
noto-fonts-color-emoji
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
# Emacs with automatic package management from overlay
|
||||||
|
(emacsWithPackagesFromUsePackage {
|
||||||
|
config = ../config/emacs/emacs.el;
|
||||||
|
defaultInitFile = true;
|
||||||
|
package = emacs-unstable;
|
||||||
|
alwaysEnsure = true;
|
||||||
|
extraEmacsPackages =
|
||||||
|
epkgs: with epkgs; [
|
||||||
|
magit
|
||||||
|
company
|
||||||
|
nix-mode
|
||||||
|
use-package
|
||||||
|
];
|
||||||
|
})
|
||||||
gitAndTools.gitFull
|
gitAndTools.gitFull
|
||||||
inetutils
|
inetutils
|
||||||
];
|
];
|
||||||
|
|||||||
+78
-64
@@ -1,75 +1,89 @@
|
|||||||
_:
|
{ pkgs }:
|
||||||
|
let
|
||||||
|
casks = pkgs.brewCasks;
|
||||||
|
|
||||||
|
# the override to replace the package’s source fetch itself rather than just changing a downstream hash field
|
||||||
|
overrideCaskWithHash = name: hash:
|
||||||
|
casks.${name}.overrideAttrs (oldAttrs: {
|
||||||
|
src = pkgs.fetchurl {
|
||||||
|
url = builtins.head oldAttrs.src.urls;
|
||||||
|
hash = hash;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
overriddenCasks = {
|
||||||
|
"box-tools" = overrideCaskWithHash "box-tools" "sha256-e7QZ/mWye86d7GDSgD+CtHDLCp/odiFwDcdg7/qxqKc=";
|
||||||
|
daisydisk = overrideCaskWithHash "daisydisk" "sha256-Re9GOfK03Gogb4Ep1itUJm60L94qvGfXgjqpLg8GQlc=";
|
||||||
|
keybase = overrideCaskWithHash "keybase" "sha256-CnFlLeU/BIhiUYebtRpUjJWE0QrsdZsiiZGzRUi31zg=";
|
||||||
|
};
|
||||||
|
in
|
||||||
[
|
[
|
||||||
# Development Tools
|
# Development tools
|
||||||
"homebrew/cask/docker"
|
casks.arduino-ide
|
||||||
"iterm2"
|
casks."docker-desktop"
|
||||||
"oracle-jdk"
|
casks.iterm2
|
||||||
"arduino-ide"
|
casks.oracle-jdk
|
||||||
"visual-studio-code"
|
casks."visual-studio-code"
|
||||||
|
|
||||||
# Creatative tools
|
# Creative tools
|
||||||
"blender"
|
casks.blender
|
||||||
"gimp"
|
casks.gimp
|
||||||
"inkscape"
|
casks.inkscape
|
||||||
"vcv-rack"
|
casks."vcv-rack"
|
||||||
#"affinity-designer"
|
|
||||||
#"affinity-photo"
|
|
||||||
#"affinity-publisher"
|
|
||||||
|
|
||||||
# Communication Tools
|
# Communication tools
|
||||||
"discord"
|
casks.adium
|
||||||
# "slack"
|
casks.discord
|
||||||
"signal"
|
casks.signal
|
||||||
"whatsapp"
|
casks.webex
|
||||||
"zoom"
|
casks.whatsapp
|
||||||
"webex"
|
casks.zoom
|
||||||
|
|
||||||
# Utility Tools
|
# Utility tools
|
||||||
"syncthing"
|
# These casks currently fail during Homebrew download/build in this environment.
|
||||||
"blackhole-16ch"
|
# casks."blackhole-16ch"
|
||||||
"blackhole-2ch"
|
# casks."blackhole-2ch"
|
||||||
"box-drive"
|
casks."box-drive"
|
||||||
"box-tools"
|
# box-tools currently fails during unpack/install in this environment.
|
||||||
"synology-drive"
|
# overriddenCasks."box-tools"
|
||||||
"spamsieve"
|
# daisydisk currently fails with an upstream hash mismatch in this environment.
|
||||||
"keybase"
|
# overriddenCasks.daisydisk
|
||||||
"karabiner-elements"
|
# casks."karabiner-elements"
|
||||||
|
overriddenCasks.keybase
|
||||||
|
(overrideCaskWithHash "smartsheet" "sha256-ShCJAKDWMWy++3IC00YdyABvsmLW6DrpvJABAkFQXOA=")
|
||||||
|
casks.spamsieve
|
||||||
|
casks."syncthing-app"
|
||||||
|
casks."synology-drive"
|
||||||
|
|
||||||
# Entertainment Tools
|
# Entertainment tools
|
||||||
"vlc"
|
casks.qobuz
|
||||||
"jellyfin-media-player"
|
casks.steam
|
||||||
"vimediamanager"
|
casks."handbrake-app"
|
||||||
"mediaelch"
|
casks."jellyfin-media-player"
|
||||||
"handbrake"
|
casks.mediaelch
|
||||||
"obs"
|
casks.obs
|
||||||
"qobuz"
|
casks."vimediamanager"
|
||||||
|
casks.vlc
|
||||||
|
|
||||||
# Productivity Tools
|
# Productivity tools
|
||||||
"1Password"
|
casks."1password"
|
||||||
#"zotero"
|
casks.bitwarden
|
||||||
"gpg-suite"
|
casks.calibre
|
||||||
#"home-assistant"
|
casks."dbeaver-community"
|
||||||
#"Fantastical"
|
casks.element
|
||||||
#"Remarkable"
|
casks."gpg-suite"
|
||||||
"mailmate"
|
casks."macdown-3000"
|
||||||
"spamsieve"
|
casks.mailmate
|
||||||
"macdown"
|
casks.orcaslicer
|
||||||
"calibre"
|
casks.remanager
|
||||||
# "superslicer" # Removed in favor of OrcaSlicer
|
casks."qmk-toolbox"
|
||||||
"orcaslicer"
|
casks.smartsheet
|
||||||
"element"
|
casks."copilot-cli"
|
||||||
# "mqtt-explorer"
|
|
||||||
"virtualbox"
|
|
||||||
# "autodesk-fusion" #fails to install
|
|
||||||
"qmk-toolbox"
|
|
||||||
"dbeaver-community"
|
|
||||||
"sqlitestudio"
|
|
||||||
|
|
||||||
# "wireshark"
|
|
||||||
# Browsers
|
# Browsers
|
||||||
"google-chrome"
|
casks."brave-browser"
|
||||||
"firefox"
|
casks.firefox
|
||||||
|
casks."google-chrome"
|
||||||
|
|
||||||
|
# X11
|
||||||
|
casks.xquartz
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -3,11 +3,13 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
home-manager,
|
home-manager,
|
||||||
|
llm-agents,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
user = "olaf";
|
user = "olaf";
|
||||||
|
casks = import ./casks.nix { inherit pkgs; };
|
||||||
# Define the content of your file as a derivation
|
# Define the content of your file as a derivation
|
||||||
myEmacsLauncher = pkgs.writeScript "emacs-launcher.command" ''
|
myEmacsLauncher = pkgs.writeScript "emacs-launcher.command" ''
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
@@ -17,6 +19,7 @@ let
|
|||||||
additionalFiles = import ./files.nix { inherit user config pkgs; };
|
additionalFiles = import ./files.nix { inherit user config pkgs; };
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./dock
|
./dock
|
||||||
];
|
];
|
||||||
@@ -30,40 +33,11 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
homebrew = {
|
homebrew = {
|
||||||
enable = true;
|
enable = false;
|
||||||
casks = pkgs.callPackage ./casks.nix { };
|
|
||||||
# onActivation.cleanup = "uninstall";
|
|
||||||
|
|
||||||
# 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. (https://github.com/dustinlyons/nixos-config/issues/83)
|
|
||||||
|
|
||||||
masApps = {
|
|
||||||
"1Password for Safari" = 1569813296; # (8.10.82)
|
|
||||||
"Affinity Designer 2" = 1616831348;
|
|
||||||
"Affinity Photo 2: Image Editor" = 1616822987;
|
|
||||||
"Affinity Publisher 2" = 1606941598;
|
|
||||||
"DaisyDisk" = 411643860 ; # (4.32)
|
|
||||||
"Fantastical - Calendar" = 975937182;
|
|
||||||
"Home Assistant" = 1099568401; # (2025.7.1)
|
|
||||||
"Ice Cubes for Mastodon" = 6444915884; # (1.11.3)
|
|
||||||
"LibreOffice" = 1630474372;
|
|
||||||
"MQTT Explorer" = 1455214828; # (0.3.5)
|
|
||||||
"Night Sky" = 475772902; # 475772902
|
|
||||||
"Remarkable Desktop" = 1276493162; # (3.19.0)
|
|
||||||
"Slack for Desktop" = 803453959; # (4.45.60)
|
|
||||||
"WiFi Explorer: Scanner" = 494803304; # (3.5.6)
|
|
||||||
### "1Password: Password Manager" = 1511601750; # (8.11.0) Does not seem to insta
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = casks;
|
||||||
|
|
||||||
# Enable home-manager
|
# Enable home-manager
|
||||||
home-manager = {
|
home-manager = {
|
||||||
useGlobalPkgs = true;
|
useGlobalPkgs = true;
|
||||||
@@ -75,18 +49,39 @@ in
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
enableNixpkgsReleaseCheck = false;
|
enableNixpkgsReleaseCheck = false;
|
||||||
packages = pkgs.callPackage ./packages.nix { };
|
packages = pkgs.callPackage ./packages.nix { inherit llm-agents; };
|
||||||
file = lib.mkMerge [
|
file = lib.mkMerge [
|
||||||
sharedFiles
|
sharedFiles
|
||||||
additionalFiles
|
additionalFiles
|
||||||
{ "emacs-launcher.command".source = myEmacsLauncher; }
|
{ "emacs-launcher.command".source = myEmacsLauncher; }
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
stateVersion = "23.11";
|
stateVersion = "23.11";
|
||||||
};
|
};
|
||||||
programs = { } // import ../shared/home-manager.nix { inherit config pkgs lib; };
|
programs = {
|
||||||
|
} // import ../shared/home-manager.nix { inherit config pkgs lib; };
|
||||||
|
|
||||||
|
catppuccin = {
|
||||||
|
autoEnable = true;
|
||||||
|
enable = true;
|
||||||
|
flavor = "mocha";
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
gpg-agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSshSupport = true;
|
||||||
|
extraConfig = ''
|
||||||
|
default-cache-ttl 600
|
||||||
|
max-cache-ttl 7200
|
||||||
|
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
|
||||||
@@ -103,7 +98,11 @@ in
|
|||||||
{ path = "/System/Applications/Mail.app/"; }
|
{ path = "/System/Applications/Mail.app/"; }
|
||||||
{ path = "/Applications/MailMate.app/"; }
|
{ path = "/Applications/MailMate.app/"; }
|
||||||
{ path = "/Applications/1Password.app/"; }
|
{ path = "/Applications/1Password.app/"; }
|
||||||
|
{ path = "/Applications/Bitwarden.app"; }
|
||||||
|
{ path = "/Applications/Calendar.app/"; }
|
||||||
|
{ path = "/Applications/Notes.app/"; }
|
||||||
{ path = "/Applications/Firefox.app/"; }
|
{ path = "/Applications/Firefox.app/"; }
|
||||||
|
|
||||||
{ path = "/Applications/Slack.app/"; }
|
{ path = "/Applications/Slack.app/"; }
|
||||||
{
|
{
|
||||||
path = "/Applications/zoom.us.app/";
|
path = "/Applications/zoom.us.app/";
|
||||||
@@ -113,10 +112,14 @@ in
|
|||||||
|
|
||||||
{ path = "/Applications/iTerm.app/"; }
|
{ path = "/Applications/iTerm.app/"; }
|
||||||
{ path = "/Applications/Fantastical.app/"; }
|
{ path = "/Applications/Fantastical.app/"; }
|
||||||
# { path = "${pkgs.alacritty}/Applications/Alacritty.app/"; }
|
{ path = "${pkgs.alacritty}/Applications/Alacritty.app/"; }
|
||||||
{ path = "/Applications/Spotify.app/"; }
|
# { path = "/Applications/Spotify.app/"; }
|
||||||
{ path = "/Applications/Qobuz.app/"; }
|
{ path = "/Applications/Qobuz.app/"; }
|
||||||
{ path = "/System/Volumes/Preboot/Cryptexes/App/System/Applications/Safari.app/"; }
|
{ path = "/System/Volumes/Preboot/Cryptexes/App/System/Applications/Safari.app/"; }
|
||||||
|
{
|
||||||
|
path = "/Applications/Brave Browser.app/";
|
||||||
|
options = "-l Brave";
|
||||||
|
}
|
||||||
{ path = "/System/Applications/Photos.app/"; }
|
{ path = "/System/Applications/Photos.app/"; }
|
||||||
{ path = "/System/Applications/System Settings.app/"; }
|
{ path = "/System/Applications/System Settings.app/"; }
|
||||||
{ path = "/Applications/Signal.app/"; }
|
{ path = "/Applications/Signal.app/"; }
|
||||||
@@ -134,9 +137,10 @@ in
|
|||||||
{ path = "/Applications/Microsoft Word.app/"; }
|
{ path = "/Applications/Microsoft Word.app/"; }
|
||||||
{ path = "/Applications/Microsoft PowerPoint.app/"; }
|
{ path = "/Applications/Microsoft PowerPoint.app/"; }
|
||||||
{ path = "/Applications/Microsoft Teams.app/"; }
|
{ path = "/Applications/Microsoft Teams.app/"; }
|
||||||
|
{ path = "/Applications/Monal.app/"; }
|
||||||
{ path = "/System/Applications/Utilities/Screen Sharing.app/"; }
|
{ path = "/System/Applications/Utilities/Screen Sharing.app/"; }
|
||||||
{ path = "/run/current-system/Applications/Emacs.app/"; }
|
{ path = "/run/current-system/Applications/Emacs.app/"; }
|
||||||
{ path = "/run/current-system/Applications/Zotero.app/"; }
|
{ path = "/run/current-system/Applications/Zotero.app"; }
|
||||||
{
|
{
|
||||||
path = "/Applications/";
|
path = "/Applications/";
|
||||||
section = "others";
|
section = "others";
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{ pkgs }:
|
{ pkgs, llm-agents }:
|
||||||
|
|
||||||
with pkgs;
|
with pkgs;
|
||||||
let
|
let
|
||||||
shared-packages = import ../shared/packages.nix { inherit pkgs; };
|
shared-packages = import ../shared/packages.nix { inherit pkgs llm-agents; };
|
||||||
in
|
in
|
||||||
shared-packages
|
shared-packages
|
||||||
++ [
|
++ [
|
||||||
|
|||||||
@@ -8,24 +8,45 @@
|
|||||||
let
|
let
|
||||||
user = "olaf";
|
user = "olaf";
|
||||||
xdg_configHome = "/home/${user}/.config";
|
xdg_configHome = "/home/${user}/.config";
|
||||||
shared-programs = import ../shared/home-manager.nix { inherit config pkgs lib; };
|
shared-programs = import ../shared/home-manager.nix { inherit config pkgs lib; };
|
||||||
shared-files = import ../shared/files.nix { inherit config pkgs; };
|
shared-files = import ../shared/files.nix { inherit config pkgs; };
|
||||||
|
|
||||||
polybar-user_modules = builtins.readFile (
|
polybar-user_modules = builtins.replaceStrings
|
||||||
pkgs.replaceVars {
|
[
|
||||||
src = ./config/polybar/user_modules.ini;
|
"@packages@"
|
||||||
packages = "${xdg_configHome}/polybar/bin/check-nixos-updates.sh";
|
"@searchpkgs@"
|
||||||
searchpkgs = "${xdg_configHome}/polybar/bin/search-nixos-updates.sh";
|
"@launcher@"
|
||||||
launcher = "${xdg_configHome}/polybar/bin/launcher.sh";
|
"@powermenu@"
|
||||||
powermenu = "${xdg_configHome}/rofi/bin/powermenu.sh";
|
"@calendar@"
|
||||||
calendar = "${xdg_configHome}/polybar/bin/popup-calendar.sh";
|
]
|
||||||
}
|
[
|
||||||
);
|
"${xdg_configHome}/polybar/bin/check-nixos-updates.sh"
|
||||||
|
"${xdg_configHome}/polybar/bin/search-nixos-updates.sh"
|
||||||
|
"${xdg_configHome}/polybar/bin/launcher.sh"
|
||||||
|
"${xdg_configHome}/rofi/bin/powermenu.sh"
|
||||||
|
"${xdg_configHome}/polybar/bin/popup-calendar.sh"
|
||||||
|
]
|
||||||
|
(builtins.readFile ./config/polybar/user_modules.ini);
|
||||||
|
|
||||||
polybar-config = pkgs.replaceVars {
|
polybar-config = {
|
||||||
src = ./config/polybar/config.ini;
|
"global/wm" = {
|
||||||
font0 = "DejaVu Sans:size=12;3";
|
margin-bottom = 0;
|
||||||
font1 = "feather:size=12;3"; # from overlay
|
margin-top = 0;
|
||||||
|
};
|
||||||
|
"bar/main" = {
|
||||||
|
width = "98%";
|
||||||
|
height = 40;
|
||||||
|
background = "#000000";
|
||||||
|
foreground = "#ffffff";
|
||||||
|
font-0 = "DejaVu Sans:size=12;3";
|
||||||
|
font-1 = "feather:size=12;3";
|
||||||
|
modules-left = "launcher workspaces";
|
||||||
|
modules-center = "date popup-calendar";
|
||||||
|
modules-right = "pulseaudio memory cpu updates sysmenu";
|
||||||
|
};
|
||||||
|
settings = {
|
||||||
|
screenchange-reload = false;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
polybar-modules = builtins.readFile ./config/polybar/modules.ini;
|
polybar-modules = builtins.readFile ./config/polybar/modules.ini;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,142 +0,0 @@
|
|||||||
;; -------------------------
|
|
||||||
;; Variable Declarations
|
|
||||||
;; -------------------------
|
|
||||||
(defvar org-config-file "~/.local/share/src/nixos-config/modules/shared/config/emacs/config.org")
|
|
||||||
(defvar default-config-file "~/.emacs.d/default-config.org")
|
|
||||||
(defvar default-config-url "https://git.kolkman.org/olaf/nixos-config_to_rule_them_all/raw/branch/main/modules/shared/config/emacs/config.org")
|
|
||||||
|
|
||||||
;; -------------------------
|
|
||||||
;; Package Manager Setup
|
|
||||||
;; -------------------------
|
|
||||||
(require 'package)
|
|
||||||
(setq package-archives '(("melpa" . "https://melpa.org/packages/")
|
|
||||||
("gnu" . "http://elpa.gnu.org/packages/")))
|
|
||||||
|
|
||||||
(unless (assoc-default "melpa" package-archives)
|
|
||||||
(message "Warning: MELPA source not found. Adding MELPA to package-archives.")
|
|
||||||
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t))
|
|
||||||
(unless (assoc-default "org" package-archives)
|
|
||||||
(message "Warning: Org source not found. Adding Org to package-archives.")
|
|
||||||
(add-to-list 'package-archives '("org" . "https://orgmode.org/elpa/") t))
|
|
||||||
|
|
||||||
(setq package-enable-at-startup nil)
|
|
||||||
|
|
||||||
;; -------------------------
|
|
||||||
;; Use-Package Setup
|
|
||||||
;; -------------------------
|
|
||||||
(unless (package-installed-p 'use-package)
|
|
||||||
(package-initialize)
|
|
||||||
(if (package-install 'use-package)
|
|
||||||
(message "use-package installed successfully.")
|
|
||||||
(error "Error: Failed to install use-package."))
|
|
||||||
(setq use-package-verbose t)
|
|
||||||
(setq use-package-always-ensure t)
|
|
||||||
(require 'use-package))
|
|
||||||
|
|
||||||
;; -------------------------
|
|
||||||
;; Environment Variables Setup
|
|
||||||
;; -------------------------
|
|
||||||
(use-package exec-path-from-shell
|
|
||||||
:if (memq window-system '(mac ns x))
|
|
||||||
:config
|
|
||||||
(setq exec-path-from-shell-variables '("PATH" "GOPATH" "PNPM_HOME"))
|
|
||||||
(if (exec-path-from-shell-initialize)
|
|
||||||
(message "Environment variables initialized successfully.")
|
|
||||||
(error "Error: Failed to initialize environment variables.")))
|
|
||||||
|
|
||||||
(when (daemonp)
|
|
||||||
(exec-path-from-shell-initialize))
|
|
||||||
|
|
||||||
;; -------------------------
|
|
||||||
;; Straight.el Setup
|
|
||||||
;; -------------------------
|
|
||||||
(setq straight-repository-branch "develop")
|
|
||||||
(defvar bootstrap-version)
|
|
||||||
(let ((bootstrap-file
|
|
||||||
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
|
|
||||||
(bootstrap-version 6))
|
|
||||||
(unless (file-exists-p bootstrap-file)
|
|
||||||
(with-current-buffer
|
|
||||||
(url-retrieve-synchronously
|
|
||||||
"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
|
|
||||||
'silent 'inhibit-cookies)
|
|
||||||
(goto-char (point-max))
|
|
||||||
(eval-print-last-sexp)))
|
|
||||||
(if (load bootstrap-file nil 'nomessage)
|
|
||||||
(message "Straight.el loaded successfully.")
|
|
||||||
(error "Error: Failed to load Straight.el.")))
|
|
||||||
|
|
||||||
(setq straight-use-package-by-default t)
|
|
||||||
(package-initialize)
|
|
||||||
|
|
||||||
;; -------------------------
|
|
||||||
;; Window and UI Setup
|
|
||||||
;; -------------------------
|
|
||||||
(defun dl/window-setup ()
|
|
||||||
(condition-case nil
|
|
||||||
(progn
|
|
||||||
(column-number-mode)
|
|
||||||
(scroll-bar-mode 0)
|
|
||||||
(menu-bar-mode -1)
|
|
||||||
(tool-bar-mode 0)
|
|
||||||
(winner-mode 1)
|
|
||||||
(add-to-list 'default-frame-alist '(ns-transparent-titlebar . t))
|
|
||||||
(add-to-list 'default-frame-alist '(ns-appearance . dark))
|
|
||||||
(setq ns-use-proxy-icon nil)
|
|
||||||
(setq frame-title-format nil)
|
|
||||||
(message "Window and UI setup completed successfully."))
|
|
||||||
(error (message "Error occurred in Window and UI setup."))))
|
|
||||||
(dl/window-setup)
|
|
||||||
|
|
||||||
;; -------------------------
|
|
||||||
;; Org Mode Setup
|
|
||||||
;; -------------------------
|
|
||||||
(defun dl/org-mode-setup ()
|
|
||||||
(condition-case nil
|
|
||||||
(progn
|
|
||||||
(org-indent-mode)
|
|
||||||
(variable-pitch-mode 1)
|
|
||||||
(auto-fill-mode 0)
|
|
||||||
(visual-line-mode 1)
|
|
||||||
(setq evil-auto-indent nil)
|
|
||||||
(message "Org mode setup completed successfully."))
|
|
||||||
(error (message "Error occurred in Org mode setup."))))
|
|
||||||
|
|
||||||
(use-package org
|
|
||||||
:defer t
|
|
||||||
:hook (org-mode . dl/org-mode-setup)
|
|
||||||
:config
|
|
||||||
(setq org-edit-src-content-indentation 2
|
|
||||||
org-ellipsis " ▾"
|
|
||||||
org-hide-emphasis-markers t
|
|
||||||
org-hide-block-startup nil)
|
|
||||||
:bind (("C-c a" . org-agenda)))
|
|
||||||
|
|
||||||
;; -------------------------
|
|
||||||
;; Default Config Download
|
|
||||||
;; -------------------------
|
|
||||||
(defun dl/download-default-config ()
|
|
||||||
(condition-case nil
|
|
||||||
(progn
|
|
||||||
(unless (file-exists-p default-config-file)
|
|
||||||
(url-retrieve default-config-url
|
|
||||||
(lambda (_status)
|
|
||||||
;; delete-region removes the HTTP headers from the downloaded content.
|
|
||||||
(delete-region (point-min) (1+ url-http-end-of-headers))
|
|
||||||
;; save the contents of the buffer to the file.
|
|
||||||
(write-file default-config-file)))
|
|
||||||
(message "Default configuration downloaded successfully.")))
|
|
||||||
(error (message "Error occurred while downloading the default configuration."))))
|
|
||||||
|
|
||||||
;; -------------------------
|
|
||||||
;; Load Org Config or Default
|
|
||||||
;; -------------------------
|
|
||||||
(condition-case nil
|
|
||||||
(progn
|
|
||||||
(unless (file-exists-p org-config-file)
|
|
||||||
(dl/download-default-config))
|
|
||||||
(if (file-exists-p org-config-file)
|
|
||||||
(org-babel-load-file org-config-file)
|
|
||||||
(org-babel-load-file default-config-file))
|
|
||||||
(message "Configuration loaded successfully."))
|
|
||||||
(error (message "Error occurred while loading the configuration.")))
|
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
emacsOverlaySha256 = "11p1c1l04zrn8dd5w8zyzlv172z05dwi9avbckav4d5fk043m754";
|
emacsOverlaySha256 = "0pqnl05j86pyvrlqh5kk4sximi749xqgiffq47grw7v98nqd2yin";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
home-manager.backupFileExtension = "nix-backup";
|
home-manager.backupFileExtension = "nix-backup";
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
config = {
|
config = {
|
||||||
@@ -11,6 +12,9 @@ in
|
|||||||
allowBroken = true;
|
allowBroken = true;
|
||||||
allowInsecure = false;
|
allowInsecure = false;
|
||||||
allowUnsupportedSystem = true;
|
allowUnsupportedSystem = true;
|
||||||
|
permittedInsecurePackages = [
|
||||||
|
"electron-39.8.10"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
overlays =
|
overlays =
|
||||||
@@ -22,8 +26,9 @@ in
|
|||||||
(attrNames (readDir path)))
|
(attrNames (readDir path)))
|
||||||
|
|
||||||
++ [(import (builtins.fetchTarball {
|
++ [(import (builtins.fetchTarball {
|
||||||
url = "https://github.com/dustinlyons/emacs-overlay/archive/refs/heads/master.tar.gz";
|
url = "https://github.com/nix-community/emacs-overlay/archive/master.tar.gz";
|
||||||
sha256 = emacsOverlaySha256;
|
sha256 = emacsOverlaySha256;
|
||||||
}))];
|
}))
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,8 +9,4 @@
|
|||||||
# text = githubPublicKey;
|
# text = githubPublicKey;
|
||||||
# };
|
# };
|
||||||
|
|
||||||
# Initializes Emacs with org-mode so we can tangle the main config
|
|
||||||
".emacs.d/init.el" = {
|
|
||||||
text = builtins.readFile ../shared/config/emacs/init.el;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,16 @@ let
|
|||||||
in
|
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
|
# Shared shell configuration
|
||||||
zsh = {
|
zsh = {
|
||||||
@@ -34,6 +44,10 @@ in
|
|||||||
. /nix/var/nix/profiles/default/etc/profile.d/nix.sh
|
. /nix/var/nix/profiles/default/etc/profile.d/nix.sh
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# GPGAgent for SSH
|
||||||
|
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
|
||||||
|
|
||||||
# Define variables for directories
|
# Define variables for directories
|
||||||
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
|
||||||
@@ -88,12 +102,11 @@ in
|
|||||||
git = {
|
git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
ignores = [ "*.swp" ];
|
ignores = [ "*.swp" ];
|
||||||
userName = name;
|
|
||||||
userEmail = email;
|
|
||||||
lfs = {
|
lfs = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
extraConfig = {
|
settings = {
|
||||||
init.defaultBranch = "main";
|
init.defaultBranch = "main";
|
||||||
core = {
|
core = {
|
||||||
editor = "vim";
|
editor = "vim";
|
||||||
@@ -102,6 +115,15 @@ in
|
|||||||
commit.gpgsign = false;
|
commit.gpgsign = false;
|
||||||
pull.rebase = true;
|
pull.rebase = true;
|
||||||
rebase.autoStash = true;
|
rebase.autoStash = true;
|
||||||
|
user = {
|
||||||
|
name = name;
|
||||||
|
email = email;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
signing = {
|
||||||
|
format = "openpgp";
|
||||||
|
key = null;
|
||||||
|
signByDefault = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -291,39 +313,29 @@ in
|
|||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
enableDefaultConfig = false;
|
enableDefaultConfig = false;
|
||||||
matchBlocks."*" = {
|
settings= {
|
||||||
forwardAgent = false;
|
"*" = {
|
||||||
addKeysToAgent = "no";
|
forwardAgent = false;
|
||||||
compression = false;
|
addKeysToAgent = "no";
|
||||||
serverAliveInterval = 0;
|
compression = false;
|
||||||
serverAliveCountMax = 3;
|
serverAliveInterval = 0;
|
||||||
hashKnownHosts = false;
|
serverAliveCountMax = 3;
|
||||||
userKnownHostsFile = "~/.ssh/known_hosts";
|
hashKnownHosts = false;
|
||||||
controlMaster = "no";
|
userKnownHostsFile = "~/.ssh/known_hosts";
|
||||||
controlPath = "~/.ssh/master-%r@%n:%p";
|
controlMaster = "no";
|
||||||
controlPersist = "no";
|
controlPath = "~/.ssh/master-%r@%n:%p";
|
||||||
};
|
controlPersist = "no";
|
||||||
includes = [
|
|
||||||
(lib.mkIf pkgs.stdenv.hostPlatform.isLinux "/home/${user}/.ssh/config_external")
|
|
||||||
(lib.mkIf pkgs.stdenv.hostPlatform.isDarwin "/Users/${user}/.ssh/config_external")
|
|
||||||
];
|
|
||||||
matchBlocks = {
|
|
||||||
"Host *" = {
|
|
||||||
identityAgent = "\"~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock\"";
|
|
||||||
};
|
|
||||||
"github.com" = {
|
|
||||||
identitiesOnly = true;
|
|
||||||
identityFile = [
|
|
||||||
(lib.mkIf pkgs.stdenv.hostPlatform.isLinux "/home/${user}/.ssh/id_github")
|
|
||||||
(lib.mkIf pkgs.stdenv.hostPlatform.isDarwin "/Users/${user}/.ssh/id_github")
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
"moonunit.kolkman.org" = {
|
"moonunit.kolkman.org" = {
|
||||||
hostname = "moonunit.kolkman.org";
|
hostname = "moonunit.kolkman.org";
|
||||||
user = "root";
|
user = "root";
|
||||||
port = 2222;
|
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 = {
|
tmux = {
|
||||||
@@ -409,4 +421,7 @@ in
|
|||||||
bind-key -T copy-mode-vi 'C-\' select-pane -l
|
bind-key -T copy-mode-vi 'C-\' select-pane -l
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+127
-82
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs }:
|
{ pkgs, llm-agents }:
|
||||||
|
|
||||||
with pkgs;
|
with pkgs;
|
||||||
[
|
[
|
||||||
@@ -6,9 +6,25 @@ with pkgs;
|
|||||||
nixd
|
nixd
|
||||||
mas
|
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
|
# General packages for development and system management
|
||||||
#alacritty
|
alacritty
|
||||||
ansible
|
ansible
|
||||||
aspell
|
aspell
|
||||||
aspellDicts.en
|
aspellDicts.en
|
||||||
@@ -16,171 +32,200 @@ with pkgs;
|
|||||||
bat
|
bat
|
||||||
btop
|
btop
|
||||||
coreutils
|
coreutils
|
||||||
|
difftastic
|
||||||
|
htop
|
||||||
killall
|
killall
|
||||||
neofetch
|
minicom
|
||||||
|
mtr
|
||||||
|
ncdu
|
||||||
|
nodejs
|
||||||
|
|
||||||
|
fastfetch
|
||||||
|
nixfmt
|
||||||
openssh
|
openssh
|
||||||
|
postgresql
|
||||||
sqlite
|
sqlite
|
||||||
|
unrar
|
||||||
wget
|
wget
|
||||||
zip
|
zip
|
||||||
htop
|
|
||||||
ncdu
|
|
||||||
mtr
|
|
||||||
nixfmt-rfc-style
|
|
||||||
difftastic
|
|
||||||
# Development
|
|
||||||
|
|
||||||
|
# Development
|
||||||
|
act
|
||||||
autoconf
|
autoconf
|
||||||
autoconf-archive
|
autoconf-archive
|
||||||
automake
|
automake
|
||||||
ccache
|
ccache
|
||||||
|
clang-tools
|
||||||
cmake
|
cmake
|
||||||
|
dfu-util
|
||||||
|
go
|
||||||
|
jd-diff-patch # json diff patch
|
||||||
|
jq # json tool
|
||||||
|
llvm
|
||||||
nasm
|
nasm
|
||||||
ninja
|
ninja
|
||||||
pkg-config
|
pkg-config
|
||||||
llvm
|
|
||||||
clang-tools
|
|
||||||
dfu-util
|
|
||||||
go
|
|
||||||
jq # json tool
|
|
||||||
jd-diff-patch #json diff patch
|
|
||||||
# Encryption and security tools
|
# Encryption and security tools
|
||||||
age
|
age
|
||||||
sops
|
|
||||||
gnupg
|
gnupg
|
||||||
libfido2
|
|
||||||
just
|
just
|
||||||
|
libfido2
|
||||||
|
sops
|
||||||
|
|
||||||
# Cloud-related tools and SDKs
|
# Cloud-related tools and SDKs
|
||||||
docker
|
docker
|
||||||
docker-compose
|
docker-compose
|
||||||
|
|
||||||
# Media-related packages
|
# Media-related packages
|
||||||
emacs-all-the-icons-fonts
|
|
||||||
dejavu_fonts
|
|
||||||
ffmpeg
|
|
||||||
fd
|
fd
|
||||||
font-awesome
|
ffmpeg
|
||||||
hack-font
|
imagemagick
|
||||||
noto-fonts
|
|
||||||
noto-fonts-emoji
|
|
||||||
meslo-lgs-nf
|
|
||||||
|
|
||||||
# Node.js development tools
|
# Node.js development tools
|
||||||
nodePackages.npm # globally install npm
|
#nodePackages.npm # globally install npm
|
||||||
nodePackages.prettier
|
#nodePackages.prettier
|
||||||
nodejs
|
|
||||||
|
|
||||||
# Text and terminal utilities
|
# Text and terminal utilities
|
||||||
xquartz
|
|
||||||
xterm
|
|
||||||
|
|
||||||
htop
|
htop
|
||||||
hunspell
|
hunspell
|
||||||
iftop
|
iftop
|
||||||
jetbrains-mono
|
inetutils # includes Telnet
|
||||||
jq
|
jq
|
||||||
ripgrep
|
ripgrep
|
||||||
tree
|
|
||||||
tmux
|
tmux
|
||||||
|
tree
|
||||||
unrar
|
unrar
|
||||||
unzip
|
unzip
|
||||||
inetutils # includes Telnet
|
|
||||||
|
|
||||||
# zsh-powerlevel10k
|
# zsh-powerlevel10k
|
||||||
|
|
||||||
# Python packages
|
# Python packages
|
||||||
# python3
|
# python3
|
||||||
virtualenv
|
virtualenv
|
||||||
(python3.withPackages (python-pkgs: with python-pkgs; [
|
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
|
pandas
|
||||||
|
pillow
|
||||||
|
pillow
|
||||||
|
python-engineio
|
||||||
|
python-socketio
|
||||||
requests
|
requests
|
||||||
|
requests
|
||||||
|
shapely
|
||||||
|
simple-websocket
|
||||||
tkinter
|
tkinter
|
||||||
]))
|
tqdm
|
||||||
|
urllib3
|
||||||
|
werkzeug
|
||||||
|
wsproto
|
||||||
|
zipp
|
||||||
|
]
|
||||||
|
))
|
||||||
|
|
||||||
|
# LLM
|
||||||
|
ollama # Launchd definition in hosts/darwin/default.nix
|
||||||
|
|
||||||
|
# Social
|
||||||
|
pidgin
|
||||||
|
|
||||||
# Rust Related
|
# Rust Related
|
||||||
rustc
|
rustc
|
||||||
cargo
|
cargo
|
||||||
platformio-core
|
platformio-core
|
||||||
|
|
||||||
# (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
|
|
||||||
# eamodio.gitlens
|
|
||||||
# james-yu.latex-workshop
|
|
||||||
# ]
|
|
||||||
# ++ 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.0";
|
|
||||||
# sha256 = "sha256-cH5x8fUN0n+hO1b3lNzau2MnyeYmsD0ZXAYGxCQjT0Y=";
|
|
||||||
# }
|
|
||||||
# {
|
|
||||||
# name = "platformio-ide";
|
|
||||||
# publisher = "platformio";
|
|
||||||
# version = "3.3.4";
|
|
||||||
# sha256 = "sha256-qfNz4IYjCmCMFLtAkbGTW5xnsVT8iDnFWjrgkmr2Slk=";
|
|
||||||
# }
|
|
||||||
# ];
|
|
||||||
# })
|
|
||||||
|
|
||||||
# XML, Tex and LaTex
|
# XML, Tex and LaTex
|
||||||
pandoc
|
|
||||||
mdbook
|
|
||||||
xml2rfc
|
|
||||||
rubyPackages_3_4.kramdown-rfc2629
|
|
||||||
zotero
|
|
||||||
|
|
||||||
|
mdbook
|
||||||
|
pandoc
|
||||||
|
rubyPackages_3_4.kramdown-rfc2629
|
||||||
|
tex-fmt
|
||||||
|
xml2rfc
|
||||||
|
zotero
|
||||||
|
|
||||||
(texlive.combine {
|
(texlive.combine {
|
||||||
inherit (texlive)
|
inherit (texlive)
|
||||||
apa6
|
apa6
|
||||||
|
apa7
|
||||||
|
apacite
|
||||||
biber
|
biber
|
||||||
biblatex-apa6
|
|
||||||
biblatex
|
biblatex
|
||||||
|
biblatex-apa6
|
||||||
bibunits
|
bibunits
|
||||||
|
catchfile
|
||||||
|
cjk
|
||||||
|
comment
|
||||||
|
courier
|
||||||
|
csquotes
|
||||||
draftwatermark
|
draftwatermark
|
||||||
|
endfloat
|
||||||
enumitem
|
enumitem
|
||||||
|
fancyhdr
|
||||||
fontawesome5
|
fontawesome5
|
||||||
|
footmisc
|
||||||
footnotehyper
|
footnotehyper
|
||||||
|
geometry
|
||||||
ifmtarg
|
ifmtarg
|
||||||
|
latexmk
|
||||||
|
lipsum
|
||||||
lualatex-math
|
lualatex-math
|
||||||
makecell
|
makecell
|
||||||
microtype
|
microtype
|
||||||
|
multirow
|
||||||
|
nowidow
|
||||||
parskip
|
parskip
|
||||||
|
ragged2e
|
||||||
|
scalerel
|
||||||
scheme-small
|
scheme-small
|
||||||
selnolig
|
selnolig
|
||||||
sourcesanspro
|
sourcesanspro
|
||||||
|
svg
|
||||||
tcolorbox
|
tcolorbox
|
||||||
texcount
|
texcount
|
||||||
threeparttable
|
threeparttable
|
||||||
tikzfill
|
tikzfill
|
||||||
|
titlesec
|
||||||
titling
|
titling
|
||||||
|
tocloft
|
||||||
|
transparent
|
||||||
upquote
|
upquote
|
||||||
|
url
|
||||||
|
xecjk
|
||||||
xifthen
|
xifthen
|
||||||
xurl
|
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