This commit is contained in:
Harald Hoyer 2026-02-24 13:25:42 +01:00
parent 27343e49bd
commit 04150f10d4
32 changed files with 475 additions and 404 deletions

View file

@ -125,7 +125,7 @@
];
outputs-builder = channels: {
formatter = channels.nixpkgs.nixfmt-rfc-style;
formatter = channels.nixpkgs.nixfmt-tree;
defaultApp = lib.flake-utils-plus.mkApp { drv = channels.nixpkgs.home-manager; };
};

View file

@ -1,6 +1,7 @@
{ pkgs
, config
, ...
{
pkgs,
config,
...
}:
{
home = {
@ -48,7 +49,10 @@
selection.save_to_clipboard = true;
mouse.bindings = [
{ mouse = "Middle"; action = "Paste"; }
{
mouse = "Middle";
action = "Paste";
}
];
# Color theme ported from iTerm 2 Smoooooth

View file

@ -1,5 +1,6 @@
{ config
, ...
{
config,
...
}:
{
home = {

View file

@ -1,7 +1,8 @@
{ lib
, pkgs
, config
, ...
{
lib,
pkgs,
config,
...
}:
{
home.sessionPath = [ "$HOME/bin" ];

View file

@ -1,5 +1,6 @@
{ config
, ...
{
config,
...
}:
{
home = {

View file

@ -89,11 +89,13 @@ rec {
];
"capture.props" = {
"node.target" = from;
} // (args."capture.props" or { });
}
// (args."capture.props" or { });
"playback.props" = {
"node.target" = to;
"monitor.channel-volumes" = true;
} // (args."playback.props" or { });
}
// (args."playback.props" or { });
};
};
}

View file

@ -1,7 +1,8 @@
{ config
, lib
, pkgs
, ...
{
config,
lib,
pkgs,
...
}:
with lib;
with lib.metacfg;

View file

@ -1,8 +1,9 @@
{ options
, config
, pkgs
, lib
, ...
{
options,
config,
pkgs,
lib,
...
}:
with lib;
@ -23,8 +24,7 @@ in
};
fonts = {
packages =
[
packages = [
pkgs.nerd-fonts.hack
pkgs.nerd-fonts.fira-code
pkgs.nerd-fonts.droid-sans-mono

View file

@ -1,7 +1,8 @@
{ lib
, config
, pkgs
, ...
{
lib,
config,
pkgs,
...
}:
let
inherit (lib) mkEnableOption mkIf;

View file

@ -1,6 +1,7 @@
{ lib
, config
, ...
{
lib,
config,
...
}:
with lib;
with lib.metacfg;

View file

@ -1,7 +1,8 @@
{ lib
, config
, pkgs
, ...
{
lib,
config,
pkgs,
...
}:
let

View file

@ -1,7 +1,8 @@
{ lib
, config
, pkgs
, ...
{
lib,
config,
pkgs,
...
}:
let
inherit (lib) mkEnableOption mkIf;

View file

@ -1,8 +1,9 @@
{ options
, config
, lib
, pkgs
, ...
{
options,
config,
lib,
pkgs,
...
}:
with lib;

View file

@ -1,7 +1,8 @@
{ config
, lib
, pkgs
, ...
{
config,
lib,
pkgs,
...
}:
with lib;
with lib.metacfg;

View file

@ -1,6 +1,7 @@
{ config
, lib
, ...
{
config,
lib,
...
}:
with lib;
with lib.metacfg;

View file

@ -101,6 +101,7 @@ in
uid = 1000;
extraGroups = [ "wheel" ] ++ cfg.extraGroups;
} // cfg.extraOptions;
}
// cfg.extraOptions;
};
}

View file

@ -1,3 +1,4 @@
{ channels, ... }: final: prev: {
{ channels, ... }:
final: prev: {
# inherit (channels.nixpkgs.nixsgx) sgx-psw;
}

View file

@ -1,14 +1,15 @@
{ lib
, stdenv
, python312
, fetchFromGitHub
, fetchurl
, pkg-config
, gitMinimal
, portaudio
, playwright-driver
, pkgs
, tree-sitter-grammars
{
lib,
stdenv,
python312,
fetchFromGitHub,
fetchurl,
pkg-config,
gitMinimal,
portaudio,
playwright-driver,
pkgs,
tree-sitter-grammars,
}:
let
@ -32,14 +33,20 @@ let
typing-extensions
];
nativeBuildInputs = with pkgs; with pkgs.tree-sitter-grammars; [
nativeBuildInputs =
with pkgs;
with pkgs.tree-sitter-grammars;
[
tree-sitter
tree-sitter-c-sharp
tree-sitter-embedded-template
tree-sitter-yaml
];
propagatedBuildInputs = with python312.pkgs; with pkgs.tree-sitter-grammars; [
propagatedBuildInputs =
with python312.pkgs;
with pkgs.tree-sitter-grammars;
[
tree-sitter
tree-sitter-c-sharp
tree-sitter-embedded-template
@ -183,8 +190,7 @@ let
"tests/help/test_help.py"
];
disabledTests =
[
disabledTests = [
# Tests require network
"test_urls"
"test_get_commit_message_with_custom_prompt"
@ -228,10 +234,11 @@ let
passthru = {
withPlaywright = aider-chat.overridePythonAttrs (
{ dependencies
, makeWrapperArgs
, propagatedBuildInputs ? [ ]
, ...
{
dependencies,
makeWrapperArgs,
propagatedBuildInputs ? [ ],
...
}:
{
dependencies = dependencies ++ aider-chat.optional-dependencies.playwright;

View file

@ -1,15 +1,15 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchurl
, rustPlatform
, dbus
, xorg
, pkg-config
, writableTmpDirAsHomeHook
, nix-update-script
, llvmPackages
,
{
lib,
stdenv,
fetchFromGitHub,
fetchurl,
rustPlatform,
dbus,
xorg,
pkg-config,
writableTmpDirAsHomeHook,
nix-update-script,
llvmPackages,
}:
let
version = "1.0.20";
@ -55,8 +55,7 @@ rustPlatform.buildRustPackage rec {
__darwinAllowLocalNetworking = true;
checkFlags =
[
checkFlags = [
# need dbus-daemon
"--skip=config::base::tests::test_multiple_secrets"
"--skip=config::base::tests::test_secret_management"

View file

@ -1,7 +1,7 @@
{ lib
, vscode-utils
, vscode-extensions-update-script
,
{
lib,
vscode-utils,
vscode-extensions-update-script,
}:
vscode-utils.buildVscodeMarketplaceExtension {

View file

@ -13,7 +13,9 @@ let
inherit (lib) mapAttrsToList concatStringsSep;
inherit (lib.metacfg) override-meta;
formatted-hosts = mapAttrsToList (name: host: "${name},${host.pkgs.stdenv.hostPlatform.system}") hosts;
formatted-hosts = mapAttrsToList (
name: host: "${name},${host.pkgs.stdenv.hostPlatform.system}"
) hosts;
hosts-csv = writeText "hosts.csv" ''
Name,System

View file

@ -23,7 +23,10 @@ rustPlatform.buildRustPackage rec {
doCheck = false;
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl sqlite ];
buildInputs = [
openssl
sqlite
];
meta = with lib; {
description = "Lightweight autonomous AI assistant infrastructure built in Rust";

View file

@ -1,29 +1,43 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
config,
lib,
pkgs,
modulesPath,
...
}:
{
imports = [ ];
boot.initrd.availableKernelModules = [ "virtio_pci" "xhci_pci" "usbhid" "usb_storage" ];
boot.initrd.availableKernelModules = [
"virtio_pci"
"xhci_pci"
"usbhid"
"usb_storage"
];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/069a5103-100e-4ff0-9f25-58df709cfd4e";
fileSystems."/" = {
device = "/dev/disk/by-uuid/069a5103-100e-4ff0-9f25-58df709cfd4e";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/8C85-EB75";
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/8C85-EB75";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
options = [
"fmask=0077"
"dmask=0077"
];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/08bbaeb8-8610-4592-9393-938c45ec4d19"; }
swapDevices = [
{ device = "/dev/disk/by-uuid/08bbaeb8-8610-4592-9393-938c45ec4d19"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking

View file

@ -1,29 +1,43 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
config,
lib,
pkgs,
modulesPath,
...
}:
{
imports = [ ];
boot.initrd.availableKernelModules = [ "virtio_pci" "xhci_pci" "usbhid" "usb_storage" ];
boot.initrd.availableKernelModules = [
"virtio_pci"
"xhci_pci"
"usbhid"
"usb_storage"
];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/3d6d27a9-1840-45cb-8f6f-88958f8e2f4d";
fileSystems."/" = {
device = "/dev/disk/by-uuid/3d6d27a9-1840-45cb-8f6f-88958f8e2f4d";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/0313-3BFB";
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/0313-3BFB";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
options = [
"fmask=0077"
"dmask=0077"
];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/4bfc9e4e-0878-4fd3-878f-950fb4ba6ae8"; }
swapDevices = [
{ device = "/dev/disk/by-uuid/4bfc9e4e-0878-4fd3-878f-950fb4ba6ae8"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking

View file

@ -1,7 +1,8 @@
{ pkgs
, lib
, config
, ...
{
pkgs,
lib,
config,
...
}:
{
sops.secrets."coturn/static-auth-secret" = {

View file

@ -6,7 +6,7 @@
enable = true;
nextcloudUrl = "https://nc.hoyer.xyz";
botSecretFile = config.sops.secrets."nextcloud-claude-bot/secret".path;
allowedUsers = []; # Allow all registered users
allowedUsers = [ ]; # Allow all registered users
# Optional extra instructions (base prompt is hardcoded in bot.py)
# systemPrompt = "Additional custom instructions here";
};

View file

@ -1,22 +1,30 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
with lib;
let
cfg = config.services.nextcloud-claude-bot;
pythonEnv = pkgs.python3.withPackages (ps: with ps; [
pythonEnv = pkgs.python3.withPackages (
ps: with ps; [
fastapi
uvicorn
httpx
]);
]
);
botModule = pkgs.runCommand "nextcloud-claude-bot-module" {} ''
botModule = pkgs.runCommand "nextcloud-claude-bot-module" { } ''
mkdir -p $out
cp ${./bot.py} $out/nextcloud_claude_bot.py
'';
in {
in
{
options.services.nextcloud-claude-bot = {
enable = mkEnableOption "Nextcloud Talk Claude Bot";
@ -51,8 +59,11 @@ in {
allowedUsers = mkOption {
type = types.listOf types.str;
default = [];
example = [ "harald" "admin" ];
default = [ ];
example = [
"harald"
"admin"
];
description = "Nextcloud usernames allowed to talk to the bot (empty = all)";
};
@ -133,7 +144,7 @@ in {
home = "/var/lib/nextcloud-claude-bot";
};
users.groups.claude-bot = {};
users.groups.claude-bot = { };
# Nginx reverse proxy config (optional, if you want external access)
# services.nginx.virtualHosts."cloud.example.com".locations."/claude-bot/" = {

View file

@ -1,7 +1,8 @@
{ pkgs
, lib
, config
, ...
{
pkgs,
lib,
config,
...
}:
let
backup_new_path = "/mnt/raid/backup/hoyer/new/";