diff --git a/flake.lock b/flake.lock index 339d256..05504d6 100644 --- a/flake.lock +++ b/flake.lock @@ -21,6 +21,44 @@ "type": "github" } }, + "base16-schemes": { + "flake": false, + "locked": { + "lastModified": 1696158499, + "narHash": "sha256-5yIHgDTPjoX/3oDEfLSQ0eJZdFL1SaCfb9d6M0RmOTM=", + "owner": "tinted-theming", + "repo": "base16-schemes", + "rev": "a9112eaae86d9dd8ee6bb9445b664fba2f94037a", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-schemes", + "type": "github" + } + }, + "blueprint": { + "inputs": { + "nixpkgs": [ + "nix-ai-tools", + "nixpkgs" + ], + "systems": "systems_3" + }, + "locked": { + "lastModified": 1758687491, + "narHash": "sha256-sy8Q+MfBe+MZzYj4MJwBDe4lkLnmhy1POO86hWZgqO8=", + "owner": "numtide", + "repo": "blueprint", + "rev": "7ecaeb70f63d14a397c73b38f57177894bb795c8", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "blueprint", + "type": "github" + } + }, "darwin": { "inputs": { "nixpkgs": [ @@ -205,6 +243,45 @@ "type": "github" } }, + "nix-ai-tools": { + "inputs": { + "blueprint": "blueprint", + "nixpkgs": "nixpkgs_3", + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1759115451, + "narHash": "sha256-cjQAR33C5QLo0UIpzc5G0kJSU5nPFYxo2ZJQlusgyLQ=", + "owner": "numtide", + "repo": "nix-ai-tools", + "rev": "10c57241916bd4be938d0cf9b110849db88b972e", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "nix-ai-tools", + "type": "github" + } + }, + "nix-colors": { + "inputs": { + "base16-schemes": "base16-schemes", + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1707825078, + "narHash": "sha256-hTfge2J2W+42SZ7VHXkf4kjU+qzFqPeC9k66jAUBMHk=", + "owner": "misterio77", + "repo": "nix-colors", + "rev": "b01f024090d2c4fc3152cd0cf12027a7b8453ba1", + "type": "github" + }, + "original": { + "owner": "misterio77", + "repo": "nix-colors", + "type": "github" + } + }, "nix-vm-test": { "inputs": { "nixpkgs": [ @@ -236,7 +313,7 @@ "nixpkgs": [ "nixpkgs" ], - "treefmt-nix": "treefmt-nix" + "treefmt-nix": "treefmt-nix_2" }, "locked": { "lastModified": 1753176709, @@ -309,6 +386,21 @@ "type": "github" } }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1697935651, + "narHash": "sha256-qOfWjQ2JQSQL15KLh6D7xQhx0qgZlYZTYlcEiRuAMMw=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "e1e11fdbb01113d85c7f41cada9d2847660e3902", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, "nixpkgs-unstable": { "locked": { "lastModified": 1755615617, @@ -342,6 +434,22 @@ } }, "nixpkgs_3": { + "locked": { + "lastModified": 1758690382, + "narHash": "sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e643668fd71b949c53f8626614b21ff71a07379d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { "locked": { "lastModified": 1753115646, "narHash": "sha256-yLuz5cz5Z+sn8DRAfNkrd2Z1cV6DaYO9JMrEz4KZo/c=", @@ -364,8 +472,10 @@ "disko": "disko", "home-manager": "home-manager_2", "home-manager-unstable": "home-manager-unstable", + "nix-ai-tools": "nix-ai-tools", + "nix-colors": "nix-colors", "nixos-anywhere": "nixos-anywhere", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_4", "nixpkgs-unstable": "nixpkgs-unstable" } }, @@ -399,7 +509,43 @@ "type": "github" } }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "nix-ai-tools", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1758728421, + "narHash": "sha256-ySNJ008muQAds2JemiyrWYbwbG+V7S5wg3ZVKGHSFu8=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "5eda4ee8121f97b218f7cc73f5172098d458f1d1", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "treefmt-nix_2": { "inputs": { "nixpkgs": [ "nixos-anywhere", diff --git a/flake.nix b/flake.nix index 25a3a90..d617b99 100644 --- a/flake.nix +++ b/flake.nix @@ -35,6 +35,9 @@ url = "github:nix-community/nixos-anywhere"; inputs.nixpkgs.follows = "nixpkgs"; }; + + nix-colors.url = "github:misterio77/nix-colors"; + nix-ai-tools.url = "github:numtide/nix-ai-tools"; }; outputs = { diff --git a/home/common/default.nix b/home/common/default.nix index a2df9a9..5250b6e 100644 --- a/home/common/default.nix +++ b/home/common/default.nix @@ -3,6 +3,7 @@ lib, outputs, pkgs, + inputs, ... }: { nixpkgs = { @@ -13,6 +14,14 @@ outputs.overlays.modifications outputs.overlays.unstable-packages + # Add stable as an overlay for home-manager + (final: _prev: { + stable = import inputs.nixpkgs { + system = final.system; + config.allowUnfree = true; + }; + }) + # You can also add overlays exported from other flakes: # neovim-nightly-overlay.overlays.default diff --git a/home/features/desktop/rofi.nix b/home/features/desktop/rofi.nix index eaf8154..f2163ef 100644 --- a/home/features/desktop/rofi.nix +++ b/home/features/desktop/rofi.nix @@ -16,7 +16,7 @@ in { plugins = [ rofi-calc rofi-emoji - rofi-file-browser + stable.rofi-file-browser ]; }; pass = { @@ -32,7 +32,152 @@ in { kb-primary-paste = "Control+V,Shift+Insert"; kb-secondary-paste = "Control+v,Insert"; }; - theme = "dracula"; + theme = let + inherit (config.colorScheme) palette; + in + builtins.toString (pkgs.writeText "rofi-universal-theme.rasi" '' + * { + /* Universal theme colors from nix-colors */ + background: #${palette.base00}; + surface: #${palette.base01}; + overlay: #${palette.base02}; + muted: #${palette.base03}; + subtle: #${palette.base04}; + text: #${palette.base05}; + bright-text: #${palette.base06}; + highlight: #${palette.base07}; + accent1: #${palette.base08}; + accent2: #${palette.base09}; + accent3: #${palette.base0A}; + accent4: #${palette.base0B}; + accent5: #${palette.base0C}; + accent6: #${palette.base0D}; + accent7: #${palette.base0E}; + accent8: #${palette.base0F}; + + /* Global properties */ + background-color: @background; + text-color: @text; + font: "Fira Code 12"; + border: 0; + margin: 0; + padding: 0; + spacing: 0; + } + + window { + background-color: @background; + border: 1px; + border-color: @accent7; + border-radius: 6px; + width: 40%; + padding: 16px; + } + + inputbar { + children: [ prompt, entry ]; + spacing: 12px; + padding: 8px; + border-radius: 4px; + background-color: @surface; + } + + prompt { + text-color: @accent7; + background-color: transparent; + } + + entry { + placeholder: "Search..."; + placeholder-color: @subtle; + text-color: @text; + background-color: transparent; + cursor-color: @accent7; + } + + message { + background-color: @surface; + border-radius: 4px; + padding: 8px; + margin: 8px 0; + } + + textbox { + text-color: @text; + background-color: transparent; + } + + listview { + background-color: transparent; + margin: 8px 0 0; + lines: 10; + columns: 1; + fixed-height: true; + scrollbar: false; + } + + element { + background-color: transparent; + text-color: @text; + padding: 8px; + border-radius: 4px; + spacing: 8px; + } + + element normal.normal { + background-color: transparent; + text-color: @text; + } + + element selected.normal { + background-color: @accent7; + text-color: @background; + } + + element alternate.normal { + background-color: transparent; + text-color: @text; + } + + element-icon { + background-color: transparent; + size: 24px; + } + + element-text { + background-color: transparent; + text-color: inherit; + vertical-align: 0.5; + } + + mode-switcher { + spacing: 0; + background-color: @surface; + border-radius: 4px; + margin: 8px 0 0; + } + + button { + padding: 8px 16px; + background-color: transparent; + text-color: @text; + border-radius: 4px; + } + + button selected { + background-color: @accent7; + text-color: @background; + } + + /* Scrollbar */ + scrollbar { + width: 4px; + border: 0; + handle-color: @accent7; + handle-width: 4px; + padding: 0; + } + ''); }; }; } diff --git a/home/features/desktop/theme.nix b/home/features/desktop/theme.nix index 6f1190c..8d00f5a 100644 --- a/home/features/desktop/theme.nix +++ b/home/features/desktop/theme.nix @@ -1,4 +1,9 @@ -{pkgs, ...}: { +{ + inputs, + pkgs, + ... +}: { + colorScheme = inputs.nix-colors.colorSchemes.dracula; qt = { enable = true; platformTheme.name = "gtk"; diff --git a/home/sascha.koenig/AZLT124-L.nix b/home/sascha.koenig/AZLT124-L.nix index 825bf5b..c0488b4 100644 --- a/home/sascha.koenig/AZLT124-L.nix +++ b/home/sascha.koenig/AZLT124-L.nix @@ -1,6 +1,7 @@ { config, lib, + inputs, ... }: with lib; let @@ -11,6 +12,7 @@ in { ./home.nix ../features/cli ../features/desktop + inputs.nix-colors.homeManagerModules.default ]; config = mkMerge [ diff --git a/hosts/AZ-CLD-1/services/default.nix b/hosts/AZ-CLD-1/services/default.nix index 44558a8..8d219b8 100644 --- a/hosts/AZ-CLD-1/services/default.nix +++ b/hosts/AZ-CLD-1/services/default.nix @@ -3,6 +3,7 @@ ./containers ./gitea.nix + ./metabase.nix ./n8n.nix ./ntfy.nix ./outline.nix diff --git a/hosts/AZLT124-L/configuration.nix b/hosts/AZLT124-L/configuration.nix index ba4e0dd..517390a 100644 --- a/hosts/AZLT124-L/configuration.nix +++ b/hosts/AZLT124-L/configuration.nix @@ -43,6 +43,7 @@ # Select internationalisation properties. i18n.defaultLocale = "de_DE.UTF-8"; + # console = { # font = "Lat2-Terminus16"; # keyMap = "us"; diff --git a/hosts/AZLT124-L/services/default.nix b/hosts/AZLT124-L/services/default.nix index ee9e82e..03a630f 100644 --- a/hosts/AZLT124-L/services/default.nix +++ b/hosts/AZLT124-L/services/default.nix @@ -1,6 +1,7 @@ { imports = [ # ./ad.nix + ./n8n.nix ./sound.nix ./udev.nix ]; diff --git a/hosts/AZLT124-L/services/n8n.nix b/hosts/AZLT124-L/services/n8n.nix new file mode 100644 index 0000000..e6618ea --- /dev/null +++ b/hosts/AZLT124-L/services/n8n.nix @@ -0,0 +1,20 @@ +{ + config, + lib, + ... +}: let + serviceName = "n8n"; + portUtils = import ../../../lib/port-utils.nix {inherit lib;}; + servicePort = portUtils.getPort serviceName "AZLT124-L"; +in { + services.${serviceName} = { + enable = true; + openFirewall = true; + }; + systemd.services.n8n = { + environment = { + N8N_SECURE_COOKIE = "false"; + N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS = "false"; + }; + }; +} diff --git a/overlays/default.nix b/overlays/default.nix index 96634ea..fe194c0 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -1,6 +1,10 @@ {inputs, ...}: { # This one brings our custom packages from the 'pkgs' directory - additions = final: _prev: import ../pkgs {pkgs = final;}; + additions = final: prev: + (import ../pkgs {pkgs = final;}) + // { + crush = inputs.nix-ai-tools.packages.${prev.system}.crush; + }; # This one contains whatever you want to overlay # You can change versions, add patches, set compilation flags, anything really. diff --git a/overlays/mods/n8n.nix b/overlays/mods/n8n.nix index 5c5d70e..5d4a1a2 100644 --- a/overlays/mods/n8n.nix +++ b/overlays/mods/n8n.nix @@ -1,18 +1,19 @@ {prev}: prev.n8n.overrideAttrs (oldAttrs: rec { - version = "1.103.2"; + version = "1.112.6"; src = prev.fetchFromGitHub { owner = "n8n-io"; repo = "n8n"; rev = "n8n@${version}"; - hash = "sha256-jCIvhQMRHmhaZKIr+zGQ18s1dChUoGE6gsUzknhCvHE="; + hash = "sha256-r/MCU/S1kkKQPkhmp9ZHTtgZxMu5TFCl5Yejp73gATw="; }; pnpmDeps = prev.pnpm_10.fetchDeps { pname = oldAttrs.pname; inherit version src; - hash = "sha256-LierbGPkVIy5/2vtBl94TQcSpmNX9OUDMntDdo5BeiU="; + fetcherVersion = 1; + hash = "sha256-j+HJhvzrcu8JsezcFJxfgteOgTspWQb2ZSN2fEl7Voo="; }; nativeBuildInputs =