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: { 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; }; defaultApp = lib.flake-utils-plus.mkApp { drv = channels.nixpkgs.home-manager; };
}; };

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -101,6 +101,7 @@ in
uid = 1000; uid = 1000;
extraGroups = [ "wheel" ] ++ cfg.extraGroups; 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; # inherit (channels.nixpkgs.nixsgx) sgx-psw;
} }

View file

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

View file

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

View file

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

View file

@ -13,7 +13,9 @@ let
inherit (lib) mapAttrsToList concatStringsSep; inherit (lib) mapAttrsToList concatStringsSep;
inherit (lib.metacfg) override-meta; 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" '' hosts-csv = writeText "hosts.csv" ''
Name,System Name,System

View file

@ -23,7 +23,10 @@ rustPlatform.buildRustPackage rec {
doCheck = false; doCheck = false;
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl sqlite ]; buildInputs = [
openssl
sqlite
];
meta = with lib; { meta = with lib; {
description = "Lightweight autonomous AI assistant infrastructure built in Rust"; 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 # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: {
config,
lib,
pkgs,
modulesPath,
...
}:
{ {
imports = [ ]; 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.initrd.kernelModules = [ ];
boot.kernelModules = [ ]; boot.kernelModules = [ ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/069a5103-100e-4ff0-9f25-58df709cfd4e"; device = "/dev/disk/by-uuid/069a5103-100e-4ff0-9f25-58df709cfd4e";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/8C85-EB75"; device = "/dev/disk/by-uuid/8C85-EB75";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ]; options = [
"fmask=0077"
"dmask=0077"
];
}; };
swapDevices = swapDevices = [
[ { device = "/dev/disk/by-uuid/08bbaeb8-8610-4592-9393-938c45ec4d19"; } { device = "/dev/disk/by-uuid/08bbaeb8-8610-4592-9393-938c45ec4d19"; }
]; ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # 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 # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: {
config,
lib,
pkgs,
modulesPath,
...
}:
{ {
imports = [ ]; 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.initrd.kernelModules = [ ];
boot.kernelModules = [ ]; boot.kernelModules = [ ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/3d6d27a9-1840-45cb-8f6f-88958f8e2f4d"; device = "/dev/disk/by-uuid/3d6d27a9-1840-45cb-8f6f-88958f8e2f4d";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/0313-3BFB"; device = "/dev/disk/by-uuid/0313-3BFB";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ]; options = [
"fmask=0077"
"dmask=0077"
];
}; };
swapDevices = swapDevices = [
[ { device = "/dev/disk/by-uuid/4bfc9e4e-0878-4fd3-878f-950fb4ba6ae8"; } { device = "/dev/disk/by-uuid/4bfc9e4e-0878-4fd3-878f-950fb4ba6ae8"; }
]; ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking

View file

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

View file

@ -1,22 +1,30 @@
{ config, lib, pkgs, ... }: {
config,
lib,
pkgs,
...
}:
with lib; with lib;
let let
cfg = config.services.nextcloud-claude-bot; cfg = config.services.nextcloud-claude-bot;
pythonEnv = pkgs.python3.withPackages (ps: with ps; [ pythonEnv = pkgs.python3.withPackages (
ps: with ps; [
fastapi fastapi
uvicorn uvicorn
httpx httpx
]); ]
);
botModule = pkgs.runCommand "nextcloud-claude-bot-module" { } '' botModule = pkgs.runCommand "nextcloud-claude-bot-module" { } ''
mkdir -p $out mkdir -p $out
cp ${./bot.py} $out/nextcloud_claude_bot.py cp ${./bot.py} $out/nextcloud_claude_bot.py
''; '';
in { in
{
options.services.nextcloud-claude-bot = { options.services.nextcloud-claude-bot = {
enable = mkEnableOption "Nextcloud Talk Claude Bot"; enable = mkEnableOption "Nextcloud Talk Claude Bot";
@ -52,7 +60,10 @@ in {
allowedUsers = mkOption { allowedUsers = mkOption {
type = types.listOf types.str; type = types.listOf types.str;
default = [ ]; default = [ ];
example = [ "harald" "admin" ]; example = [
"harald"
"admin"
];
description = "Nextcloud usernames allowed to talk to the bot (empty = all)"; description = "Nextcloud usernames allowed to talk to the bot (empty = all)";
}; };

View file

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