diff --git a/flake.lock b/flake.lock index c5d4f12..62d175d 100644 --- a/flake.lock +++ b/flake.lock @@ -20,6 +20,24 @@ "inputs": { "systems": "systems" }, + "locked": { + "lastModified": 1689068808, + "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, "locked": { "lastModified": 1681202837, "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", @@ -34,7 +52,7 @@ "type": "github" } }, - "flake-utils_2": { + "flake-utils_3": { "locked": { "lastModified": 1638122382, "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", @@ -72,7 +90,7 @@ "nix-vscode-extensions": { "inputs": { "flake-compat": "flake-compat", - "flake-utils": "flake-utils", + "flake-utils": "flake-utils_2", "nixpkgs": "nixpkgs" }, "locked": { @@ -91,7 +109,7 @@ }, "nixos-cn": { "inputs": { - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils_3", "nixpkgs": [ "nixpkgs" ] @@ -176,11 +194,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1689850295, - "narHash": "sha256-fUYf6WdQlhd2H+3aR8jST5dhFH1d0eE22aes8fNIfyk=", + "lastModified": 1689940971, + "narHash": "sha256-397xShPnFqPC59Bmpo3lS+/Aw0yoDRMACGo1+h2VJMo=", "owner": "nixos", "repo": "nixpkgs", - "rev": "5df4d78d54f7a34e9ea1f84a22b4fd9baebc68d0", + "rev": "9ca785644d067445a4aa749902b29ccef61f7476", "type": "github" }, "original": { @@ -208,11 +226,11 @@ }, "nur": { "locked": { - "lastModified": 1689957702, - "narHash": "sha256-65SH/R79QEJMy41Z4oKGV6aGI0maFy7kgOExORJ5ttM=", + "lastModified": 1689986542, + "narHash": "sha256-nfAoJhHAeOM+G2E4qzE3E8vtt5VH14bq9u7a9wxTR1c=", "owner": "nix-community", "repo": "NUR", - "rev": "5bf71ded2372cbf1df969164193523c09a36b92c", + "rev": "3d51c81356bd84bfa7b5b2ccb11c36b58b9f5cde", "type": "github" }, "original": { @@ -223,6 +241,7 @@ }, "root": { "inputs": { + "flake-utils": "flake-utils", "home-manager": "home-manager", "nix-vscode-extensions": "nix-vscode-extensions", "nixos-cn": "nixos-cn", @@ -266,6 +285,21 @@ "repo": "default", "type": "github" } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 500585a..d990e06 100644 --- a/flake.nix +++ b/flake.nix @@ -22,6 +22,8 @@ sops-nix.url = "github:Mic92/sops-nix"; nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions"; + + flake-utils.url = "github:numtide/flake-utils"; }; @@ -70,6 +72,7 @@ ]; }; + images.raspite = (mkNixos { system = "aarch64-linux"; modules = [ @@ -83,5 +86,13 @@ } ]; }).config.system.build.sdImage; - }; + } // + (with flake-utils.lib; (eachSystem defaultSystems (system: + let pkgs = import nixpkgs { inherit system; }; in + { + packages = { + homeConfigurations."xin" = import ./home/xin/gold { inherit home-manager pkgs; }; + }; + } + ))); } diff --git a/home/xin/common/fish.nix b/home/xin/common/fish.nix index 3502f1d..19950bf 100644 --- a/home/xin/common/fish.nix +++ b/home/xin/common/fish.nix @@ -15,5 +15,20 @@ src = fishPlugins.hydro.src; } ]; + interactiveShellInit = '' + fish_config theme choose 'ayu Dark' + fish_config prompt choose arrow + ${pkgs.nix-your-shell}/bin/nix-your-shell fish | source + function fish_right_prompt + if test -n "$IN_NIX_SHELL" + echo -n "" + else if test $SHLVL -ge 3 + echo -n "<🚀lv$SHLVL>" + end + end + ''; + functions = { + gitignore = "curl -sL https://www.gitignore.io/api/$argv"; + }; }; } diff --git a/home/xin/gold/default.nix b/home/xin/gold/default.nix new file mode 100644 index 0000000..192e11c --- /dev/null +++ b/home/xin/gold/default.nix @@ -0,0 +1,15 @@ +{ pkgs, home-manager, ... }: + home-manager.lib.homeManagerConfiguration { + inherit pkgs; + modules = [ + ../common + { + home.username = "xin"; + home.homeDirectory = "/home/xin"; + home.stateVersion = "23.05"; + + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; + } + ]; + }