Compare commits
	
		
			8 Commits
		
	
	
		
			anime-game
			...
			home-assis
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 7081c58bd1 | |||
| 0fbd897b60 | |||
| 76ff89d7f6 | |||
| 2544ef3d94 | |||
| a7d2db9c84 | |||
| db244dc7ea | |||
| 734338f51e | |||
| 90931e37ff | 
@@ -47,7 +47,7 @@
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
          home-manager.useGlobalPkgs = true;
 | 
					          home-manager.useGlobalPkgs = true;
 | 
				
			||||||
          home-manager.useUserPackages = true;
 | 
					          home-manager.useUserPackages = true;
 | 
				
			||||||
          home-manager.extraSpecialArgs = extraSpecialArgs;
 | 
					          home-manager.extraSpecialArgs = extraSpecialArgs // { role = "devel"; };
 | 
				
			||||||
          home-manager.users.${userName} = import ./home;
 | 
					          home-manager.users.${userName} = import ./home;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      ];
 | 
					      ];
 | 
				
			||||||
@@ -70,7 +70,7 @@
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
          home-manager.useGlobalPkgs = true;
 | 
					          home-manager.useGlobalPkgs = true;
 | 
				
			||||||
          home-manager.useUserPackages = true;
 | 
					          home-manager.useUserPackages = true;
 | 
				
			||||||
          home-manager.extraSpecialArgs = extraSpecialArgs;
 | 
					          home-manager.extraSpecialArgs = extraSpecialArgs // { role = "devel"; };
 | 
				
			||||||
          home-manager.users.${userName}.imports = [
 | 
					          home-manager.users.${userName}.imports = [
 | 
				
			||||||
            ./home
 | 
					            ./home
 | 
				
			||||||
          ];
 | 
					          ];
 | 
				
			||||||
@@ -94,7 +94,7 @@
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
          home-manager.useGlobalPkgs = true;
 | 
					          home-manager.useGlobalPkgs = true;
 | 
				
			||||||
          home-manager.useUserPackages = true;
 | 
					          home-manager.useUserPackages = true;
 | 
				
			||||||
          home-manager.extraSpecialArgs = extraSpecialArgs;
 | 
					          home-manager.extraSpecialArgs = extraSpecialArgs // { role = "server"; };
 | 
				
			||||||
          home-manager.users.${userName}.imports = [
 | 
					          home-manager.users.${userName}.imports = [
 | 
				
			||||||
            ./home
 | 
					            ./home
 | 
				
			||||||
          ];
 | 
					          ];
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
 | 
					  role,
 | 
				
			||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
  lib,
 | 
					  lib,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
@@ -9,7 +10,7 @@
 | 
				
			|||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  programs.chromium = {
 | 
					  programs.chromium = {
 | 
				
			||||||
    enable = pkgs.stdenv.isLinux;
 | 
					    enable = pkgs.stdenv.isLinux && role == "devel";
 | 
				
			||||||
    package = pkgs.ungoogled-chromium.override {
 | 
					    package = pkgs.ungoogled-chromium.override {
 | 
				
			||||||
      enableWideVine = true;
 | 
					      enableWideVine = true;
 | 
				
			||||||
      commandLineArgs = [
 | 
					      commandLineArgs = [
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,6 +4,7 @@
 | 
				
			|||||||
  userName,
 | 
					  userName,
 | 
				
			||||||
  userEmail,
 | 
					  userEmail,
 | 
				
			||||||
  ghostty,
 | 
					  ghostty,
 | 
				
			||||||
 | 
					  role,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}: let
 | 
					}: let
 | 
				
			||||||
  # Have a file sturcture that holds all the configuration files that can't be configured by Nix
 | 
					  # Have a file sturcture that holds all the configuration files that can't be configured by Nix
 | 
				
			||||||
@@ -13,7 +14,7 @@
 | 
				
			|||||||
  };
 | 
					  };
 | 
				
			||||||
in {
 | 
					in {
 | 
				
			||||||
  # Import sub modules
 | 
					  # Import sub modules
 | 
				
			||||||
  imports = map (module: import module {inherit lib pkgs dirs userName userEmail ghostty;}) [
 | 
					  imports = map (module: import module {inherit lib pkgs dirs userName userEmail ghostty role;}) [
 | 
				
			||||||
    ./atuin.nix
 | 
					    ./atuin.nix
 | 
				
			||||||
    ./shell.nix
 | 
					    ./shell.nix
 | 
				
			||||||
    ./packages
 | 
					    ./packages
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,10 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  lib,
 | 
					  lib,
 | 
				
			||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  role,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}: let
 | 
					}: let
 | 
				
			||||||
 | 
					  isDevel = pkgs.stdenv.isLinux && role == "devel";
 | 
				
			||||||
  dirs = {
 | 
					  dirs = {
 | 
				
			||||||
    defaults = ../defaults;
 | 
					    defaults = ../defaults;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
@@ -16,7 +18,7 @@
 | 
				
			|||||||
  };
 | 
					  };
 | 
				
			||||||
in {
 | 
					in {
 | 
				
			||||||
  wayland.windowManager.sway = {
 | 
					  wayland.windowManager.sway = {
 | 
				
			||||||
    enable = pkgs.stdenv.isLinux;
 | 
					    enable = isDevel;
 | 
				
			||||||
    extraOptions = []; # Extra arguments to pass into sway. If sway goes haywire, we might need something in here
 | 
					    extraOptions = []; # Extra arguments to pass into sway. If sway goes haywire, we might need something in here
 | 
				
			||||||
    xwayland = true;
 | 
					    xwayland = true;
 | 
				
			||||||
    systemd.enable = true;
 | 
					    systemd.enable = true;
 | 
				
			||||||
@@ -29,11 +31,11 @@ in {
 | 
				
			|||||||
  xdg.configFile."sway/config".source = lib.mkForce (dirs.defaults + /sway/config);
 | 
					  xdg.configFile."sway/config".source = lib.mkForce (dirs.defaults + /sway/config);
 | 
				
			||||||
  xdg.configFile."waybar/config".source = lib.mkForce (dirs.defaults + /waybar/config);
 | 
					  xdg.configFile."waybar/config".source = lib.mkForce (dirs.defaults + /waybar/config);
 | 
				
			||||||
  xdg.configFile."waybar/style.css".source = lib.mkForce (dirs.defaults + /waybar/style.css);
 | 
					  xdg.configFile."waybar/style.css".source = lib.mkForce (dirs.defaults + /waybar/style.css);
 | 
				
			||||||
  programs.rofi.enable = pkgs.stdenv.isLinux;
 | 
					  programs.rofi.enable = isDevel;
 | 
				
			||||||
  services.mako.enable = pkgs.stdenv.isLinux;
 | 
					  services.mako.enable = isDevel;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  programs.waybar = {
 | 
					  programs.waybar = {
 | 
				
			||||||
    enable = pkgs.stdenv.isLinux;
 | 
					    enable = isDevel;
 | 
				
			||||||
    systemd.enable = true;
 | 
					    systemd.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    package = pkgs.waybar.overrideAttrs (old: {
 | 
					    package = pkgs.waybar.overrideAttrs (old: {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -87,7 +87,12 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  # Core networking module (see ../../networking/core.nix)
 | 
					  # Core networking module (see ../../networking/core.nix)
 | 
				
			||||||
  network = {
 | 
					  network = {
 | 
				
			||||||
    firewall.enable = true;
 | 
					    firewall = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      tcpPorts = {
 | 
				
			||||||
 | 
					        allowedPorts = [8123];
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
    networkManager.enable = true;
 | 
					    networkManager.enable = true;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -97,7 +102,37 @@
 | 
				
			|||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Add username to groups "wheel" and "video" - more may be added here later
 | 
					  # Add username to groups "wheel" and "video" - more may be added here later
 | 
				
			||||||
  users.users.${userName}.extraGroups = ["wheel" "podman" "network"];
 | 
					  users.users.${userName} = { 
 | 
				
			||||||
 | 
					    extraGroups = ["wheel" "podman" "network"]; 
 | 
				
			||||||
 | 
					    openssh.authorizedKeys.keys = [
 | 
				
			||||||
 | 
					      "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFV9eSc9L+aJLoKoexq2f/jb5rpyZnhuGiyhS8YQAbaS wyatt@wyattjmiller.com"
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  users.users.root.openssh.authorizedKeys.keys = [
 | 
				
			||||||
 | 
					    "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFV9eSc9L+aJLoKoexq2f/jb5rpyZnhuGiyhS8YQAbaS wyatt@wyattjmiller.com"
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Add Home Assistant service
 | 
				
			||||||
 | 
					  services.home-assistant = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    extraComponents = [
 | 
				
			||||||
 | 
					      "esphome"
 | 
				
			||||||
 | 
					      "met"
 | 
				
			||||||
 | 
					      "radio_browser"
 | 
				
			||||||
 | 
					      "homeassistant_hardware"
 | 
				
			||||||
 | 
					      "zha"
 | 
				
			||||||
 | 
					      "group"
 | 
				
			||||||
 | 
					      "mikrotik"
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					    config = {
 | 
				
			||||||
 | 
					      # Includes dependencies for a basic setup
 | 
				
			||||||
 | 
					      # https://www.home-assistant.io/integrations/default_config/
 | 
				
			||||||
 | 
					      default_config = {};
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  security.sudo.wheelNeedsPassword = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  system.stateVersion = "24.11";
 | 
					  system.stateVersion = "24.11";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user