diff --git a/flake.lock b/flake.lock index 65e3930..89484ba 100644 --- a/flake.lock +++ b/flake.lock @@ -49,11 +49,11 @@ ] }, "locked": { - "lastModified": 1734088167, - "narHash": "sha256-snPBgTqwn3FPZVdFC5yt7Bnk3squim1vZOZ8CObWykk=", + "lastModified": 1736864502, + "narHash": "sha256-ItkIZyebGvNH2dK9jVGzJHGPtb6BSWLN8Gmef16NeY0=", "owner": "nix-community", "repo": "disko", - "rev": "65a441502c9382d41ada1adbc9bd31d6c9b00fe2", + "rev": "0141aabed359f063de7413f80d906e1d98c0c123", "type": "github" }, "original": { @@ -94,26 +94,6 @@ } }, "flake-parts": { - "inputs": { - "nixpkgs-lib": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1736143030, - "narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_2": { "inputs": { "nixpkgs-lib": [ "lanzaboote", @@ -134,7 +114,7 @@ "type": "github" } }, - "flake-parts_3": { + "flake-parts_2": { "inputs": { "nixpkgs-lib": [ "nixvim", @@ -268,11 +248,11 @@ ] }, "locked": { - "lastModified": 1736508663, - "narHash": "sha256-ZOaGwa+WnB7Zn3YXimqjmIugAnHePdXCmNu+AHkq808=", + "lastModified": 1736785676, + "narHash": "sha256-TY0jUwR3EW0fnS0X5wXMAVy6h4Z7Y6a3m+Yq++C9AyE=", "owner": "nix-community", "repo": "home-manager", - "rev": "2532b500c3ed2b8940e831039dcec5a5ea093afc", + "rev": "fc52a210b60f2f52c74eac41a8647c1573d2071d", "type": "github" }, "original": { @@ -334,7 +314,7 @@ "inputs": { "crane": "crane", "flake-compat": "flake-compat", - "flake-parts": "flake-parts_2", + "flake-parts": "flake-parts", "flake-utils": "flake-utils", "nixpkgs": [ "nixpkgs" @@ -380,16 +360,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1736523798, - "narHash": "sha256-Xb8mke6UCYjge9kPR9o4P1nVrhk7QBbKv3xQ9cj7h2s=", + "lastModified": 1736966948, + "narHash": "sha256-j9ysmoP7UJUEZdA1/Gjqa8zsx5gaq35PxRsaTBwgoWk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "130595eba61081acde9001f43de3248d8888ac4a", + "rev": "69b5cebd7cc197ee5885fa694465039c42a5c8dc", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-unstable", + "ref": "nixos-unstable-small", "repo": "nixpkgs", "type": "github" } @@ -412,11 +392,11 @@ }, "nixpkgs-garage": { "locked": { - "lastModified": 1736657901, - "narHash": "sha256-KpbFF8d5cqcBF7+m5fXDcPn+ADg3kURbX49JGx18NXU=", + "lastModified": 1736921030, + "narHash": "sha256-A7knAvBOwoM5X7oNdIOKvuXYtXJpuR4O8iKHIk8EwOI=", "owner": "cything", "repo": "nixpkgs", - "rev": "616be0a7b830a10d0874d569aabd40034c9151aa", + "rev": "97f27249297bf5fbc563014ae9d4884dee27f1e0", "type": "github" }, "original": { @@ -446,7 +426,7 @@ "inputs": { "devshell": "devshell", "flake-compat": "flake-compat_2", - "flake-parts": "flake-parts_3", + "flake-parts": "flake-parts_2", "git-hooks": "git-hooks", "home-manager": "home-manager_2", "nix-darwin": "nix-darwin", @@ -457,11 +437,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1736715511, - "narHash": "sha256-5YAiZ3wrEJ/fzFoCwNf14xqfRTvgdcnl/+y0vye3Y6A=", + "lastModified": 1736964246, + "narHash": "sha256-gb3ujURRlI/D5Jc8PUDOpJr8RyrTwnDDIDtnQK4upso=", "owner": "nix-community", "repo": "nixvim", - "rev": "35d6c12626f9895cd5d8ccf5d19c3d00de394334", + "rev": "5b068e7f8f2b6beaa1fafe0c8b3604b63bcccc2d", "type": "github" }, "original": { @@ -523,7 +503,6 @@ "root": { "inputs": { "disko": "disko", - "flake-parts": "flake-parts", "home-manager": "home-manager", "lanzaboote": "lanzaboote", "nixpkgs": "nixpkgs", @@ -566,11 +545,11 @@ ] }, "locked": { - "lastModified": 1736515725, - "narHash": "sha256-4P99yL8vGehwzytkpP87eklBePt6aqeEC5JFsIzhfUs=", + "lastModified": 1736808430, + "narHash": "sha256-wlgdf/n7bJMLBheqt1jmPoxJFrUP6FByKQFXuM9YvIk=", "owner": "Mic92", "repo": "sops-nix", - "rev": "f214c1b76c347a4e9c8fb68c73d4293a6820d125", + "rev": "553c7cb22fed19fd60eb310423fdc93045c51ba8", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index b28d7ae..f11bde6 100644 --- a/flake.nix +++ b/flake.nix @@ -2,7 +2,7 @@ description = "cy's flake"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable-small"; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; @@ -27,8 +27,6 @@ url = "github:nix-community/nixvim"; inputs.nixpkgs.follows = "nixpkgs"; }; - flake-parts.url = "github:hercules-ci/flake-parts"; - flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs"; nixpkgs-btrbk.url = "github:cything/nixpkgs/btrbk"; # unmerged PR nixpkgs-garage.url = "github:cything/nixpkgs/garage-module"; # unmerged PR @@ -49,22 +47,38 @@ }; outputs = - inputs@{ flake-parts, nixpkgs, home-manager, disko, ...}: - flake-parts.lib.mkFlake { inherit inputs; } { - systems = [ - "x86_64-linux" - ]; - imports = [ - inputs.treefmt.flakeModule - ]; - perSystem = - { - self', - system, - ... - }: - { - treefmt = { + { + self, + nixpkgs, + home-manager, + treefmt, + disko, + ... + }@inputs: + let + lib = nixpkgs.lib; + inherit (self) outputs; + + systems = [ "x86_64-linux" ]; + forEachSystem = f: lib.genAttrs systems (system: f pkgsFor.${system}); + overlays = [ + # (overlayPkgsFromFlake inputs.eza [ + # ]) + ] ++ import ./overlay; + + pkgsFor = lib.genAttrs systems ( + system: + import nixpkgs { + inherit system overlays; + config = { + allowUnfree = true; + }; + } + ); + + treefmtEval = forEachSystem ( + pkgs: + treefmt.lib.evalModule pkgs { projectRootFile = "flake.nix"; programs.nixfmt.enable = true; programs.stylua.enable = true; @@ -74,29 +88,24 @@ programs.deadnix.enable = true; settings.global.excludes = [ "secrets/*" ]; - }; - }; + } + ); + in + { + formatter = forEachSystem (pkgs: treefmtEval.${pkgs.system}.config.build.wrapper); + checks = forEachSystem (pkgs: { + formatting = treefmtEval.${pkgs.system}.config.build.check self; + }); + # lets us build overlaid packages with `nix build .#` + packages = pkgsFor; - flake.nixosConfigurations = - let - lib = nixpkgs.lib; - - overlays = [ - # (overlayPkgsFromFlake inputs.eza [ - # ]) - ] ++ import ./overlay; - - pkgs = - import nixpkgs { - inherit overlays; - config = { - allowUnfree = true; - }; - }; - in + nixosConfigurations = + let + pkgs = pkgsFor.x86_64-linux; + in { ytnix = lib.nixosSystem { - specialArgs = { inherit inputs; }; + specialArgs = { inherit inputs outputs; }; modules = [ { nixpkgs = { inherit pkgs; }; @@ -109,7 +118,7 @@ }; chunk = lib.nixosSystem { - specialArgs = { inherit inputs; }; + specialArgs = { inherit inputs outputs; }; modules = [ { nixpkgs = { inherit pkgs; }; @@ -125,7 +134,7 @@ }; titan = lib.nixosSystem { - specialArgs = { inherit inputs; }; + specialArgs = { inherit inputs outputs; }; modules = [ { nixpkgs = { inherit pkgs; }; @@ -138,24 +147,33 @@ }; }; - # homeConfigurations = { - # "yt@ytnix" = home-manager.lib.homeManagerConfiguration { - # inherit pkgs; - # extraSpecialArgs = { inherit inputs; }; - # modules = [ - # ./home/yt/ytnix.nix - # inputs.nixvim.homeManagerModules.nixvim - # ]; - # }; - # - # "yt@chunk" = home-manager.lib.homeManagerConfiguration { - # inherit pkgs; - # extraSpecialArgs = { inherit inputs; }; - # modules = [ - # ./home/yt/chunk.nix - # inputs.nixvim.homeManagerModules.nixvim - # ]; - # }; - # }; + homeConfigurations = { + "yt@ytnix" = home-manager.lib.homeManagerConfiguration { + pkgs = pkgsFor.x86_64-linux; + extraSpecialArgs = { inherit inputs outputs; }; + modules = [ + ./home/yt/ytnix.nix + inputs.nixvim.homeManagerModules.nixvim + ]; + }; + + "yt@chunk" = home-manager.lib.homeManagerConfiguration { + pkgs = pkgsFor.x86_64-linux; + extraSpecialArgs = { inherit inputs outputs; }; + modules = [ + ./home/yt/chunk.nix + inputs.nixvim.homeManagerModules.nixvim + ]; + }; + + "codespace@codespace" = home-manager.lib.homeManagerConfiguration { + pkgs = pkgsFor.x86_64-linux; + extraSpecialArgs = { inherit inputs outputs; }; + modules = [ + ./home/yt/codespace.nix + inputs.nixvim.homeManagerModules.nixvim + ]; + }; + }; }; } diff --git a/home/nixvim/default.nix b/home/nixvim/default.nix index 6d453f8..d90b5dd 100644 --- a/home/nixvim/default.nix +++ b/home/nixvim/default.nix @@ -95,8 +95,8 @@ "" = "cmp.mapping.abort()"; "" = "cmp.mapping.select_next_item()"; "" = "cmp.mapping.select_prev_item()"; - "" = "cmp.mapping.scroll_docs(-4)"; - "" = "cmp.mapping.scroll_docs(4)"; + "" = "cmp.mapping.scroll_docs(-4)"; + "" = "cmp.mapping.scroll_docs(4)"; "" = '' cmp.mapping(function(fallback) if cmp.visible() then @@ -147,7 +147,7 @@ servers = { bashls.enable = true; lua_ls.enable = true; - nil_ls.enable = true; + nixd.enable = true; rust_analyzer = { enable = true; installRustc = true; @@ -163,14 +163,20 @@ plugins.fzf-lua = { enable = true; keymaps = { - "ff" = "git_files"; + "ff" = "files"; "fg" = "live_grep"; }; }; plugins.neo-tree = { enable = true; - closeIfLastWindow = true; + buffers.followCurrentFile.enabled = true; + window.width = 30; + }; + + plugins.gitsigns = { + enable = true; + settings.current_line_blame = true; }; plugins.cmp-buffer.enable = true; @@ -182,6 +188,8 @@ plugins.nvim-autopairs.enable = true; plugins.rainbow-delimiters.enable = true; plugins.web-devicons.enable = true; - plugins.gitsigns.enable = true; + plugins.auto-save.enable = true; + plugins.indent-blankline.enable = true; + plugins.undotree.enable = true; }; } diff --git a/home/vscode.nix b/home/vscode.nix new file mode 100644 index 0000000..6f099d7 --- /dev/null +++ b/home/vscode.nix @@ -0,0 +1,17 @@ +{pkgs, ...}: { + programs.vscode = { + enable = true; + package = pkgs.vscodium; + enableUpdateCheck = false; + enableExtensionUpdateCheck = false; + mutableExtensionsDir = false; + extensions = with pkgs.vscode-extensions; [ + vscodevim.vim + jnoortheen.nix-ide # nix language support + editorconfig.editorconfig # editorconfig + dracula-theme.theme-dracula # color scheme + tomoki1207.pdf # pdf viewer + yzhang.markdown-all-in-one # markdown tools + ]; + }; +} diff --git a/home/yt/codespace.nix b/home/yt/codespace.nix new file mode 100644 index 0000000..6720c17 --- /dev/null +++ b/home/yt/codespace.nix @@ -0,0 +1,22 @@ +{ + pkgs, + ... +}: +{ + imports = [ + ./common.nix + ]; + home = { + username = "codespace"; + homeDirectory = "/home/codespace"; + stateVersion = "24.05"; + }; + programs.home-manager.enable = true; + + systemd.user.startServices = "sd-switch"; + + home.packages = with pkgs; [ + foot.terminfo + attic-client + ]; +} diff --git a/home/yt/common.nix b/home/yt/common.nix index b4894d5..77c98fe 100644 --- a/home/yt/common.nix +++ b/home/yt/common.nix @@ -30,7 +30,7 @@ programs.git = { enable = true; userName = "cy"; - userEmail = "hi@cything.io"; + userEmail = "cy@cy7.sh"; delta = { enable = true; options = { diff --git a/home/yt/ytnix.nix b/home/yt/ytnix.nix index 67f448d..8a725fe 100644 --- a/home/yt/ytnix.nix +++ b/home/yt/ytnix.nix @@ -138,4 +138,9 @@ }; services.gnome-keyring.enable = true; + + programs.direnv = { + enable = true; + nix-direnv.enable = true; + }; } diff --git a/home/zsh/default.nix b/home/zsh/default.nix index 2dd2a84..c1df4e8 100644 --- a/home/zsh/default.nix +++ b/home/zsh/default.nix @@ -116,4 +116,5 @@ programs.zoxide.enableZshIntegration = true; programs.eza.enableZshIntegration = true; programs.nix-index.enableZshIntegration = false; + programs.direnv.enableZshIntegration = false; } diff --git a/hosts/chunk/forgejo.nix b/hosts/chunk/forgejo.nix index 5b8ad1d..0b644a2 100644 --- a/hosts/chunk/forgejo.nix +++ b/hosts/chunk/forgejo.nix @@ -10,7 +10,7 @@ HTTP_PORT = 3000; HTTP_ADDR = "127.0.0.1"; DOMAIN = "git.cy7.sh"; - LANDING_PAGE = "/cy"; + LANDING_PAGE = "explore"; }; session.COOKIE_SECURE = true; service.DISABLE_REGISTRATION = true;