diff options
Diffstat (limited to 'nix/modules/default.nix')
-rw-r--r-- | nix/modules/default.nix | 162 |
1 files changed, 9 insertions, 153 deletions
diff --git a/nix/modules/default.nix b/nix/modules/default.nix index db5f82e..9d06837 100644 --- a/nix/modules/default.nix +++ b/nix/modules/default.nix @@ -2,184 +2,40 @@ { imports = [ ./configuration.nix + ./home/home.nix + ./vars.nix ]; options = { monorepo = { - vars = import ./vars.nix; - profiles = { + cuda.enable = lib.mkEnableOption "Enables CUDA support"; documentation.enable = lib.mkEnableOption "Enables documentation on system."; secureBoot.enable = lib.mkEnableOption "Enables secure boot. See sbctl."; pipewire.enable = lib.mkEnableOption "Enables pipewire low latency audio setup"; tor.enable = lib.mkEnableOption "Enables tor along with torsocks"; - - - home = { - enable = lib.mkEnableOption "Enables home manager desktop configuration"; - # Programs - lang-c.enable = lib.mkEnableOption "Enables C language support"; - lang-shell.enable = lib.mkEnableOption "Enables sh language support"; - lang-rust.enable = lib.mkEnableOption "Enables Rust language support"; - lang-python.enable = lib.mkEnableOption "Enables python language support"; - lang-sol.enable = lib.mkEnableOption "Enables solidity language support"; - lang-openscad.enable = lib.mkEnableOption "Enables openscad language support"; - lang-js.enable = lib.mkEnableOption "Enables javascript language support"; - lang-nix.enable = lib.mkEnableOption "Enables nix language support"; - - crypto.enable = lib.mkEnableOption "Enables various cryptocurrency wallets"; - art.enable = lib.mkEnableOption "Enables various art programs"; - music.enable = lib.mkEnableOption "Enables mpd"; - - hyprland = { - enable = lib.mkEnableOption "Enables hyprland"; - monitors = lib.mkOption { - type = lib.types.listOf lib.types.str; - default = [ - "HDMI-A-1" - "eDP-1" - "DP-2" - "DP-3" - "LVDS-1" - ]; - example = []; - description = "Hyprland monitors"; - }; - }; - email = { - email = lib.mkOption { - type = lib.types.str; - default = "ret2pop@gmail.com"; - example = "john@example.com"; - description = "Email address and imaps/smtps account"; - }; - imapsServer = lib.mkOption { - type = lib.types.str; - default = "imap.gmail.com"; - example = "imap.example.com"; - description = "imaps server address"; - }; - smtpsServer = lib.mkOption { - type = lib.types.str; - default = "smtp.gmail.com"; - example = "smtp.example.com"; - description = "smtp server address"; - }; - enable = lib.mkEnableOption "Enables email"; - }; - }; + home.enable = lib.mkEnableOption "Enables home user"; }; }; }; config = { + home-manager.users."${config.monorepo.vars.userName}" = { + programs.home-manager.enable = config.monorepo.profiles.home.enable; + }; + environment.systemPackages = lib.mkIf config.monorepo.profiles.documentation.enable (with pkgs; [ linux-manual man-pages man-pages-posix ]); - home-manager.users."${config.monorepo.vars.userName}".home.packages = lib.flatten [ - (lib.mkIf config.monorepo.home.email.enable [ pkgs.mu ]) - (lib.mkIf config.monorepo.home.lang-c.enable (with pkgs; [ - autobuild - clang - gdb - gnumake - bear - clang-tools - ])) - - (lib.mkIf config.monorepo.home.lang-js.enable (with pkgs; [ - nodejs - bun - yarn - typescript - vscode-langservers-extracted - ])) - - (lib.mkIf config.monorepo.home.lang-rust.enable (with pkgs; [ - cargo - rust-analyzer - rustfmt - ])) - - (lib.mkIf config.monorepo.home.lang-python.enable (with pkgs; [ - poetry - python3 - python312Packages.jedi - ])) - - (lib.mkIf config.monorepo.home.lang-sol.enable (with pkgs; [ - solc - ])) - - (lib.mkIf config.monorepo.home.lang-openscad.enable (with pkgs; [ - openscad - openscad-lsp - ])) - - (lib.mkIf config.monorepo.home.lang-sh.enable (with pkgs; [ - bash-language-server - ])) - - (lib.mkIf config.monorepo.home.lang-nix.enable (with pkgs; [ - nil - nixd - nixfmt-rfc-style - ])) - - (lib.mkIf config.monorepo.home.crypto.enable (with pkgs; [ - bitcoin - electrum - monero-cli - monero-gui - ])) - - (lib.mkIf config.monorepo.home.art.enable (with pkgs; [ - inkscape - krita - ])) - - (lib.mkIf config.monorepo.home.music.enable (with pkgs; [ - mpc-cli - sox - ])) - - (lib.mkIf config.monorepo.tor.enable (with pkgs; [ - tor-browser - torsocks - ])) - - (lib.mkIf config.monorepo.pipewire.enable (with pkgs; [ - helvum - ])) - ]; - monorepo = { profiles = { documentation.enable = lib.mkDefault true; pipewire.enable = lib.mkDefault true; tor.enable = lib.mkDefault true; - home = { - enable = lib.mkDefault true; - music.enable = lib.mkDefault config.monorepo.profiles.pipewire.enable; - hyprland.enable = lib.mkDefault true; - email.enable = lib.mkDefault true; - - # Programming - lang-c.enable = lib.mkDefault true; - lang-rust.enable = lib.mkDefault true; - lang-python.enable = lib.mkDefault true; - lang-sol.enable = lib.mkDefault true; - lang-sh.enable = lib.mkDefault true; - lang-openscad.enable = lib.mkDefault true; - lang-js.enable = lib.mkDefault true; - lang-nix.enable = lib.mkDefault true; - - crypto.enable = lib.mkDefault true; - art.enable = lib.mkDefault true; - }; + home.enable = lib.mkDefault true; }; }; }; |