diff --git a/flake.lock b/flake.lock index d2e348d..00baf9b 100644 --- a/flake.lock +++ b/flake.lock @@ -169,6 +169,22 @@ "type": "github" } }, + "gram-extensions": { + "inputs": { + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1784322176, + "narHash": "sha256-GbwlyCMD+nWBr2UPw1MLvqzPePX5jPIzW1D20zfNFCE=", + "rev": "294fb728adcc51987f6c63f8f2d27f602c46f915", + "type": "tarball", + "url": "https://codeberg.org/api/v1/repos/niklaskorz/nix-gram-extensions/archive/294fb728adcc51987f6c63f8f2d27f602c46f915.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://codeberg.org/niklaskorz/nix-gram-extensions/archive/main.tar.gz" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -197,15 +213,15 @@ ] }, "locked": { - "lastModified": 1783740085, - "narHash": "sha256-qajyHfZY29G2oEQk+uHxmsJcRoBUBXP9maTpFlwP/dI=", - "owner": "nix-community", + "lastModified": 1784409593, + "narHash": "sha256-PZ+Xc0Q2MRdR0Dsorwgc7Zi2ST++a8mOTvwewrn2hXw=", + "owner": "JuliusFreudenberger", "repo": "home-manager", - "rev": "3cd22efe6471dc7365c822bd9ad73a21e55f38fb", + "rev": "8cc72ea0c4253217b3233db54c65e72848a5eaee", "type": "github" }, "original": { - "owner": "nix-community", + "owner": "JuliusFreudenberger", "ref": "release-26.05", "repo": "home-manager", "type": "github" @@ -258,7 +274,7 @@ }, "nixos-hardware": { "inputs": { - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs_2" }, "locked": { "lastModified": 1784100666, @@ -277,15 +293,18 @@ }, "nixpkgs": { "locked": { - "lastModified": 1767892417, - "narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=", - "rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba", - "type": "tarball", - "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre924538.3497aa5c9457/nixexprs.tar.xz" + "lastModified": 1783503551, + "narHash": "sha256-bKMNrMZd/B56gE31iFABBHTbkzAptLy7G8G235yOv8Q=", + "owner": "niklaskorz", + "repo": "nixpkgs", + "rev": "6da901a408ae91ee140bc8e94081d758f0a73126", + "type": "github" }, "original": { - "type": "tarball", - "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" + "owner": "niklaskorz", + "ref": "wasip2-rustc", + "repo": "nixpkgs", + "type": "github" } }, "nixpkgs-libvncserver": { @@ -353,6 +372,19 @@ } }, "nixpkgs_2": { + "locked": { + "lastModified": 1767892417, + "narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=", + "rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba", + "type": "tarball", + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre924538.3497aa5c9457/nixexprs.tar.xz" + }, + "original": { + "type": "tarball", + "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" + } + }, + "nixpkgs_3": { "locked": { "lastModified": 1784160687, "narHash": "sha256-iYL/bixrb6FlHFu/gIuBYzq6c6lM5AAXsXNSWXtIgQc=", @@ -441,11 +473,12 @@ "agenix": "agenix", "auto-cpufreq": "auto-cpufreq", "disko": "disko", + "gram-extensions": "gram-extensions", "home-manager": "home-manager_2", "lanzaboote": "lanzaboote", "lazy-apps": "lazy-apps", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs_3", "nixpkgs-unstable": "nixpkgs-unstable", "proxmox-nixos": "proxmox-nixos", "secrets": "secrets", diff --git a/flake.nix b/flake.nix index 2bf22f8..d49ceb8 100644 --- a/flake.nix +++ b/flake.nix @@ -15,7 +15,7 @@ nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05"; nixos-hardware.url = "github:NixOS/nixos-hardware/master"; home-manager = { - url = "github:nix-community/home-manager/release-26.05"; + url = "github:JuliusFreudenberger/home-manager/release-26.05"; inputs.nixpkgs.follows = "nixpkgs"; }; auto-cpufreq = { @@ -42,6 +42,10 @@ url = "github:nix-community/lanzaboote/v1.0.0"; inputs.nixpkgs.follows = "nixpkgs"; }; + gram-extensions = { + url = "https://codeberg.org/niklaskorz/nix-gram-extensions/archive/main.tar.gz"; + # inputs.nixpkgs.follows = "nixpkgs"; Not possible until https://github.com/NixOS/nixpkgs/pull/537433 reaches input nixpkgs + }; secrets = { url = "git+ssh://git@git.jfreudenberger.de/JuliusFreudenberger/nix-private.git"; flake = false; @@ -60,6 +64,7 @@ agenix, disko, lanzaboote, + gram-extensions, systems, ... } @ inputs: let @@ -87,7 +92,13 @@ system = "x86_64-linux"; specialArgs = { - inherit inputs outputs username; + inherit inputs outputs username; + + pkgs-unstable = import nixpkgs-unstable { + inherit system; + }; + + gram-extensions = gram-extensions.packages.${system}; }; modules = [ diff --git a/home/gram.nix b/home/gram.nix new file mode 100644 index 0000000..42a47b5 --- /dev/null +++ b/home/gram.nix @@ -0,0 +1,65 @@ +{ + config, + lib, + pkgs, + pkgs-unstable, + gram-extensions, + ... +}: + let + extensions = with gram-extensions; [ + typst + git-firefly + ]; + extensions-dir = gram-extensions.linkGramExtensions extensions; + in { + programs.zed-editor = { + enable = true; + package = pkgs-unstable.gram; + extraPackages = [ + pkgs.nil + pkgs.tinymist + pkgs.tofu-ls + pkgs.ltex-ls-plus + ]; + userSettings = { + theme = { + mode = "system"; + dark = "One Dark"; + light = "One Light"; + }; + hour_format = "hour24"; + vim_mode = true; + load_direnv = "shell_hook"; + + lsp = { + tinymist = { + settings = { + exportPdf = "onSave"; + outputPath = "$root/$name"; + preview.background.enabled = true; + }; + initialization_options = { + preview.background.enabled = true; + }; + }; + }; + }; + }; + home.file."Library/Application Support/Gram/extensions/installed" = { + enable = pkgs.stdenv.hostPlatform.isDarwin; + source = extensions-dir; + onChange = '' + cd "Library/Application Support/Gram/extensions" + mv index.json index.json.backup + ''; + }; + xdg.dataFile."gram/extensions/installed" = { + enable = pkgs.stdenv.hostPlatform.isLinux; + source = extensions-dir; + onChange = '' + cd "${config.xdg.dataHome}/gram/extensions" + mv index.json index.json.backup + ''; + }; +} diff --git a/users/julius/home.nix b/users/julius/home.nix index 9b83137..9ad4a54 100644 --- a/users/julius/home.nix +++ b/users/julius/home.nix @@ -11,6 +11,8 @@ ../../home/kanshi.nix ../../home/direnv + + ../../home/gram.nix ]; }