diff --git a/flake.lock b/flake.lock index 996f82c..fde4e07 100644 --- a/flake.lock +++ b/flake.lock @@ -328,17 +328,17 @@ "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1709227340, - "narHash": "sha256-uzvnQOTiRA5varexAPU5pUhGIYTGj/z4Peyg/pIkkJk=", + "lastModified": 1709674014, + "narHash": "sha256-JUEESYa5u5pLjBNqy7mN3pFv6176skfYBixtC+1Ph0Q=", "ref": "refs/heads/master", - "rev": "491985a4a372b1236526a007d297976767a6b728", - "revCount": 18, + "rev": "1f3ba170caa4dfd8d09b07d8f1a3dc4ff3bf76d1", + "revCount": 26, "type": "git", - "url": "ssh://gitea@pi1.odie.intranet/odie/neovim-flake" + "url": "ssh://gitea@pi1.odie.intranet/odie/neovim-flake.git" }, "original": { "type": "git", - "url": "ssh://gitea@pi1.odie.intranet/odie/neovim-flake" + "url": "ssh://gitea@pi1.odie.intranet/odie/neovim-flake.git" } }, "neovim-flake": { diff --git a/flake.nix b/flake.nix index a42f1c7..d8cbe29 100644 --- a/flake.nix +++ b/flake.nix @@ -12,7 +12,7 @@ url = "github:nix-community/neovim-nightly-overlay"; }; neovim = { - url = "git+ssh://gitea@pi1.odie.intranet/odie/neovim-flake"; + url = "git+ssh://gitea@pi1.odie.intranet/odie/neovim-flake.git"; #url = "/home/odie/Code/nix/neovim-config"; }; nur.url = "github:nix-community/NUR"; @@ -52,19 +52,44 @@ inherit system overlays; config.allowUnfree = true; }; + pkgs = mkPkgs "x86_64-linux"; + extraSpecialArgs = { inherit inputs outputs vars; }; in rec { - homeManagerModules = rec { - full = [ - (import ./modules) - ]; + homeModules = rec { + base = import ./modules/base.nix; + gui = import ./modules/gui.nix; + shell = import ./modules/shell.nix; + dev = import ./modules/dev.nix; }; - homeConfigurations = { - "odie-full" = home-manager.lib.homeManagerConfiguration { - pkgs = mkPkgs "x86_64-linux"; - extraSpecialArgs = { inherit inputs outputs vars; }; - modules = homeManagerModules.full; + homeConfigurations = rec { + odie-shell = home-manager.lib.homeManagerConfiguration { + inherit pkgs extraSpecialArgs; + modules = [ + homeModules.base + homeModules.shell + ]; }; + odie-dev = home-manager.lib.homeManagerConfiguration { + inherit pkgs extraSpecialArgs; + modules = [ + inputs.neovim.homeModules.neovim-ide + homeModules.base + homeModules.shell + homeModules.dev + ]; + }; + odie-gui = home-manager.lib.homeManagerConfiguration { + inherit pkgs extraSpecialArgs; + modules = [ + inputs.neovim.homeModules.neovim-ide + homeModules.base + homeModules.shell + homeModules.dev + homeModules.gui + ]; + }; + odie = odie-gui; }; } // flake-utils.lib.eachDefaultSystem (system: diff --git a/modules/default.nix b/modules/base.nix similarity index 61% rename from modules/default.nix rename to modules/base.nix index da8fd9c..9d38e23 100644 --- a/modules/default.nix +++ b/modules/base.nix @@ -8,17 +8,6 @@ stateVersion = "23.05"; }; - imports = [ - ./shell - ./gui - ./mpd - ./development - inputs.neovim.homeModules.default - ]; - - programs.neovim-ide.enable = lib.mkDefault true; - programs.kitty.enable = lib.mkForce true; - news = { display = "silent"; json = lib.mkForce { }; diff --git a/modules/dev.nix b/modules/dev.nix new file mode 100644 index 0000000..21fb97a --- /dev/null +++ b/modules/dev.nix @@ -0,0 +1,5 @@ +{ pkgs, lib, inputs, vars, ... }: with lib; { + imports = [ + ./development + ]; +} diff --git a/modules/development/default.nix b/modules/development/default.nix index 719ece5..6bcf5f6 100644 --- a/modules/development/default.nix +++ b/modules/development/default.nix @@ -1,5 +1,10 @@ _: { imports = [ - ./rust.nix + ./gitea-cli + ./neovim-ide + ./nix ]; + + programs.lazygit.enable = true; + programs.gitea-cli.enable = true; } diff --git a/modules/development/gitea/default.nix b/modules/development/gitea/default.nix new file mode 100644 index 0000000..3475c07 --- /dev/null +++ b/modules/development/gitea/default.nix @@ -0,0 +1,10 @@ +{ lib, pkgs, config, ... }: { + options = { + programs.gitea-cli.enable = lib.mkEnableOption "gitea-cli"; + }; + config = lib.mkIf config.programs.gitea-cli.enable { + home.packages = with pkgs; [ + tea + ]; + }; +} diff --git a/modules/development/neovim-ide/default.nix b/modules/development/neovim-ide/default.nix new file mode 100644 index 0000000..1ddeb45 --- /dev/null +++ b/modules/development/neovim-ide/default.nix @@ -0,0 +1,3 @@ +{ lib, ... }: { + programs.neovim-ide.enable = lib.mkDefault true; +} diff --git a/modules/development/nixos/default.nix b/modules/development/nixos/default.nix new file mode 100644 index 0000000..70b8d12 --- /dev/null +++ b/modules/development/nixos/default.nix @@ -0,0 +1,8 @@ +_: { + nix = { + extraOptions = '' + keep-outputs = true + keep-derivations = true + ''; + }; +} diff --git a/modules/development/rust.nix b/modules/development/rust.nix deleted file mode 100644 index f7326a4..0000000 --- a/modules/development/rust.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ pkgs, config, lib, ... }: { - options = { - development.rust.enable = lib.mkEnableOption "rust development"; - }; - config = lib.mkIf config.development.rust.enable { - home.packages = with pkgs; [ - rustc - cargo - rust-analyzer - clippy - rustfmt - ]; - }; -} diff --git a/modules/gui.nix b/modules/gui.nix new file mode 100644 index 0000000..f07b0a8 --- /dev/null +++ b/modules/gui.nix @@ -0,0 +1,14 @@ +{ pkgs, lib, inputs, vars, ... }: with lib; { + imports = [ + ./gui + ./mpd + ]; + + programs.kitty.enable = lib.mkForce true; + + news = { + display = "silent"; + json = lib.mkForce { }; + entries = lib.mkForce [ ]; + }; +} diff --git a/modules/gui/default.nix b/modules/gui/default.nix index 72075e7..f74da75 100644 --- a/modules/gui/default.nix +++ b/modules/gui/default.nix @@ -1,17 +1,22 @@ -{ lib, ... }: { - imports = [ - ./firefox.nix - ./keepassxc.nix - ./kitty.nix - ./nextcloud-client.nix - ]; - programs = { - keepassxc.enable = lib.mkDefault true; - firefox.enable = lib.mkDefault true; - kitty.enable = lib.mkDefault false; +{ lib, config, ... }: { + options = { + gui.enable = lib.mkEnableOption "gui"; }; - services = { - nextcloud-client.enable = lib.mkDefault false; - udiskie.enable = lib.mkDefault false; + config = lib.mkIf config.gui.enable { + imports = [ + ./firefox.nix + ./keepassxc.nix + ./kitty.nix + ./nextcloud-client.nix + ]; + programs = { + keepassxc.enable = lib.mkDefault true; + firefox.enable = lib.mkDefault true; + kitty.enable = lib.mkDefault false; + }; + services = { + nextcloud-client.enable = lib.mkDefault false; + udiskie.enable = lib.mkDefault false; + }; }; } diff --git a/modules/shell.nix b/modules/shell.nix new file mode 100644 index 0000000..5159b60 --- /dev/null +++ b/modules/shell.nix @@ -0,0 +1,5 @@ +_: { + imports = [ + ./shell + ]; +} diff --git a/modules/shell/ssh.nix b/modules/shell/ssh.nix index b28b1b5..42dd0fc 100644 --- a/modules/shell/ssh.nix +++ b/modules/shell/ssh.nix @@ -2,11 +2,11 @@ home.packages = with pkgs; [ tea ]; programs = { ssh = { - #addKeysToAgent = "yes"; + addKeysToAgent = "yes"; forwardAgent = true; - extraConfig = '' - AddKeysToAgent yes - ''; + # extraConfig = '' + # AddKeysToAgent yes + # ''; }; }; diff --git a/modules/shell/zoxide.nix b/modules/shell/zoxide.nix index f6f6d13..34827d1 100644 --- a/modules/shell/zoxide.nix +++ b/modules/shell/zoxide.nix @@ -2,6 +2,9 @@ programs = { zoxide = { enableZshIntegration = true; + options = [ + "--cmd cd" + ]; }; }; }