diff --git a/flake.lock b/flake.lock index 443bb9d..44fd0e0 100644 --- a/flake.lock +++ b/flake.lock @@ -16,11 +16,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1733851514, - "narHash": "sha256-fQt/HzF+OBC8xLRYeHiYLSEzjrgOLNWhyd102aY2oLU=", + "lastModified": 1736445563, + "narHash": "sha256-+f1MWPtja+LRlTHJP/i/3yxmnzo2LGtZmxtJJTdAp8o=", "owner": "nix-community", "repo": "authentik-nix", - "rev": "b059e1d6e7a94bbeabb4e87d47b5f5097fd61823", + "rev": "bf5a5bf42189ff5f468f0ff26c9296233a97eb6c", "type": "github" }, "original": { @@ -32,16 +32,16 @@ "authentik-src": { "flake": false, "locked": { - "lastModified": 1733849292, - "narHash": "sha256-gJYgrRxytoGHkjeEsiKY/tl06D8XOnZZ9SDpK1WSyUw=", + "lastModified": 1736440980, + "narHash": "sha256-Z3rFFrXrOKaF9NpY/fInsEbzdOWnWqLfEYl7YX9hFEU=", "owner": "goauthentik", "repo": "authentik", - "rev": "0edd7531a152910e6bdd4f7d3d0cde3ed5fdd956", + "rev": "9d81f0598c7735e2b4616ee865ab896056a67408", "type": "github" }, "original": { "owner": "goauthentik", - "ref": "version/2024.10.5", + "ref": "version/2024.12.2", "repo": "authentik", "type": "github" } @@ -98,11 +98,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1733312601, - "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "lastModified": 1736143030, + "narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de", "type": "github" }, "original": { @@ -159,11 +159,11 @@ ] }, "locked": { - "lastModified": 1735381016, - "narHash": "sha256-CyCZFhMUkuYbSD6bxB/r43EdmDE7hYeZZPTCv0GudO4=", + "lastModified": 1737221749, + "narHash": "sha256-igllW0yG+UbetvhT11jnt9RppSHXYgMykYhZJeqfHs0=", "owner": "nix-community", "repo": "home-manager", - "rev": "10e99c43cdf4a0713b4e81d90691d22c6a58bdf2", + "rev": "97d7946b5e107dd03cc82f21165251d4e0159655", "type": "github" }, "original": { @@ -264,11 +264,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1735291276, - "narHash": "sha256-NYVcA06+blsLG6wpAbSPTCyLvxD/92Hy4vlY9WxFI1M=", + "lastModified": 1737062831, + "narHash": "sha256-Tbk1MZbtV2s5aG+iM99U8FqwxU/YNArMcWAv6clcsBc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "634fd46801442d760e09493a794c4f15db2d0cbb", + "rev": "5df43628fdf08d642be8ba5b3625a6c70731c19c", "type": "github" }, "original": { @@ -295,23 +295,23 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1733096140, - "narHash": "sha256-1qRH7uAUsyQI7R1Uwl4T+XvdNv778H0Nb5njNrqvylY=", + "lastModified": 1735774519, + "narHash": "sha256-CewEm1o2eVAnoqb6Ml+Qi9Gg/EfNAxbRx1lANGVyoLI=", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz" }, "original": { "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz" } }, "nixpkgs-stable": { "locked": { - "lastModified": 1735286948, - "narHash": "sha256-JMRV2RI58nV1UqLXqm+lcea1/dr92fYjWU5S+Rz3fmE=", + "lastModified": 1735563628, + "narHash": "sha256-OnSAY7XDSx7CtDoqNh8jwVwh4xNL/2HaJxGjryLWzX8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "31ac92f9628682b294026f0860e14587a09ffb4b", + "rev": "b134951a4c9f3c995fd7be05f3243f8ecd65d798", "type": "github" }, "original": { @@ -339,11 +339,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1730284601, - "narHash": "sha256-eHYcKVLIRRv3J1vjmxurS6HVdGphB53qxUeAkylYrZY=", + "lastModified": 1735164664, + "narHash": "sha256-DaWy+vo3c4TQ93tfLjUgcpPaSoDw4qV4t76Y3Mhu84I=", "owner": "nix-community", "repo": "poetry2nix", - "rev": "43a898b4d76f7f3f70df77a2cc2d40096bc9d75e", + "rev": "1fb01e90771f762655be7e0e805516cd7fa4d58e", "type": "github" }, "original": { @@ -364,7 +364,8 @@ "nixpkgs": "nixpkgs", "nixpkgs-stable": "nixpkgs-stable", "sops-nix": "sops-nix", - "systems": "systems_2" + "systems": "systems_2", + "vscode-server": "vscode-server" } }, "sops-nix": { @@ -374,11 +375,11 @@ ] }, "locked": { - "lastModified": 1735468296, - "narHash": "sha256-ZjUjbvS06jf4fElOF4ve8EHjbpbRVHHypStoY8HGzk8=", + "lastModified": 1737107480, + "narHash": "sha256-GXUE9+FgxoZU8v0p6ilBJ8NH7k8nKmZjp/7dmMrCv3o=", "owner": "Mic92", "repo": "sops-nix", - "rev": "bcb8b65aa596866eb7e5c3e1a6cccbf5d1560b27", + "rev": "4c4fb93f18b9072c6fa1986221f9a3d7bf1fe4b6", "type": "github" }, "original": { @@ -438,6 +439,29 @@ "repo": "treefmt-nix", "type": "github" } + }, + "vscode-server": { + "inputs": { + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1729422940, + "narHash": "sha256-DlvJv33ml5UTKgu4b0HauOfFIoDx6QXtbqUF3vWeRCY=", + "owner": "nix-community", + "repo": "nixos-vscode-server", + "rev": "8b6db451de46ecf9b4ab3d01ef76e59957ff549f", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixos-vscode-server", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 7e89184..c56e166 100644 --- a/flake.nix +++ b/flake.nix @@ -20,7 +20,6 @@ sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; - inputs.nixpkgs-stable.follows = "nixpkgs-stable"; }; mailserver = { url = "gitlab:simple-nixos-mailserver/nixos-mailserver/master"; @@ -32,6 +31,11 @@ inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-parts.follows = "flake-parts"; }; + vscode-server = { + url = "github:nix-community/nixos-vscode-server"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.flake-utils.follows = "flake-utils"; + }; nix-cfg-extra.url = "git+https://git.lgmrszd.xyz/lgmrszd/nix-cfg-extra-public.git"; }; @@ -43,21 +47,23 @@ sops-nix, mailserver, authentik-nix, + vscode-server, ... }: let system = "x86_64-linux"; - # overlay-stable = final: prev: { - # stable = import nixpkgs-stable { - # inherit system; - # config.allowUnfree = true; - # }; - # }; + mylib = import ./lib; + overlay-stable = final: prev: { + stable = import nixpkgs-stable { + inherit system; + config.allowUnfree = true; + }; + }; overlay-vaapiIntel = final: prev: { vaapiIntel = prev.vaapiIntel.override { enableHybridCodec = true; }; }; my-overlays = [ - # overlay-stable + overlay-stable overlay-vaapiIntel ]; inherit (inputs.nix-cfg-extra.lib) extra-data; @@ -73,7 +79,7 @@ in nixpkgs.lib.nixosSystem { inherit system; - specialArgs = { inherit data; }; + specialArgs = { inherit data; inherit mylib; }; modules = [ { nixpkgs.overlays = my-overlays; } ./hosts/${host}/configuration.nix @@ -92,6 +98,7 @@ ./hosts/${host}/home ] ++ extra-home-modules; }; + home-manager.extraSpecialArgs = { inherit mylib; }; } ]) ; @@ -101,6 +108,13 @@ nixosConfigurations.lgm-nixos = mkHostConfig { host = "laptop"; useHome = true; + extraModules = [ + vscode-server.nixosModules.default + ({ config, pkgs, ... }: { + services.vscode-server.enable = true; + services.vscode-server.installPath = "$HOME/.vscodium-server"; + }) + ]; }; nixosConfigurations.lgm-vps1 = mkHostConfig { host = "vps1"; diff --git a/hosts/laptop/configuration.nix b/hosts/laptop/configuration.nix index f57777c..d4220ca 100644 --- a/hosts/laptop/configuration.nix +++ b/hosts/laptop/configuration.nix @@ -278,7 +278,7 @@ in }; services.postgresql = { - enable = true; + enable = false; ensureDatabases = [ "testdb" ]; ensureUsers = [ { name = "lgm"; } ]; authentication = pkgs.lib.mkOverride 10 '' @@ -364,7 +364,7 @@ in curl # more stuff gnome-network-displays - miraclecast + #miraclecast parted exfatprogs gparted @@ -373,7 +373,7 @@ in distrobox (let base = pkgs.appimageTools.defaultFhsEnvArgs; in - pkgs.buildFHSUserEnv (base // { + pkgs.buildFHSEnv (base // { name = "fhs"; targetPkgs = pkgs: ( (base.targetPkgs pkgs) ++ [ diff --git a/hosts/laptop/home/default.nix b/hosts/laptop/home/default.nix index 0ffdf94..d52411d 100644 --- a/hosts/laptop/home/default.nix +++ b/hosts/laptop/home/default.nix @@ -1,4 +1,4 @@ -{ config, osConfig, pkgs, ... }: +{ config, osConfig, pkgs, mylib, ... }: { home.username = "lgm"; @@ -93,14 +93,20 @@ minetest # dev # Wrap idea-community to add libraries required for Minecraft Moddev - (symlinkJoin { - name = "idea-community"; - paths = [ jetbrains.idea-community ]; - buildInputs = [ makeWrapper ]; - postBuild = '' - wrapProgram $out/bin/idea-community \ - --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [libpulseaudio libGL glfw openal stdenv.cc.cc.lib]}" - ''; + jetbrains.idea-community + (mylib.appwrapper { + inherit pkgs; + inputpkg = jetbrains.idea-community; + pkgsuffix = "mcdev-jbr17"; + libraries = with pkgs; [libpulseaudio libGL glfw openal stdenv.cc.cc.lib]; + extrapathpkgs = with pkgs; [jetbrains.jdk-no-jcef-17]; + }) + (mylib.appwrapper { + inherit pkgs; + inputpkg = jetbrains.idea-community; + pkgsuffix = "mcdev-jbr21"; + libraries = with pkgs; [libpulseaudio libGL glfw openal stdenv.cc.cc.lib]; + extrapathpkgs = with pkgs; [jetbrains.jdk-no-jcef]; }) packwiz # vscodium # see programs.vscode diff --git a/lib/default.nix b/lib/default.nix new file mode 100644 index 0000000..bacfbf0 --- /dev/null +++ b/lib/default.nix @@ -0,0 +1,29 @@ +{ + appwrapper = + { + pkgs, + inputpkg, + pkgsuffix, + libraries, + extrapathpkgs + }: with pkgs; let + name = "${inputpkg.pname}-${pkgsuffix}"; + in stdenv.mkDerivation { + inherit name; + inherit (inputpkg) version; + nativeBuildInputs = [ makeWrapper gnused ]; + buildCommand = '' + mkdir -p $out/bin + mkdir -p $out/share/applications + cp ${inputpkg}/share/applications/${inputpkg.pname}.desktop $out/share/applications/${name}.desktop + makeWrapper ${inputpkg}/bin/${inputpkg.pname} $out/bin/${name} \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath libraries}" \ + --prefix PATH : "${lib.makeBinPath extrapathpkgs}" + substituteInPlace $out/share/applications/${name}.desktop \ + --replace-fail "=${inputpkg.pname}" "=${name}" + sed -i -E "s/^Name=(.*)/Name=\1 (${pkgsuffix})/g" "$out/share/applications/${name}.desktop" + echo $out/bin/${name} + ''; + dontBuild = true; + }; +} \ No newline at end of file