From 43ed213a93f93f344f9477ecabc295b5b648fba7 Mon Sep 17 00:00:00 2001 From: specCon18 Date: Tue, 18 Apr 2023 02:42:12 -0400 Subject: [PATCH] modularized hosts creatorforge.nix --- flake.nix | 12 ++++- hosts/creatorforge.nix | 64 ------------------------- hosts/creatorforge/creatorforge.nix | 27 +++++++++++ hosts/creatorforge/networkd.nix | 13 +++++ hosts/creatorforge/system-pkgs.nix | 29 +++++++++++ modules/home-manager/dconf-settings.nix | 16 +++++++ modules/home-manager/direnv.nix | 7 +++ modules/home-manager/home-manager.nix | 6 +++ modules/home-manager/ncspot.nix | 7 +++ modules/home-manager/nushell.nix | 6 +++ modules/home-manager/starship.nix | 8 ++++ modules/home-manager/zellij.nix | 7 +++ modules/home-manager/zoxide.nix | 8 ++++ users/speccon18/home.nix | 59 +---------------------- 14 files changed, 146 insertions(+), 123 deletions(-) delete mode 100644 hosts/creatorforge.nix create mode 100644 hosts/creatorforge/creatorforge.nix create mode 100644 hosts/creatorforge/networkd.nix create mode 100644 hosts/creatorforge/system-pkgs.nix create mode 100644 modules/home-manager/dconf-settings.nix create mode 100644 modules/home-manager/direnv.nix create mode 100644 modules/home-manager/home-manager.nix create mode 100644 modules/home-manager/ncspot.nix create mode 100644 modules/home-manager/nushell.nix create mode 100644 modules/home-manager/starship.nix create mode 100644 modules/home-manager/zellij.nix create mode 100644 modules/home-manager/zoxide.nix diff --git a/flake.nix b/flake.nix index 1000b01..f3a95a5 100644 --- a/flake.nix +++ b/flake.nix @@ -80,7 +80,9 @@ [ nixos-hardware.nixosModules.framework-12th-gen-intel disko.nixosModules.disko - ./hosts/creatorforge.nix + ./hosts/creatorforge/creatorforge.nix + ./hosts/creatorforge/networkd.nix + ./hosts/creatorforge/system-pkgs.nix ./modules/system/services/docker.nix ./modules/system/services/openssh.nix ./modules/system/desktop-environments/gnome.nix @@ -92,6 +94,14 @@ ./modules/home-manager/vscode.nix ./modules/home-manager/zsh.nix ./modules/home-manager/git.nix + ./modules/home-manager/zoxide.nix + ./modules/home-manager/ncspot.nix + ./modules/home-manager/zellij.nix + ./modules/home-manager/nushell.nix + ./modules/home-manager/direnv.nix + ./modules/home-manager/home-manager.nix + ./modules/home-manager/starship.nix + ./modules/home-manager/dconf-settings.nix ]; #extra modules to be loaded by home-manager }; }; diff --git a/hosts/creatorforge.nix b/hosts/creatorforge.nix deleted file mode 100644 index 7446211..0000000 --- a/hosts/creatorforge.nix +++ /dev/null @@ -1,64 +0,0 @@ -{ modulesPath, config, pkgs, lib, self, ... }: - -{ - system.stateVersion = "22.11"; - time.timeZone = "America/Detroit"; - - # Allow non opensource software to be installed - nixpkgs.config.allowUnfree = true; - - nix = { - ## NIX FLAKES ## - package = pkgs.nixUnstable; # or versioned attributes like nix_2_4 - # enable flakes - extraOptions = ''experimental-features = nix-command flakes''; - # auto maintainence - settings.auto-optimise-store = lib.mkDefault true; - # prevent tampering - readOnlyStore = true; - # garbage collections - gc = { - automatic = true; - dates = "weekly"; - options = "--delete-older-than 7d"; - }; - }; - # base packages - environment.systemPackages = with pkgs; [ - ripgrep - tree - cargo - feh - unrar - unzip - gzip - p7zip - bzip2 - dconf2nix - rustc - bat - exa - mdbook - uutils-coreutils - htop - zsh - tailscale - dig #dns lookup - rage #file encryption - age-plugin-yubikey #plugin for rage to manage yubi-2fa - sops #file based secrets operations - direnv #used for development environments - python39 - ] ++ [self.inputs.devenv.packages.x86_64-linux.devenv]; - - networking = { - hostName = "creatorforge"; # Define your hostname. - useDHCP = lib.mkForce true; - firewall = { - enable = true; - allowedTCPPorts = []; - allowedUDPPorts = []; - checkReversePath = "loose"; - }; - }; -} \ No newline at end of file diff --git a/hosts/creatorforge/creatorforge.nix b/hosts/creatorforge/creatorforge.nix new file mode 100644 index 0000000..66687a3 --- /dev/null +++ b/hosts/creatorforge/creatorforge.nix @@ -0,0 +1,27 @@ +{ modulesPath, config, pkgs, lib, self, ... }: + +{ + # Sets the default version to track for system-pkgs + system.stateVersion = "22.11"; + # Set the default timezone + time.timeZone = lib.mkDefault "America/Detroit"; + # Allow non opensource software to be installed + nixpkgs.config.allowUnfree = true; + # NixOS Settings + nix = { + # Sets flakes to unstable track instead of stable # + package = pkgs.nixUnstable; # or versioned attributes like nix_2_4 + # Enable flakes and nix-command + extraOptions = ''experimental-features = nix-command flakes''; + # Auto maintainence + settings.auto-optimise-store = lib.mkDefault true; + # Prevent tampering of the pkgstore + readOnlyStore = true; + # Garbage collection + gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 7d"; + }; + }; +} \ No newline at end of file diff --git a/hosts/creatorforge/networkd.nix b/hosts/creatorforge/networkd.nix new file mode 100644 index 0000000..b124664 --- /dev/null +++ b/hosts/creatorforge/networkd.nix @@ -0,0 +1,13 @@ +{ modulesPath, config, pkgs, lib, self, ... }: +{ + networking = { + hostName = "creatorforge"; # Define your hostname. + useDHCP = lib.mkForce true; + firewall = { + enable = true; + allowedTCPPorts = []; + allowedUDPPorts = []; + checkReversePath = "loose"; + }; + }; +} \ No newline at end of file diff --git a/hosts/creatorforge/system-pkgs.nix b/hosts/creatorforge/system-pkgs.nix new file mode 100644 index 0000000..35d3363 --- /dev/null +++ b/hosts/creatorforge/system-pkgs.nix @@ -0,0 +1,29 @@ +{ modulesPath, config, pkgs, lib, self, ... }: +{ + environment.systemPackages = with pkgs; [ + ripgrep + tree + cargo + feh + unrar + unzip + gzip + p7zip + bzip2 + dconf2nix + rustc + bat + exa + mdbook + uutils-coreutils + htop + zsh + tailscale + dig #dns lookup + rage #file encryption + age-plugin-yubikey #plugin for rage to manage yubi-2fa + sops #file based secrets operations + direnv #used for development environments + python39 + ]; +} \ No newline at end of file diff --git a/modules/home-manager/dconf-settings.nix b/modules/home-manager/dconf-settings.nix new file mode 100644 index 0000000..6082cdf --- /dev/null +++ b/modules/home-manager/dconf-settings.nix @@ -0,0 +1,16 @@ +{ pkgs, config, lib, ...}: +{ + dconf = { + enable = true; + settings = { + "org/gnome/mutter" = { + attach-modal-dialogs = true; + dynamic-workspaces = true; + edge-tiling = false; + experimental-features = [ "scale-monitor-framebuffer" ]; + focus-change-on-pointer-rest = true; + workspaces-only-on-primary = true; + }; + }; + }; +} \ No newline at end of file diff --git a/modules/home-manager/direnv.nix b/modules/home-manager/direnv.nix new file mode 100644 index 0000000..f4b6c67 --- /dev/null +++ b/modules/home-manager/direnv.nix @@ -0,0 +1,7 @@ +{ pkgs, config, lib, ...}: +{ + programs.direnv = { + enable = true; + enableZshIntegration = lib.mkDefault true; + }; +} \ No newline at end of file diff --git a/modules/home-manager/home-manager.nix b/modules/home-manager/home-manager.nix new file mode 100644 index 0000000..4c2e02d --- /dev/null +++ b/modules/home-manager/home-manager.nix @@ -0,0 +1,6 @@ +{ pkgs, config, lib, ...}: +{ + programs.home-manager = { + enable = true; + }; +} \ No newline at end of file diff --git a/modules/home-manager/ncspot.nix b/modules/home-manager/ncspot.nix new file mode 100644 index 0000000..e50ccad --- /dev/null +++ b/modules/home-manager/ncspot.nix @@ -0,0 +1,7 @@ +{ pkgs, config, lib, ...}: +{ + programs.ncspot = { + enable = true; + package = pkgs.ncspot; + }; +} \ No newline at end of file diff --git a/modules/home-manager/nushell.nix b/modules/home-manager/nushell.nix new file mode 100644 index 0000000..c891a86 --- /dev/null +++ b/modules/home-manager/nushell.nix @@ -0,0 +1,6 @@ +{ pkgs, config, lib, ...}: +{ + programs.nushell = { + enable = false; + }; +} \ No newline at end of file diff --git a/modules/home-manager/starship.nix b/modules/home-manager/starship.nix new file mode 100644 index 0000000..ff0b8b6 --- /dev/null +++ b/modules/home-manager/starship.nix @@ -0,0 +1,8 @@ +{ pkgs, config, lib, ...}: +{ + programs.starship = { + enable = true; + enableZshIntegration = true; + enableNushellIntegration = false; + }; +} \ No newline at end of file diff --git a/modules/home-manager/zellij.nix b/modules/home-manager/zellij.nix new file mode 100644 index 0000000..2768c18 --- /dev/null +++ b/modules/home-manager/zellij.nix @@ -0,0 +1,7 @@ +{ pkgs, config, lib, ...}: +{ + programs.zellij = { + enable = true; + package = pkgs.zellij; + }; +} \ No newline at end of file diff --git a/modules/home-manager/zoxide.nix b/modules/home-manager/zoxide.nix new file mode 100644 index 0000000..a22f922 --- /dev/null +++ b/modules/home-manager/zoxide.nix @@ -0,0 +1,8 @@ +{ pkgs, config, lib, ...}: +{ + programs.zoxide = { + enable = true; + enableZshIntegration = lib.mkDefault true; +# enableNushellIntegration = false; + }; +} \ No newline at end of file diff --git a/users/speccon18/home.nix b/users/speccon18/home.nix index f998961..78d29f1 100644 --- a/users/speccon18/home.nix +++ b/users/speccon18/home.nix @@ -31,62 +31,5 @@ xplr broot ]; - }; - - programs = { - zoxide = { - enable = true; - enableZshIntegration = lib.mkDefault true; -# enableNushellIntegration = false; - }; - ncspot = { - enable = true; - package = pkgs.ncspot; - }; - - zellij = { - enable = true; - package = pkgs.zellij; - }; - nushell = { - enable = false; - }; - starship = { - enable = true; - enableZshIntegration = true; - enableNushellIntegration = false; - }; - - direnv = { - enable = true; - enableZshIntegration = lib.mkDefault true; - }; - home-manager = { - enable = true; - }; - - git = { - enable = true; - userName = "specCon18"; - userEmail = "steven.carpenter@skdevstudios.com"; - extraConfig = { - init = { - defaultBranch = "main"; - }; - }; - }; - }; - dconf = { - enable = true; - settings = { - "org/gnome/mutter" = { - attach-modal-dialogs = true; - dynamic-workspaces = true; - edge-tiling = false; - experimental-features = [ "scale-monitor-framebuffer" ]; - focus-change-on-pointer-rest = true; - workspaces-only-on-primary = true; - }; - }; - }; + }; }