From d76f1d64530825130ff46463ed8239c2d253b982 Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Sun, 9 Aug 2026 14:46:33 -0400 Subject: [PATCH] add: added atuin overlay --- .gitea/workflows/publish-attic.yaml | 1 + flake.lock | 23 ++++++++++++++- flake.nix | 34 +++++++++++++++++----- overlays/default.nix | 44 ++++++++++++++++++++++++++++- pkgs/default.nix | 9 +++--- 5 files changed, 98 insertions(+), 13 deletions(-) diff --git a/.gitea/workflows/publish-attic.yaml b/.gitea/workflows/publish-attic.yaml index 36e1c46..a91f6aa 100644 --- a/.gitea/workflows/publish-attic.yaml +++ b/.gitea/workflows/publish-attic.yaml @@ -63,6 +63,7 @@ jobs: system="$(nix eval --impure --raw --expr builtins.currentSystem)" NIXPKGS_ALLOW_UNFREE=1 nix build --impure --accept-flake-config --no-link --print-out-paths -L \ + ".#packages.${system}.atuinLatest" \ ".#packages.${system}.musicpresence" \ ".#packages.${system}.vintage-story" \ ".#packages.${system}.swaytreesave" \ diff --git a/flake.lock b/flake.lock index 13ca140..0d4f110 100644 --- a/flake.lock +++ b/flake.lock @@ -93,7 +93,28 @@ "darwin": "darwin", "flake-utils": "flake-utils", "home-manager": "home-manager", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_2", + "rust-overlay": "rust-overlay" + } + }, + "rust-overlay": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1786247265, + "narHash": "sha256-cVTcTqAhzSNMOVddtBhFpuv+Vx6/SgrhgZWJiI61H24=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "6df7076ea0f5697e3242719a4c71211f00411cf5", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" } }, "systems": { diff --git a/flake.nix b/flake.nix index 6192da9..5b7a7ad 100644 --- a/flake.nix +++ b/flake.nix @@ -7,9 +7,22 @@ home-manager.url = "github:nix-community/home-manager"; darwin.url = "github:LnL7/nix-darwin"; darwin.inputs.nixpkgs.follows = "nixpkgs"; + rust-overlay = { + url = "github:oxalica/rust-overlay"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; - outputs = inputs@{ self, nixpkgs, flake-utils, home-manager, darwin, ... }: + outputs = + inputs@{ + self, + nixpkgs, + flake-utils, + home-manager, + darwin, + rust-overlay, + ... + }: let systems = [ "x86_64-linux" @@ -19,7 +32,8 @@ forAllSystems = f: nixpkgs.lib.genAttrs systems f; in { - packages = forAllSystems (system: + packages = forAllSystems ( + system: let pkgs = import nixpkgs { inherit system; @@ -29,18 +43,24 @@ import ./pkgs { inherit pkgs; } ); - devShells = forAllSystems (system: - let pkgs = import nixpkgs { inherit system; }; in + devShells = forAllSystems ( + system: + let + pkgs = import nixpkgs { inherit system; }; + in { default = pkgs.mkShell { - packages = with pkgs; [ - nixfmt-rfc-style + packages = with pkgs; [ + nixfmt-rfc-style ]; }; } ); - overlays.default = import ./overlays; + overlays.default = nixpkgs.lib.composeManyExtensions [ + rust-overlay.overlays.default + (import ./overlays) + ]; homeManagerModules = import ./modules/home-manager self; nixosModules.default = import ./modules/nixos; darwinModules.default = import ./modules/darwin; diff --git a/overlays/default.nix b/overlays/default.nix index ce16870..6bca2b5 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -1 +1,43 @@ -final: prev: { } +final: prev: +let + rustLatest = prev.rust-bin.stable.latest.default; + rustPlatform = prev.makeRustPlatform { + cargo = rustLatest; + rustc = rustLatest; + }; +in +{ + atuinLatest = (prev.atuin.override { inherit rustPlatform; }).overrideAttrs (oldAttrs: rec { + version = "18.19.0"; + + src = prev.fetchFromGitHub { + owner = "atuinsh"; + repo = "atuin"; + rev = "v${version}"; + hash = "sha256-yAw+ty6FUnFbiRTdAe2QQHzj6uU24fZ/bEIXcHl/thg="; + }; + + cargoDeps = rustPlatform.fetchCargoVendor { + inherit src; + hash = "sha256-jirVe0+N5+UHZWioj8AipUhawMBameqEJJpa8HPTnfw="; + }; + + cargoBuildFeatures = [ + "ai" + "client" + "clipboard" + "daemon" + "hex" + "sync" + ]; + cargoCheckFeatures = cargoBuildFeatures; + + preCheck = (oldAttrs.preCheck or "") + '' + export HOME="$TMPDIR" + export XDG_CONFIG_HOME="$TMPDIR/.config" + export XDG_DATA_HOME="$TMPDIR/.local/share" + export XDG_STATE_HOME="$TMPDIR/.local/state" + mkdir -p "$XDG_CONFIG_HOME" "$XDG_DATA_HOME" "$XDG_STATE_HOME" + ''; + }); +} diff --git a/pkgs/default.nix b/pkgs/default.nix index a556f03..c6ffb55 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,9 +1,10 @@ { pkgs }: { + atuinLatest = pkgs.atuinLatest; # sable-web = pkgs.callPackage ./common/sable.nix {}; - swaytreesave = pkgs.callPackage ./linux/swaytreesave.nix {}; - musicpresence = pkgs.callPackage ./linux/musicpresence.nix {}; - vintage-story = pkgs.callPackage ./linux/vintage-story.nix {}; - archon = pkgs.callPackage ./linux/archon.nix {}; + swaytreesave = pkgs.callPackage ./linux/swaytreesave.nix { }; + musicpresence = pkgs.callPackage ./linux/musicpresence.nix { }; + vintage-story = pkgs.callPackage ./linux/vintage-story.nix { }; + archon = pkgs.callPackage ./linux/archon.nix { }; yubilock = pkgs.callPackage ./linux/yubilock/default.nix { }; }