Compare commits

...

7 Commits

Author SHA1 Message Date
0e5b782164 playwright 2026-01-08 17:18:45 +00:00
b745a786a7 zen everything 2026-01-08 17:18:45 +00:00
9c3a56c7cc calendar to derek 2026-01-08 17:18:45 +00:00
bf7e5aee42 chromium 2026-01-08 17:18:45 +00:00
891f8b1d7a calendar 2026-01-08 17:18:45 +00:00
d7f46ae405 nodepnpm 2026-01-08 17:18:45 +00:00
0e54b3d302 flake 2026-01-08 17:18:45 +00:00
13 changed files with 259 additions and 51 deletions

View File

@@ -4,6 +4,7 @@ keys:
- &host_mindy age1dqt3znmzcgghsjjzzax0pf0eyu95h0p7kaf5v988ysjv7fl7lumsatl048
- &host_jason age1ez6j3r5wdp0tjy7n5qzv5vfakdc2nh2zeu388zu7a80l0thv052syxq5e2
- &host_chidi age1tlymdmaukhwupzrhszspp26lgd8s64rw4vu9lwc7gsgrjm78095s9fe9l3
- &host_derek age1h537hhl5qgew5sswjp7xf7d4j4aq0gg9s5flnr8twm2smnqyudhqmum8uy
creation_rules:
- path_regex: secrets/[^/]+$
key_groups:
@@ -13,3 +14,4 @@ creation_rules:
- *host_mindy
- *host_jason
- *host_chidi
- *host_derek

30
flake.lock generated
View File

@@ -214,11 +214,11 @@
]
},
"locked": {
"lastModified": 1767738364,
"narHash": "sha256-rmAerMcKMYusVs5B88RAKAYUiENrO+d4bjvpQkkaaks=",
"lastModified": 1767802041,
"narHash": "sha256-ZhgbFGQGeJaZ/xkwyHlgUCeHuIdEDqugYkObPL0NCyo=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "4e8b7bef66c60735982369f3151b93e62fe37da7",
"rev": "bdaa3743831168787f528570f2b87963e72a2f23",
"type": "github"
},
"original": {
@@ -230,11 +230,11 @@
"homebrew-cask": {
"flake": false,
"locked": {
"lastModified": 1767783403,
"narHash": "sha256-JRfbHmvc0fzC0HgGCOBQ8OYf1EqlUqgosGOh2Mqd4ww=",
"lastModified": 1767805488,
"narHash": "sha256-IVNkBxaHODv33s4lFCjdZ0TiI7oFeHLr95qYJqbSf0c=",
"owner": "homebrew",
"repo": "homebrew-cask",
"rev": "9729d176c313e0b5ebfc07bfe5b950445b3bf7b2",
"rev": "ffa99b87cd2ed057cd6c1045b6982a914793249e",
"type": "github"
},
"original": {
@@ -246,11 +246,11 @@
"homebrew-core": {
"flake": false,
"locked": {
"lastModified": 1767786165,
"narHash": "sha256-3MpEbufpCGMbwx4FHFABm6Mztf8vYQ8rXsuSKeZOULg=",
"lastModified": 1767810720,
"narHash": "sha256-b40mSF3kI5hKbicoJQli0IA2rqeKBgO+d/RzuuC0M/U=",
"owner": "homebrew",
"repo": "homebrew-core",
"rev": "fb07d3d9ac7c2270eee6903be2ed5d6e86a5559e",
"rev": "f6b9f34ac58d942b1cc9c3e7d562a7100b5dd11a",
"type": "github"
},
"original": {
@@ -266,11 +266,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1767772236,
"narHash": "sha256-jCsa6ZYF12B0IbPc3URM3uSjAUjMnPXBu1bRRiNaXY0=",
"lastModified": 1767796466,
"narHash": "sha256-8rwPauge7ZsXqVzVVHU1ilG6tLhvcgXUmC6BJjlLA34=",
"owner": "numtide",
"repo": "llm-agents.nix",
"rev": "0e91b692a921c873cc03586d910a954a5d04ee88",
"rev": "5888ba875bd4b3afe746a176699cf1287feddac0",
"type": "github"
},
"original": {
@@ -351,11 +351,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1767786791,
"narHash": "sha256-Eu0eZDABynDaCPRr5bce4UpVcmRHioxG8pJTpPPMrWE=",
"lastModified": 1767808640,
"narHash": "sha256-sNFuxUl3VxbKbKc5paKLex9YnsGA1JeL88A3gGsOd4I=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "c0fc386a2f5f7027de84c302659f16c93f8da151",
"rev": "0a2a75c03be78dd84edb14f4ae1a36a8228aa6d1",
"type": "github"
},
"original": {

View File

@@ -46,7 +46,7 @@
inherit (constants) user;
darwinHosts = ["chidi" "jason"];
nixosHosts = ["michael" "tahani"];
nixosHosts = ["derek" "michael" "tahani"];
overlays = import ./overlays {inherit inputs;};
nixpkgsConfig = hostPlatform: {

53
hosts/derek/calendar.nix Normal file
View File

@@ -0,0 +1,53 @@
{...}: {
programs.vdirsyncer = {
enable = true;
};
programs.khal = {
enable = true;
locale = {
timeformat = "%H:%M";
dateformat = "%d/%m/%Y";
longdateformat = "%d/%m/%Y";
datetimeformat = "%d/%m/%Y %H:%M";
longdatetimeformat = "%d/%m/%Y %H:%M";
};
};
accounts.calendar = {
basePath = ".local/share/calendars";
accounts.icloud = {
primary = true;
primaryCollection = "home";
remote = {
type = "caldav";
url = "https://caldav.icloud.com/";
userName = "christoph@schmatzler.com";
passwordCommand = ["cat" "/run/secrets/derek-icloud-password"];
};
local = {
type = "filesystem";
fileExt = ".ics";
};
vdirsyncer = {
enable = true;
collections = ["from a" "from b"];
metadata = ["color" "displayname"];
};
khal = {
enable = true;
type = "discover";
};
};
};
services.vdirsyncer = {
enable = true;
frequency = "*:0/15";
};
}

53
hosts/derek/default.nix Normal file
View File

@@ -0,0 +1,53 @@
{
pkgs,
inputs,
user,
hostname,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
(modulesPath + "/profiles/qemu-guest.nix")
./disk-config.nix
./hardware-configuration.nix
./secrets.nix
../../profiles/core.nix
../../profiles/fail2ban.nix
../../profiles/nixos.nix
../../profiles/openssh.nix
../../profiles/tailscale.nix
inputs.disko.nixosModules.disko
inputs.sops-nix.nixosModules.sops
];
networking.hostName = hostname;
environment.systemPackages = with pkgs; [
chromium
playwright-driver.browsers
];
home-manager.users.${user} = {
imports = [
../../profiles/bash.nix
../../profiles/bat.nix
../../profiles/direnv.nix
../../profiles/eza.nix
../../profiles/fish.nix
../../profiles/fzf.nix
../../profiles/git.nix
../../profiles/home.nix
../../profiles/jjui.nix
../../profiles/jujutsu.nix
../../profiles/lazygit.nix
../../profiles/neovim
../../profiles/ripgrep.nix
../../profiles/ssh.nix
../../profiles/starship.nix
../../profiles/zoxide.nix
./calendar.nix
inputs.nixvim.homeModules.nixvim
];
};
}

View File

@@ -0,0 +1,37 @@
{
disko.devices = {
disk = {
main = {
type = "disk";
device = "/dev/sda";
content = {
type = "gpt";
partitions = {
boot = {
size = "1M";
type = "EF02";
};
ESP = {
size = "512M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = ["umask=0077"];
};
};
root = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
};
};
}

View File

@@ -0,0 +1,18 @@
{
lib,
modulesPath,
...
}: {
imports = [
(modulesPath + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = ["ahci" "xhci_pci" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = [];
boot.extraModulePackages = [];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
networking.useDHCP = lib.mkDefault true;
}

9
hosts/derek/secrets.nix Normal file
View File

@@ -0,0 +1,9 @@
{user, ...}: {
sops.secrets = {
derek-icloud-password = {
sopsFile = ../../secrets/derek-icloud-password;
format = "binary";
owner = user;
};
};
}

View File

@@ -1,4 +1,5 @@
{
pkgs,
inputs,
user,
hostname,

24
overlays/sonoscli.nix Normal file
View File

@@ -0,0 +1,24 @@
{inputs}: final: prev: {
sonoscli = prev.buildGoModule rec {
pname = "sonoscli";
version = "0.1.0";
src = prev.fetchFromGitHub {
owner = "steipete";
repo = "sonoscli";
rev = "v${version}";
hash = "sha256-9ouRJ0Rr+W5Kx9BltgW29Jo1Jq7Hb/un4XBkq+0in9o=";
};
vendorHash = "sha256-hocnLCzWN8srQcO3BMNkd2lt0m54Qe7sqAhUxVZlz1k=";
subPackages = ["cmd/sonos"];
meta = with prev.lib; {
description = "Control SONOS speakers from your terminal";
homepage = "https://github.com/steipete/sonoscli";
license = licenses.mit;
mainProgram = "sonos";
};
};
}

View File

@@ -10,7 +10,6 @@
theme = "catppuccin";
plugin = [
"oh-my-opencode@2.14.0"
"opencode-antigravity-auth@1.2.7"
];
instructions = [
"CLAUDE.md"
@@ -22,34 +21,6 @@
disabled = true;
};
};
provider = {
google = {
models = {
antigravity-gemini-3-pro-high = {
name = "Gemini 3 Pro High (Antigravity)";
limit = {
context = 1048576;
output = 65535;
};
modalities = {
input = ["text" "image" "pdf"];
output = ["text"];
};
};
antigravity-gemini-3-flash = {
name = "Gemini 3 Flash (Antigravity)";
limit = {
context = 1048576;
output = 65536;
};
modalities = {
input = ["text" "image" "pdf"];
output = ["text"];
};
};
};
};
};
};
};
@@ -57,6 +28,9 @@
builtins.toJSON {
google_auth = false;
agents = {
sisyphus = {
model = "opencode/claude-opus-4-5";
};
explore = {
model = "opencode/minimax-m2.1-free";
};
@@ -64,16 +38,15 @@
model = "opencode/gpt-5.2";
};
frontend-ui-ux-engineer = {
model = "google/antigravity-gemini-3-pro-high";
model = "opencode/gemini-3-pro";
};
document-writer = {
model = "google/antigravity-gemini-3-flash";
model = "opencode/gemini-3-flash";
};
multimodal-looker = {
model = "google/antigravity-gemini-3-flash";
model = "opencode/gemini-3-flash";
};
};
disabled_hooks = ["startup-toast" "background-notification" "session-notification"];
disabled_mcps = ["websearch_exa"];
};
}

View File

@@ -28,8 +28,11 @@ with pkgs;
jq
killall
lsof
nodejs_24
nurl
openssh
ov
pnpm
postgresql_17
sd
sops
@@ -40,7 +43,6 @@ with pkgs;
tree-sitter
unzip
vivid
ov
zip
]
++ lib.optionals stdenv.isDarwin [
@@ -53,6 +55,7 @@ with pkgs;
]
++ lib.optionals stdenv.isLinux [
gcc15
lm_sensors
ghostty.terminfo
lm_sensors
sonoscli
]

View File

@@ -0,0 +1,35 @@
{
"data": "ENC[AES256_GCM,data:l7jYCSQE0BwYOoIMHgGOmMrWz5s=,iv:4TugFnfmzoeroq6SfRLD36gSSBHGVT6CxQE4Pyp1Ibc=,tag:HOTLlXGab05u+qREtyxAeg==,type:str]",
"sops": {
"age": [
{
"recipient": "age1njjegjjdqzfnrr54f536yl4lduqgna3wuv7ef6vtl9jw5cju0grsgy62tm",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFTmVlZmxIMGFBbE1RYkNN\nbTh1NG5BK1JCTlZ1MzBtSS9NRXRVM3phN3lrCm9qSlpEQjFGZTBsME9ndXhYdHZv\ncW1oek5hU1pjQXhzT0cvTks3VEozdHcKLS0tIG1TUWJKSE1KRVlXMVdydjBhY1ZS\nWXRhNFA2aHZTT2pud0ZXOFpjVldKYjgKYyH7k0BW/sf3vDQLPaZoB2VHoyKmCkWy\nwTolEp4vkuzZld4KPdDW4jYL8kt8Fwa8TNlPKMUOvY0gt82pbJ1MAA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age187jl7e4k9n4guygkmpuqzeh0wenefwrfkpvuyhvwjrjwxqpzassqq3x67j",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5Y2ZpWlhXUll4WUxheENj\nRjlwK2dJUjBOU1lhV1dKWFhiMlJiQ0Q2Q0VrCnJac0ppdm9URW14TUwrVUdwN2x4\ncUgxSGRTM09ORUk0VXhUcVBxS1Z2a0EKLS0tIGhOSmc2L3FKOXdqdG5Da210aXF4\nZ2h0dW45K2dlZGJQMmxneE1IbXMvWmsKkBfh09E6o2uvNegq5pZgUBWOYjREDDyg\nHEgV7G4cWJBPpBFwS1gLGyRZ0TWrmoXCqF8I22BMG6tq94AGrKqFzg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1dqt3znmzcgghsjjzzax0pf0eyu95h0p7kaf5v988ysjv7fl7lumsatl048",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCc1B0Ylo5K1poUXpkcFZk\neGJSQmNBVU00RTdLcTNBRUN2N3cySFE0cUdVCjNmZlpGM0VUOWdvbVQ3U1BoRWJ1\na3kwK3JxQ0IrZ0NUaW5sTmZlWmd4MncKLS0tIHozZ29UbTNPZDBjTUl3WlB2YmFs\nS0IrN3lLK2YyM0ROTERtQlppbjVOdWMKtpLveHYL4RfEpCBLt4c4R/NVg1QF+if1\nz26bWNQseIsPtlIk4GImJZhUhbr3sDY81gcl7sd8XGpze7EAVM262g==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1ez6j3r5wdp0tjy7n5qzv5vfakdc2nh2zeu388zu7a80l0thv052syxq5e2",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBySmdCaVRYV2RjOFR4dFVx\nYmd1VlRzQmUwR1RwcTNJdTlxQnFFZXVscnlFCnRVOWQwa3VVUUlHQTF0WHBXb0FL\nMEViVXVDeWJLZnBLdWlUZTZFQVFqYlUKLS0tIHBGdXdPM2tOdzR0Qm5UT2F6dnNF\nTytWcXNYMEJSTU8xOExMK1MwQUNhdk0KVBbrhhwh+Yup+CW3Y+q9RoQ3XFjBfTLb\nzDbCZBhNx9HP7Q8mlndYPkJc3aGfpKxHpaniBLqzDKNKJ5OE4kzY3Q==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1tlymdmaukhwupzrhszspp26lgd8s64rw4vu9lwc7gsgrjm78095s9fe9l3",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtVnl0ckE1REtQbW8ybEtF\nWG1VNkFtMUVlNk04SnIySVFvM2pkV1dTMTNNCkV6R2NzQzM4WXRIdzJrVEo4L2FX\nQ1dmV2YwNHdMMVJUNmZWRktvK2s1dUUKLS0tIE5nUXNack5meUFzcWxhOTNGLzdG\naGlVYURRK2hLK0lNNm4wYTUrdXptLzAKZgN1tY1G3Jso1+CT0LQQ4I49CgdCECpe\n1wRdgaWI8P4ep2S7QO3Vu+MuoyOgVgGJdG/HzsEAAqJ0XMSBWpeFXg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1h537hhl5qgew5sswjp7xf7d4j4aq0gg9s5flnr8twm2smnqyudhqmum8uy",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3YnVBeGl5akg2b3BidW5m\nMjBnWWxReTFoNTBYVm83ZkhtSHUvTmtNSGxzCk5XcmVJZ0hpRURIT09teHFzOURt\nK25JSFJCNU5mb2k4ZHBTU0Q0emFtYWMKLS0tIEtqMlFNckZmQk15Z0xoT1BrUWgv\nN0VJT1RjOG1ZOVU1UklKTm5TUEhLQmsKP03juyke7ZmLGx+BHE596d18TWVLFuUV\nP1pK0QlwtRL0l/6r7l4hXN9gJ8JU+zO5NTcLtvvHdSL188q3TX//UQ==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2026-01-07T19:19:41Z",
"mac": "ENC[AES256_GCM,data:SnMD9+jpySE35ylbHInXfsIQ/Nq6FBpunlhgJSOnYCQLE9vGc5Rtkg8cYlqFBz82Ukjk2EJafKcjDgBgTx6+JcYC8idM7yCpqyJaTx9p0nr6+p46ozqrL8lm4qF+yJRK997RjfRStLE2JsLN0SRSBFTDL0yPB6mFc/BncywVVZ0=,iv:fJ0kpgysw8eHbIIrtdyUXwWYvHyOa6kJ1wW+6NvBTxY=,tag:cqyY6qmEa0HF6u61v9VZJw==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.11.0"
}
}