diff --git a/flake.lock b/flake.lock index 4d6156e..34bb1e6 100644 --- a/flake.lock +++ b/flake.lock @@ -100,6 +100,22 @@ "type": "github" } }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": [ @@ -233,6 +249,62 @@ "type": "github" } }, + "niri-flake": { + "inputs": { + "niri-stable": "niri-stable", + "niri-unstable": "niri-unstable", + "nixpkgs": "nixpkgs_3", + "nixpkgs-stable": "nixpkgs-stable", + "xwayland-satellite-stable": "xwayland-satellite-stable", + "xwayland-satellite-unstable": "xwayland-satellite-unstable" + }, + "locked": { + "lastModified": 1762026425, + "narHash": "sha256-7eDtQrr+CRZ1pLjJ6Bx7Ab9pUIowXJ7ooqEh6p3jIn8=", + "owner": "sodiboo", + "repo": "niri-flake", + "rev": "342730d4f8e109f3506932d2be1c8f9ab19a7039", + "type": "github" + }, + "original": { + "owner": "sodiboo", + "repo": "niri-flake", + "type": "github" + } + }, + "niri-stable": { + "flake": false, + "locked": { + "lastModified": 1756556321, + "narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "ref": "v25.08", + "repo": "niri", + "type": "github" + } + }, + "niri-unstable": { + "flake": false, + "locked": { + "lastModified": 1761888958, + "narHash": "sha256-YgArUHI81Esn6fOCwVSrMI2G4RI3f3BPbRbPWsJubAc=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "e2576879216a39e5c45b9d2906531bc2065e724c", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "repo": "niri", + "type": "github" + } + }, "nixos-hardware": { "locked": { "lastModified": 1760958188, @@ -249,6 +321,25 @@ "type": "github" } }, + "nixos-wsl": { + "inputs": { + "flake-compat": "flake-compat_2", + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1761969132, + "narHash": "sha256-0me4+e+1VxNuvySSw0voqMCWU/eUmTuth7f4+Q2jbUY=", + "owner": "nix-community", + "repo": "NixOS-WSL", + "rev": "761582d6ab431549fe1396d2cd681e3fe9376020", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NixOS-WSL", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 315532800, @@ -262,6 +353,22 @@ "url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz" } }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1761597516, + "narHash": "sha256-wxX7u6D2rpkJLWkZ2E932SIvDJW8+ON/0Yy8+a5vsDU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "daf6dc47aa4b44791372d6139ab7b25269184d55", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-25.05", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs-unstable": { "locked": { "lastModified": 1761349956, @@ -292,6 +399,38 @@ } }, "nixpkgs_3": { + "locked": { + "lastModified": 1761907660, + "narHash": "sha256-kJ8lIZsiPOmbkJypG+B5sReDXSD1KGu2VEPNqhRa/ew=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1761373498, + "narHash": "sha256-Q/uhWNvd7V7k1H1ZPMy/vkx3F8C13ZcdrKjO7Jv7v0c=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "6a08e6bb4e46ff7fcbb53d409b253f6bad8a28ce", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { "locked": { "lastModified": 1761173472, "narHash": "sha256-m9W0dYXflzeGgKNravKJvTMR4Qqa2MVD11AwlGMufeE=", @@ -307,7 +446,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_6": { "locked": { "lastModified": 1759036355, "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", @@ -396,8 +535,10 @@ "inputs": { "ghostty": "ghostty", "home-manager": "home-manager", + "niri-flake": "niri-flake", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_3", + "nixos-wsl": "nixos-wsl", + "nixpkgs": "nixpkgs_5", "nixpkgs-unstable": "nixpkgs-unstable", "noctalia": "noctalia", "quickshell": "quickshell", @@ -583,7 +724,7 @@ "vicinae": { "inputs": { "flake-utils": "flake-utils_2", - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_6" }, "locked": { "lastModified": 1761455154, @@ -599,6 +740,39 @@ "type": "github" } }, + "xwayland-satellite-stable": { + "flake": false, + "locked": { + "lastModified": 1755491097, + "narHash": "sha256-m+9tUfsmBeF2Gn4HWa6vSITZ4Gz1eA1F5Kh62B0N4oE=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "388d291e82ffbc73be18169d39470f340707edaa", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "ref": "v0.7", + "repo": "xwayland-satellite", + "type": "github" + } + }, + "xwayland-satellite-unstable": { + "flake": false, + "locked": { + "lastModified": 1761622056, + "narHash": "sha256-fBrUszJXmB4MY+wf3QsCnqWHcz7u7fLq0QMAWCltIQg=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "0728d59ff6463a502e001fb090f6eb92dbc04756", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "type": "github" + } + }, "zig": { "inputs": { "flake-compat": [ diff --git a/modules/home/niri/default.nix b/modules/home/niri/default.nix index fbfc751..b645eee 100644 --- a/modules/home/niri/default.nix +++ b/modules/home/niri/default.nix @@ -17,11 +17,14 @@ in spawn-at-startup = [ { command = [ "noctalia-shell" ]; } ]; + + outputs."eDP-1".scale = 1; + cursor.size = 16; # Doracura color layout = { focus-ring = { - active.color = "#bd93f9" ; + active.color = "#bd93f9"; inactive.color = "#6272a4"; }; border = { diff --git a/modules/home/vscode.nix b/modules/home/vscode.nix index 383cec7..10a6c97 100644 --- a/modules/home/vscode.nix +++ b/modules/home/vscode.nix @@ -1,20 +1,68 @@ -{ pkgs, ... }: { +{ pkgs, lib, ... }: +let + vsc = pkgs.vscode-extensions; + inherit (lib) recursiveUpdate; + + layers = rec { + common = { + extensions = with vsc; [ + dracula-theme.theme-dracula + ]; + userSettings = { + "workbench.colorTheme" = "Dracula"; + "window.autoDetectColorScheme" = false; + "editor.formatOnSave" = true; + }; + }; + + web = { + extensions = with vsc; [ + dbaeumer.vscode-eslint + ]; + userSettings = { + "editor.defaultFormatter" = "esbenp.prettier-vscode"; + }; + }; + + nix = { + extensions = with vsc; [ + bbenoist.nix + jnoortheen.nix-ide + ]; + userSettings = { + "nix.enableLanguageServer" = true; + "nix.serverPath" = "nil"; + }; + }; + }; + + combine = (ls: + builtins.foldl' (acc: l: { + extensions = acc.extensions ++ (l.extensions or []); + userSettings = recursiveUpdate acc.userSettings (l.userSettings or {}); + }) { extensions = []; userSettings = {}; } ls + ); + + # mkProfile [layers...] { extensions = [...]; userSettings = { ... }; } + mkProfile = layersList: extras: + let base = combine layersList; + in { + extensions = base.extensions ++ (extras.extensions or []); + userSettings = recursiveUpdate base.userSettings (extras.userSettings or {}); + }; + +in { nixpkgs.config.allowUnfree = true; programs.vscode = { enable = true; - profiles = { - default = { - extensions = with pkgs.vscode-extensions; [ - esbenp.prettier-vscode - dracula-theme.theme-dracula - ]; - userSettings = { - "workbench.colorTheme" = "Dracula"; - "window.autoDetectColorScheme" = false; - }; - }; + profiles = { + default = mkProfile [ layers.common ] { }; + + nix = mkProfile [ layers.common layers.nix ] { }; + + web = mkProfile [ layers.common layers.web ] { }; }; }; }