63 Commits
Author SHA1 Message Date
Olaf 9d42bfdf15 Trying to use brew-nix - still to much broken 2026-07-30 16:04:47 +02:00
Olaf 45bf546b85 Fixed brew inconstistency andded tigervnc 2026-07-30 14:32:13 +02:00
Olaf c260e93db8 emacs hash 2026-07-30 12:00:52 +02:00
Olaf 341f20fe7a emacs SHA256 2026-07-26 12:47:43 +02:00
Olaf 980a42aaa1 fonts tweaking 2026-07-21 09:40:56 +02:00
Olaf f5ed23670c emacsOverlaySha256 2026-07-21 09:37:27 +02:00
Olaf dd455dc053 wireguard from app store 2026-07-21 09:37:02 +02:00
Olaf b87fea970b browser reorg to cask. Font.packages 2026-07-17 12:57:17 +02:00
Olaf ddfe41c461 Few home manager changes 2026-07-16 11:09:10 +02:00
Olaf c3cfbf5a6a Xterm & Ollama launch 2026-07-13 15:02:30 +02:00
Olaf Kolkman 1336a9bcd8 Added hermes-hud 2026-07-09 08:25:18 +02:00
Olaf Kolkman 48ee955035 cleanup 2026-07-08 22:55:53 +02:00
Olaf Kolkman 626a07e7e9 Works with LLM but should be able to do this cleaner 2026-07-08 22:34:15 +02:00
Olaf Kolkman 78ffc4e895 LLM-agents installed 2026-07-08 22:26:38 +02:00
Olaf Kolkman 4d54560d77 Add packages-list.nix for llm-agents packages 2026-07-08 22:17:25 +02:00
Olaf Kolkman 3ef4bb5495 X11 2026-07-07 20:31:41 +02:00
Olaf Kolkman 355d6995bf cjk in latex 2026-07-04 13:52:05 +02:00
Olaf dd7520ec84 Emacs-git and some tex packages 2026-07-01 15:34:39 +02:00
Olaf f311d671b2 emacs hash - remove bitwarden-cli 2026-06-11 15:22:03 +02:00
Olaf 126b92831a Bitwarden broke and now stable 26.05 2026-05-31 09:28:21 +02:00
Olaf 07aafd820c Bitwarden path in dock 2026-05-27 11:32:14 +02:00
Olaf 5111cb4178 Now running unstable.... 2026-05-12 10:52:51 +02:00
Olaf 86d529fdd0 git signing parameters 2026-03-24 08:19:44 +01:00
Olaf acf2b21f72 some apps, and GPG/SSH 2026-03-24 07:34:30 +01:00
Olaf Kolkman 2e0bc0bae2 Ollama and Bitwarden 2026-02-07 07:39:27 +01:00
Olaf 353e1373b8 Simplified emacs setup and made it default 2026-01-26 18:07:11 +01:00
Olaf add16d36f3 various packages and casks 2026-01-26 15:22:27 +01:00
Olaf fde5d13c0a sqlitestudio not working on this arch 2026-01-05 10:21:15 +01:00
Olaf 02d4f6e68d move order 2025-12-05 10:30:25 +01:00
Olaf 5d811f88ad sorting and minicom 2025-12-03 12:59:29 +01:00
Olaf Kolkman 635d6cdeca 25.05->25.11 2025-12-01 21:39:20 +01:00
Olaf 5cf2d8397d NAtive SQLite manager and rename brew 2025-11-22 18:20:33 +01:00
Olaf 0a1a5a4e4a xmpp clients and act (local git workflow) 2025-10-30 09:52:59 +00:00
Olaf 1666aba15f Removed spotify from menu 2025-10-09 11:57:37 +02:00
Olaf 8a88048d04 Added Steam 2025-10-09 11:56:35 +02:00
Olaf af6a0ca69c alpha ordering + addition DaisyDisk 2025-10-03 10:07:38 +02:00
Olaf 43d3ceaf41 Python packages 2025-10-01 14:23:09 +02:00
Olaf 79acda67c6 ssh config 2025-10-01 14:22:56 +02:00
Olaf 3a1745e620 ansible and X-quartz 2025-09-20 07:58:40 +10:00
Olaf ebe51b2dc6 added qobuz 2025-09-20 07:58:07 +10:00
Olaf eed6a57885 telnet through inetutils 2025-09-02 12:48:04 +02:00
Olaf bdf62ceec0 telnet throughinet tools 2025-09-02 12:47:06 +02:00
Olaf ca74f4654b emacs hash 2025-09-02 12:46:21 +02:00
Olaf bf8698da71 Moving zotero from brew to packages. 2025-08-27 14:53:04 +02:00
Olaf dd195b866d spotify moved, autodesk fusion fails, private internet moved 2025-08-25 16:07:11 +02:00
Olaf Kolkman 0540531fb8 gitdeveloper group added 2025-07-27 15:35:07 +02:00
Olaf Kolkman 3be843fd2e removing mac-apps because it doesn't work on X86 with OCLP 2025-07-27 15:34:40 +02:00
Olaf Kolkman 37c3dac5bb 1 password doesn't worlk with MAS it seems 2025-07-16 20:28:34 +02:00
Olaf f542767018 Moving a bunch of packages from brew to apple store 2025-07-16 18:07:52 +02:00
Olaf 9d1b7596b1 Adding mac-app-util to make apps spotlight findalbe 2025-06-03 10:15:10 +02:00
kolkman da81594cdd Working VSCODE 2025-06-02 18:44:10 +02:00
olaf a9d56b5eba Visual-Studio-Code - found noncompiling culprit in ms-vscode.cpptools 2025-05-28 13:50:14 +02:00
Olaf 93739cb304 Deleted files from git 2025-05-28 08:32:46 +02:00
Olaf 62b34d5d40 Reversing VScode (no X84 Darwin package availabie?!?) 2025-05-28 08:31:56 +02:00
Olaf 911d98cd65 Developer and virtual studio stuff 2025-05-27 16:38:00 +02:00
Olaf 77ac865b41 deleting a few files 2025-05-21 09:29:53 +02:00
Olaf 4416f31887 typo 2025-05-21 09:28:01 +02:00
Olaf 4fc3ecf3b8 error correction of wrongfull cut and paste 2025-05-20 20:40:40 +02:00
Olaf e902d172d2 libre office and oracle jdk 2025-05-20 20:39:03 +02:00
Olaf 372e15742d ah well also emacs 2025-05-20 20:37:19 +02:00
Olaf 00db155874 also emacs 2025-05-20 20:36:51 +02:00
Olaf a79999d465 emacs init teaking 2025-05-20 20:36:17 +02:00
olaf 61dc01881b Some additional casks 2025-05-18 13:13:27 +02:00
18 changed files with 612 additions and 1822 deletions
+49 -45
View File
@@ -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/nixos-unstable"; 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:LnL7/nix-darwin/master"; # 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";
@@ -37,6 +44,28 @@
url = "github:Mic92/sops-nix"; url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
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 = {
# url = "github:hraban/mac-app-util";
# };
}; };
outputs = outputs =
{ {
@@ -51,6 +80,12 @@
disko, disko,
nixd, nixd,
sops-nix, sops-nix,
nix-vscode-extensions,
catppuccin,
llm-agents,
brew-api,
brew-nix,
...
}@inputs: }@inputs:
let let
user = "olaf"; user = "olaf";
@@ -80,7 +115,7 @@
export EDITOR=vim export EDITOR=vim
''; '';
buildInputs = with pkgs; [ buildInputs = with pkgs; [
rnix-lsp bash
]; ];
}; };
}; };
@@ -99,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:
@@ -126,46 +153,23 @@
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
{ {
nix-homebrew = { brew-nix.enable = true;
inherit user; home-manager.sharedModules = [
enable = true; # mac-app-util.homeManagerModules.default
taps = { catppuccin.homeModules.catppuccin
"homebrew/homebrew-core" = homebrew-core;
"homebrew/homebrew-cask" = homebrew-cask; ];
"homebrew/homebrew-bundle" = homebrew-bundle;
};
mutableTaps = false;
autoMigrate = true;
};
} }
./hosts/darwin ./hosts/darwin
]; ];
} }
); );
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
];
}
);
}; };
} }
+56
View File
@@ -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)
+63 -3
View File
@@ -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,16 +61,62 @@ in
''; '';
}; };
users.groups = {
gidevelopert = {
description = "Git Common Rights";
gid = 500;
name = "gitdeveloper";
members = [ "olaf" ];
};
};
users.knownGroups = [ "gitdeveloper" ];
# Turn off NIX_PATH warnings now that we're using flakes # 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; })
; ;
@@ -82,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
View File
@@ -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
]; ];
+79 -53
View File
@@ -1,63 +1,89 @@
_: { pkgs }:
let
casks = pkgs.brewCasks;
# the override to replace the packages 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
"visual-studio-code" casks."docker-desktop"
"iterm2" casks.iterm2
casks.oracle-jdk
casks."visual-studio-code"
# Creatative tools # Creative tools
"spotify" casks.blender
"blender" casks.gimp
"gimp" casks.inkscape
"inkscape" casks."vcv-rack"
"vcv-rack"
"affinity-designer"
"affinity-photo"
"affinity-publisher"
# Communication Tools # Communication tools
"discord" casks.adium
"notion" casks.discord
"slack" casks.signal
"signal" casks.webex
"whatsapp" casks.whatsapp
"zoom" casks.zoom
"webex"
# 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"
casks.mediaelch
casks.obs
casks."vimediamanager"
casks.vlc
# Productivity Tools # Productivity tools
"raycast" casks."1password"
"1Password" casks.bitwarden
"zotero" casks.calibre
"gpg-suite" casks."dbeaver-community"
"home-assistant" casks.element
"Fantastical" casks."gpg-suite"
"Remarkable" casks."macdown-3000"
"mailmate" casks.mailmate
"spamsieve" casks.orcaslicer
"libreoffice" casks.remanager
"macdown" casks."qmk-toolbox"
"calibre" casks.smartsheet
"superslicer" casks."copilot-cli"
# Browsers # Browsers
"google-chrome" casks."brave-browser"
"firefox" casks.firefox
casks."google-chrome"
# X11
casks.xquartz
] ]
+47 -24
View File
@@ -3,20 +3,23 @@
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
emacsclient -c -n & emacs &
''; '';
sharedFiles = import ../shared/files.nix { inherit config pkgs; }; 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
]; ];
@@ -30,26 +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 = {
"wireguard" = 1451685025;
};
}; };
environment.systemPackages = casks;
# Enable home-manager # Enable home-manager
home-manager = { home-manager = {
useGlobalPkgs = true; useGlobalPkgs = true;
@@ -61,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
@@ -85,26 +94,37 @@ in
dock = { dock = {
enable = true; enable = true;
entries = [ entries = [
{ path = "/System/Applications/Launchpad.app/"; }
{ 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/";
options = " -l Zooom"; options = " -l Zoom";
} }
{ path = "/System/Applications/Messages.app/"; } { path = "/System/Applications/Messages.app/"; }
{ 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 = "/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/"; }
{ path = "/Applications/WhatsApp.app/"; } { path = "/Applications/WhatsApp.app/"; }
{ path = "/Applications/Ice\ Cubes.app/"; }
{ {
path = "/Applications/Jellyfin Media Player.app/"; path = "/Applications/Jellyfin Media Player.app/";
@@ -117,7 +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/Zotero.app"; }
{ {
path = "/Applications/"; path = "/Applications/";
section = "others"; section = "others";
+2 -2
View File
@@ -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
++ [ ++ [
-1
View File
@@ -7,5 +7,4 @@
├── files.nix # Non-Nix, static configuration files (now immutable!) ├── files.nix # Non-Nix, static configuration files (now immutable!)
├── home-manager.nix # Defines user programs ├── home-manager.nix # Defines user programs
├── packages.nix # List of packages to install for NixOS ├── packages.nix # List of packages to install for NixOS
├── secrets.nix # Age-encrypted secrets with agenix
``` ```
+36 -15
View File
@@ -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;
+10 -2
View File
@@ -1,18 +1,23 @@
{ pkgs }: { pkgs }:
with pkgs; with pkgs;
let shared-packages = import ../shared/packages.nix { inherit pkgs; }; in let
shared-packages ++ [ shared-packages = import ../shared/packages.nix { inherit pkgs; };
in
shared-packages
++ [
# Security and authentication # Security and authentication
yubikey-agent yubikey-agent
keepassxc keepassxc
private-internet-access
# App and package management # App and package management
appimage-run appimage-run
gnumake gnumake
cmake cmake
home-manager home-manager
ansible
# Media and design tools # Media and design tools
vlc vlc
@@ -33,6 +38,9 @@ shared-packages ++ [
postgresql postgresql
libtool # for Emacs vterm libtool # for Emacs vterm
# System
istat-menus
# Screenshot and recording tools # Screenshot and recording tools
flameshot flameshot
File diff suppressed because it is too large Load Diff
-142
View File
@@ -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://raw.githubusercontent.com/dustinlyons/nixos-config/9ad810c818b895c1f67f4daf21bbef31d8b5e8cd/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.")))
+8 -3
View File
@@ -1,9 +1,10 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
let let
emacsOverlaySha256 = "06413w510jmld20i4lik9b36cfafm501864yq8k4vxl5r4hn0j0h"; 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;
}))]; }))
];
}; };
} }
-4
View File
@@ -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;
};
} }
+54 -22
View File
@@ -11,6 +11,17 @@ 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 = {
enable = true; enable = true;
@@ -33,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
@@ -45,12 +60,14 @@ in
alias search=rg -p --glob '!node_modules/*' $@ alias search=rg -p --glob '!node_modules/*' $@
# Emacs is my editor # Emacs is my editor
export ALTERNATE_EDITOR="" export ALTERNATE_EDITOR="vim"
export EDITOR="emacsclient -t" export EDITOR="emacs -nw"
export VISUAL="emacsclient -c -a emacs" export VISUAL="emacs"
# RMAPI remarkable
RMAPI_CONFIG=/Users/olaf/.config/rmapi
e() { e() {
emacsclient -t "$@" emacs -nw "$@"
} }
# nix shortcuts # nix shortcuts
@@ -85,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";
@@ -99,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;
}; };
}; };
@@ -286,27 +311,31 @@ in
ssh = { ssh = {
enable = true; enable = true;
includes = [
(lib.mkIf pkgs.stdenv.hostPlatform.isLinux "/home/${user}/.ssh/config_external") enableDefaultConfig = false;
(lib.mkIf pkgs.stdenv.hostPlatform.isDarwin "/Users/${user}/.ssh/config_external") settings= {
]; "*" = {
matchBlocks = { forwardAgent = false;
"Host *" = { addKeysToAgent = "no";
identityAgent = "\"~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock\""; compression = false;
}; serverAliveInterval = 0;
"github.com" = { serverAliveCountMax = 3;
identitiesOnly = true; hashKnownHosts = false;
identityFile = [ userKnownHostsFile = "~/.ssh/known_hosts";
(lib.mkIf pkgs.stdenv.hostPlatform.isLinux "/home/${user}/.ssh/id_github") controlMaster = "no";
(lib.mkIf pkgs.stdenv.hostPlatform.isDarwin "/Users/${user}/.ssh/id_github") controlPath = "~/.ssh/master-%r@%n:%p";
]; controlPersist = "no";
}; };
"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 = {
@@ -392,4 +421,7 @@ in
bind-key -T copy-mode-vi 'C-\' select-pane -l bind-key -T copy-mode-vi 'C-\' select-pane -l
''; '';
}; };
} }
+39
View File
@@ -0,0 +1,39 @@
(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=";
}
];
})
+152 -27
View File
@@ -1,106 +1,231 @@
{ pkgs }: { pkgs, llm-agents }:
with pkgs; with pkgs;
[ [
# Nix # Nix
nixd 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 # General packages for development and system management
#alacritty alacritty
ansible
aspell aspell
aspellDicts.en aspellDicts.en
bash-completion bash-completion
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 # Development
mtr act
nixfmt-rfc-style autoconf
difftastic 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 # Encryption and security tools
age age
sops
gnupg gnupg
just
libfido2 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
htop htop
hunspell hunspell
iftop iftop
jetbrains-mono inetutils # includes Telnet
jq jq
ripgrep ripgrep
tree
tmux tmux
tree
unrar unrar
unzip unzip
rmapi
# zsh-powerlevel10k # zsh-powerlevel10k
# Python packages # Python packages
python3 # python3
virtualenv 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 # Rust Related
rustc rustc
cargo cargo
platformio-core
# XML, Tex and LaTex
# Tex and LaTex
pandoc
mdbook mdbook
pandoc
rubyPackages_3_4.kramdown-rfc2629
tex-fmt
xml2rfc
zotero
(texlive.combine { (texlive.combine {
inherit (texlive) inherit (texlive)
apa6 apa6
apa7
apacite
biber
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
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
])