Author SHA1 Message Date
Armel van Ravels c9c4feffa8 Disable ai-usage providers via nix 2026-10-12 16:07:46 +02:00
Armel van Ravels eb806610b5 Add photocraft 2026-10-12 10:26:14 +02:00
Armel van Ravels f5f6177f88 Move ai-usage to module 2026-10-12 09:38:25 +02:00
armel e4408441b2 Use https for flake 2026-10-09 20:52:49 +02:00
Armel van Ravels 01d3112e94 Add ai usage 2026-10-09 15:50:48 +02:00
Armel van Ravels 520aadb924 Drop specialisation and devenv update and flake update 2026-10-06 09:14:56 +02:00
armel 376e328568 nix flake update 2026-09-29 20:47:02 +02:00
armel 53f1e37dcd add openrct2 jazz2 and opencode 2026-09-29 16:05:27 +02:00
Armel van Ravels 37dbf7d436 nix flake update 2026-09-24 10:49:33 +02:00
Armel van Ravels 49fafdb0c5 Add git churn 2026-09-22 16:35:33 +02:00
Armel van Ravels ca169d825b Add cursor CLI to work machine 2026-09-15 09:05:56 +02:00
armel 816daf4a62 nix flake pdate and drop mtp fix as we finally have libmtp 1.1.23 2026-09-14 22:54:33 +02:00
Armel van Ravels fc74a03ff9 devenv update 2026-09-14 09:20:38 +02:00
Armel van Ravels efd4918fd1 nix flake update 2026-09-14 09:19:04 +02:00
Armel van Ravels 6a7a0ed55a Add cursor cli 2026-09-14 09:15:30 +02:00
armel 2a5149308d Merge pull request 'Pin Linux Kernel for gandalf to 7.1' (#19) from chore/gandalf-pin-linux-kernel into master
Reviewed-on: #19
2026-09-08 23:17:19 +02:00
armel 81bfbb0a33 Pin Linux Kernel for gandalf to 7.1 2026-09-08 23:15:16 +02:00
Armel van Ravels 0266dd19d8 nix flake update and vscode changes 2026-09-07 10:53:04 +02:00
Armel van Ravels 4668a566ae add dev container 2026-09-03 08:44:13 +02:00
Armel van Ravels f81a746ccc devenv update 2026-08-21 16:40:30 +02:00
Armel van Ravels c66e751738 nix flake update 2026-08-21 09:17:12 +02:00
Armel van Ravels 6c1074e3fd devenv update 2026-08-13 09:26:43 +02:00
armel 63360dd275 nix flake update 2026-08-13 08:18:03 +02:00
Armel van Ravels c8c49bb238 Add bubblewrap and socat 2026-08-11 14:11:21 +02:00
Armel van Ravels b4ef190034 Add vscode laravel 2026-08-10 08:56:17 +02:00
Armel van Ravels 010031b3d8 Add phpunit in vscode 2026-07-30 10:24:07 +02:00
Armel van Ravels a1b6ccec7d Intelephense for php 2026-07-29 10:10:10 +02:00
armel 5bfee98cc8 Add direnv 2026-07-24 09:54:37 +02:00
23 changed files with 277 additions and 111 deletions

No files matched your search

+15
View File
@@ -0,0 +1,15 @@
{
"customizations": {
"vscode": {
"extensions": [
"mkhl.direnv"
]
},
"zed": {
"extensions": []
}
},
"image": "ghcr.io/cachix/devenv/devcontainer:latest",
"overrideCommand": false,
"updateContentCommand": "devenv test"
}
+7
View File
@@ -0,0 +1,7 @@
#!/usr/bin/env bash
eval "$(devenv direnvrc)"
# You can pass flags to the devenv command
# For example: use devenv --impure --option services.postgres.enable:bool true
use devenv
+15 -37
View File
@@ -3,11 +3,11 @@
"devenv": {
"locked": {
"dir": "src/modules",
"lastModified": 1781800860,
"narHash": "sha256-LrEo0eC5ckMvjpBRCuk5q5/vjItKlxnb4n/clHNRZlk=",
"lastModified": 1790701375,
"narHash": "sha256-0FpLHIRDYiyo3EMTnMQSobZQknZaa3JuWo6vmMCK76o=",
"owner": "cachix",
"repo": "devenv",
"rev": "d59d872d80876d9eeb3e214d3b088bc4a14a9c4f",
"rev": "fe20b5cba7ab5e93ae73f956a8d3efc50e1753f4",
"type": "github"
},
"original": {
@@ -36,17 +36,16 @@
"git-hooks": {
"inputs": {
"flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1781733627,
"narHash": "sha256-U3yTuGBnmXvXoQI3qkpfEDsn9RovQPAjN7ndRco+3u0=",
"lastModified": 1790500375,
"narHash": "sha256-XN3sDtn8TU9hAc9xqZ+SqRB/HHm2wjxM6aSWYLJU+oo=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "3bbec39bc90eadfa031e6f3b77272f3f60803e39",
"rev": "a0e4241b51206fbcbf52fd322eb5f0cd80f153c4",
"type": "github"
},
"original": {
@@ -55,37 +54,16 @@
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"nixpkgs": {
"inputs": {
"nixpkgs-src": "nixpkgs-src"
},
"locked": {
"lastModified": 1781620901,
"narHash": "sha256-UF6scQlG+6lRkZBUpn/3KNavhOo5G8kDWhjVHcno8uc=",
"lastModified": 1789506231,
"narHash": "sha256-vNkJbtmqyBfFhn/HnzQo4ROuoyYWuy/allqTfJb4kMY=",
"owner": "cachix",
"repo": "devenv-nixpkgs",
"rev": "2df109b343d3c68efd752e32a444a1d9b9f89afa",
"rev": "c2f38fe7f9e04d9aadd354d380f2bd40531d9737",
"type": "github"
},
"original": {
@@ -98,11 +76,11 @@
"nixpkgs-src": {
"flake": false,
"locked": {
"lastModified": 1781454065,
"narHash": "sha256-d2xfDjnfRuf/xYGdu9VVRHiav/2w5hDL/5cw2TuVAXw=",
"lastModified": 1789370336,
"narHash": "sha256-6RSEDHIWQtesQKWSu5qRai8L2h4KgCgMEfJHstW99G4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9eac87a12312b8f60dd52e1c6e1a265f6fc7f5fc",
"rev": "c7def046b9a883d46974757852106483d741586f",
"type": "github"
},
"original": {
@@ -127,11 +105,11 @@
]
},
"locked": {
"lastModified": 1780220602,
"narHash": "sha256-eynAfOmbmxJnkp7YewvCEbShNnnYJ9gLLqkzsYtBPeM=",
"lastModified": 1791203292,
"narHash": "sha256-vuzVwvjeucSnwKwMBpyP8r5IzdrMKCHEdwTrRFwUN7I=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "db947814a175b7ca6ded66e21383d938df01c227",
"rev": "03d8ee1bcbc8f9638907bb79edb9673151d0e22b",
"type": "github"
},
"original": {
+2
View File
@@ -5,6 +5,8 @@
}:
{
devcontainer.enable = true;
treefmt.enable = true;
treefmt.config.programs.nixpkgs-fmt.enable = true;
Generated
+33 -12
View File
@@ -1,5 +1,25 @@
{
"nodes": {
"ai-usage": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1791803006,
"narHash": "sha256-WAT3CE/2SxaAIVg4rnwcAq/WZSoAKAHUc5GzsTvCgbE=",
"ref": "refs/heads/master",
"rev": "c312d83c7a7225fb7b3df53c3e2966a8921d0a69",
"revCount": 2,
"type": "git",
"url": "https://git.een.ninja/armel/ai-usage.git"
},
"original": {
"type": "git",
"url": "https://git.een.ninja/armel/ai-usage.git"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@@ -7,11 +27,11 @@
]
},
"locked": {
"lastModified": 1784350909,
"narHash": "sha256-ZWyzLbS1yKUTeFJLmdVuWNnHttL333/ldJbEE+KzCrM=",
"lastModified": 1790996401,
"narHash": "sha256-f+kOxEmOUnQazVAmGg0i8hzwgd1kX/geY+k/Dpheye8=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "4ce190229c73d44536caa7072f6308fb2d8feeb3",
"rev": "db7d5e2332710f5abb088f6b5de927d7f9511b35",
"type": "github"
},
"original": {
@@ -23,11 +43,11 @@
},
"nix-flatpak": {
"locked": {
"lastModified": 1783368811,
"narHash": "sha256-0H8jDwR4Kegb3heaTrH1ftbgKfZVDT8JE+46uXxDy/Q=",
"lastModified": 1791644268,
"narHash": "sha256-f7Z4PmfnRxf7+37NN48ep+KsQauGtL5REE99pJtMNp8=",
"owner": "gmodena",
"repo": "nix-flatpak",
"rev": "20d42f0ee98c9fe9f85e8d1de474f1409ed10d05",
"rev": "02656785ab214fa1c9655f1beaaf0269eeeec2ca",
"type": "github"
},
"original": {
@@ -38,11 +58,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1784432872,
"narHash": "sha256-n3gKTBIV4ZA5VQpUakffBe3KGu4+mhPoA34rrqS0GkA=",
"lastModified": 1791662279,
"narHash": "sha256-xI8L+UwJLIg75yVJwLPsY+AUEP1teCT3FyuvodyJu2Y=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "fd1462031fdee08f65fd0b4c6b64e22239a77870",
"rev": "6fcc160353f63555b560f25588925133c8f61f2a",
"type": "github"
},
"original": {
@@ -54,11 +74,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1784555310,
"narHash": "sha256-/FCliTPgiuV1owejZFNx3Ch9irdvkOfOFl+HHZ+DrtM=",
"lastModified": 1791487292,
"narHash": "sha256-tqM7xDEsaeK1p6VvRygeZ9LkQRpUUkbRT02BHv6hnTM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "421eebfd0ec7bccd4abe826ce62d7e6e83129493",
"rev": "8edc0c72e3a38faf5434e40d1f19431125fe4b30",
"type": "github"
},
"original": {
@@ -70,6 +90,7 @@
},
"root": {
"inputs": {
"ai-usage": "ai-usage",
"home-manager": "home-manager",
"nix-flatpak": "nix-flatpak",
"nixpkgs": "nixpkgs",
+5
View File
@@ -19,6 +19,11 @@
url = "github:gmodena/nix-flatpak";
inputs.nixpkgs.follows = "nixpkgs";
};
ai-usage = {
url = "git+https://git.een.ninja/armel/ai-usage.git";
inputs.nixpkgs.follows = "nixpkgs";
};
};
# This strange syntax is a workaround for the intentional limitations of `flake.nix` files.
+8 -4
View File
@@ -17,7 +17,7 @@
../../modules/matrix.nix
../../modules/kdenlive.nix
../../modules/audacity.nix
../../modules/ollama.nix
#../../modules/ollama.nix
../../modules/wireguard.nix
../../modules/qbittorrent.nix
../../modules/gimp.nix
@@ -31,10 +31,14 @@
../../modules/discord.nix
../../modules/lazygit.nix
../../modules/yazi.nix
./mtp-fix.nix
../../modules/cursor-cli.nix
../../modules/openrct2.nix
../../modules/jazz2.nix
../../modules/opencode.nix
../../modules/git-churn.nix
];
boot.kernelPackages = pkgs.linuxPackages_latest;
# boot.kernelPackages = pkgs.linuxPackages_7_2;
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
@@ -42,7 +46,7 @@
networking.hostName = "gandalf";
networking.networkmanager.enable = true;
networking.nameservers = [
"192.168.68.56"
# "192.168.68.56"
"1.1.1.1"
"8.8.8.8"
];
-30
View File
@@ -1,30 +0,0 @@
{ pkgs, ... }:
{
nixpkgs.overlays = [
(
final: prev:
let
targetVersion = "1.1.23";
in
{
libmtp =
if builtins.compareVersions prev.libmtp.version targetVersion >= 0 then
prev.libmtp
else
prev.libmtp.overrideAttrs (_: {
version = targetVersion;
src = final.fetchFromGitHub {
owner = "libmtp";
repo = "libmtp";
rev = "v${targetVersion}";
hash = "sha256-FlPj9PEeOAWabU11dFTzDgY9TBbgmJclbeL0iULYw6A=";
};
patches = [ ];
});
}
)
];
}
+8 -23
View File
@@ -1,4 +1,4 @@
{ config, pkgs, ... }:
{ config, home-manager, pkgs, ... }:
{
imports = [
@@ -27,6 +27,12 @@
../../modules/vlc.nix
../../modules/lazygit.nix
../../modules/yazi.nix
../../modules/bubblewrap.nix
../../modules/socat.nix
../../modules/cursor-cli.nix
../../modules/git-churn.nix
../../modules/ai-usage.nix
../../modules/photocraft.nix
];
boot.kernelPackages = pkgs.linuxPackages_latest;
@@ -58,28 +64,6 @@
virtualisation.libvirtd.enable = true;
specialisation = {
"top floor".configuration = {
home-manager.users.avravels.home.hyprland.monitors = [
{
output = "DP-3";
mode = "2560x1440";
position = "0x0";
}
{
output = "DP-1";
mode = "2560x1440";
position = "2560x0";
}
{
output = "eDP-1";
mode = "1920x1200";
position = "5120x0";
}
];
};
};
networking.hosts = {
"127.0.0.1" = [
"local.wormundco.de"
@@ -90,5 +74,6 @@
"149.210.174.226" = [ "kindertelefoon" ];
};
system.stateVersion = "25.11"; # Did you read the comment?
}
+15
View File
@@ -0,0 +1,15 @@
{ pkgs, ai-usage, home-manager, ... }:
{
home-manager.users.avravels = {
imports = [ ai-usage.homeManagerModules.default ];
programs.ai-usage = {
enable = true;
providers.cursor.enable = true;
providers.codex.enable = false;
providers.claude.enable = false;
package = ai-usage.packages.${pkgs.stdenv.hostPlatform.system}.default;
};
};
}
+8
View File
@@ -0,0 +1,8 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
bubblewrap
];
}
+8
View File
@@ -0,0 +1,8 @@
{ config, pkgsUnstable, ... }:
{
environment.systemPackages = with pkgsUnstable; [
cursor-cli
];
}
+23
View File
@@ -0,0 +1,23 @@
{ pkgs, ... }:
{
environment.systemPackages = [
(pkgs.writeShellApplication {
name = "git-churn";
runtimeInputs = with pkgs; [
git
coreutils
gnugrep
];
text = ''
git log -M -C --name-only --format='format:' "$@" |
sort |
grep -v '^$' |
uniq -c |
sort -n
'';
})
];
}
+2 -2
View File
@@ -1,11 +1,11 @@
{ pkgs, pkgsUnstable, ... }:
{ pkgs, ai-usage, pkgsUnstable, ... }:
{
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = {
inherit pkgsUnstable;
inherit pkgsUnstable ai-usage;
};
users.avravels = import home/home.nix;
+1
View File
@@ -10,6 +10,7 @@
extraPackages = [
pkgs.ueberzugpp
pkgs.imagemagick
pkgs.intelephense
];
plugins = with pkgs.vimPlugins; [
+41 -2
View File
@@ -8,21 +8,60 @@ let
mkhl.direnv
catppuccin.catppuccin-vsc
bmewburn.vscode-intelephense-client
continue.continue
vue.volar
ms-vscode-remote.remote-containers
(pkgs.vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "ryanluker";
name = "vscode-coverage-gutters";
version = "2.14.0"; # use the current version
sha256 = "sha256-waF3FmncUsXqWFWGRy9X7RQ29BDRYlaqyFhEXg4HXNo";
};
})
(pkgs.vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "laravel";
name = "vscode-laravel";
version = "1.7.0"; # use the current version
sha256 = "sha256-5PVbv5hWIdsOHvYttnf2BPeqfPXsOVENrnRyiUf/Hlg=";
};
})
(pkgs.vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "amiralizadeh9480";
name = "laravel-extra-intellisense";
version = "0.7.4"; # use the current version
sha256 = "sha256-EoyKm2YYfEZDmI1mqRU/SaNk0bNLPrWVINpIhglnL80=";
};
})
(pkgs.vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "recca0120";
name = "vscode-phpunit";
version = "3.9.40"; # use the current version
sha256 = "sha256-EVyDT5aXu1KsGr8xrBQlIRCMOtiCyHgU7aDjl9d9ldY=";
};
})
];
userSettings = {
"editor.lineNumbers" = "relative";
"workbench.colorTheme" = "Catppuccin Mocha";
"workbench.editor.enablePreview" = false;
"workbench.activityBar.orientation" = "vertical";
"direnv.restart.automatic" = true;
"terminal.integrated.defaultProfile.linux" = "zsh";
"terminal.integrated.profiles.linux".zsh = {
path = "${pkgs.zsh}/bin/zsh";
};
# PHPUnit
"phpunit.command" =
"docker compose exec laravel.test \${php} \${phpargs} \${phpunit} \${phpunitargs}";
"phpunit.phpunit" = "artisan test";
"phpunit.paths" = {
"\${workspaceFolder}" = "/var/www/html";
};
"LaravelExtraIntellisense.basePathForCode" = "/var/www/html";
};
editors = {
+8
View File
@@ -0,0 +1,8 @@
{ pkgsUnstable, ... }:
{
environment.systemPackages = with pkgsUnstable; [
jazz2
];
}
+8
View File
@@ -0,0 +1,8 @@
{ pkgsUnstable, ... }:
{
environment.systemPackages = with pkgsUnstable; [
opencode
];
}
+8
View File
@@ -0,0 +1,8 @@
{ pkgsUnstable, ... }:
{
environment.systemPackages = with pkgsUnstable; [
openrct2
];
}
+7
View File
@@ -0,0 +1,7 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
(pkgs.callPackage ../packages/photocraft.nix { })
];
}
+8
View File
@@ -0,0 +1,8 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
socat
];
}
+2 -1
View File
@@ -2,6 +2,7 @@
, nixpkgs-unstable
, home-manager
, nix-flatpak
, ai-usage
, ...
}:
@@ -19,7 +20,7 @@ let
inherit system;
specialArgs = {
inherit pkgsUnstable;
inherit pkgsUnstable ai-usage;
nixFlatpak = nix-flatpak;
};
+45
View File
@@ -0,0 +1,45 @@
{ lib
, appimageTools
, fetchurl
,
}:
let
pname = "photocraft";
version = "0.7.0";
src = fetchurl {
url = "https://github.com/storytold/photocraft/releases/download/v${version}/photocraft-${version}-linux-x86_64.AppImage";
hash = "sha256-h+vONrzfazHRapyiLOKfmtjbaBheTZgRiADRwt54rEI=";
};
in
appimageTools.wrapType2 {
inherit pname version src;
extraInstallCommands = ''
install -Dm644 ${src} $out/share/${pname}/source.AppImage
mkdir -p $out/share/applications
cat > $out/share/applications/${pname}.desktop <<EOF
[Desktop Entry]
Name=PhotoCraft
Comment=Open-source image editor
Exec=${pname} %F
Terminal=false
Type=Application
Categories=Graphics;RasterGraphics;
StartupNotify=true
EOF
'';
meta = {
description = "Open-source image editor";
homepage = "https://github.com/storytold/photocraft";
downloadPage = "https://github.com/storytold/photocraft/releases";
license = lib.licenses.mit;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
platforms = [ "x86_64-linux" ];
mainProgram = "photocraft";
};
}