Compare commits
	
		
			2 commits
		
	
	
		
			70347dd40b
			...
			078657f1e2
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 078657f1e2 | |||
| 77c95c1140 | 
					 7 changed files with 89 additions and 68 deletions
				
			
		| 
						 | 
					@ -1,16 +1,5 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  lib,
 | 
					  lib,
 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  inputs,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  namespace, # The flake namespace, set in flake.nix. If not set, defaults to "internal".
 | 
					 | 
				
			||||||
  system,
 | 
					 | 
				
			||||||
  target, # The Snowfall Lib target for this home (eg. `x86_64-home`).
 | 
					 | 
				
			||||||
  format, # A normalized name for the home target (eg. `home`).
 | 
					 | 
				
			||||||
  virtual, # A boolean to determine whether this home is a virtual target using nixos-generators.
 | 
					 | 
				
			||||||
  host, # The host name for this home.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}: {
 | 
					}: {
 | 
				
			||||||
  home.file.".config/fish/themes/Catppuccin\ Frappe.theme".source = lib.snowfall.fs.get-file "resources/apps/fish/Catppuccin\ Frappe.theme";
 | 
					  home.file.".config/fish/themes/Catppuccin\ Frappe.theme".source = lib.snowfall.fs.get-file "resources/apps/fish/Catppuccin\ Frappe.theme";
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,15 +1,7 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  lib,
 | 
					  lib,
 | 
				
			||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
  inputs,
 | 
					  namespace,
 | 
				
			||||||
 | 
					 | 
				
			||||||
  namespace, # The flake namespace, set in flake.nix. If not set, defaults to "internal".
 | 
					 | 
				
			||||||
  system, # The system architecture for this host (eg. `x86_64-linux`).
 | 
					 | 
				
			||||||
  target, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
 | 
					 | 
				
			||||||
  format, # A normalized name for the system target (eg. `iso`).
 | 
					 | 
				
			||||||
  virtual, # A boolean to determine whether this system is a virtual target using nixos-generators.
 | 
					 | 
				
			||||||
  systems, # An attribute map of your defined hosts.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  config,
 | 
					  config,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}: with lib; with lib.${namespace};
 | 
					}: with lib; with lib.${namespace};
 | 
				
			||||||
| 
						 | 
					@ -20,7 +12,7 @@ in {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  config = mkIf cfg.enable {
 | 
					  config = mkIf cfg.enable {
 | 
				
			||||||
    environment.sessionVariables = {
 | 
					    environment.sessionVariables = {
 | 
				
			||||||
      NIXOS_OZONE_WL = "1"; # Chromium/Electron native Wayland support
 | 
					      NIXOS_OZONE_WL = "0"; # Chromium/Electron native Wayland support (Buggy)
 | 
				
			||||||
      MOZ_ENABLE_WAYLAND = "1"; # Firefox native Wayland support
 | 
					      MOZ_ENABLE_WAYLAND = "1"; # Firefox native Wayland support
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,6 +25,9 @@ in {
 | 
				
			||||||
        kernel.enable = true; # Kernel modifications
 | 
					        kernel.enable = true; # Kernel modifications
 | 
				
			||||||
        bluetooth.enable = true; # Bluetooth support
 | 
					        bluetooth.enable = true; # Bluetooth support
 | 
				
			||||||
        shell.enable = true; # Shell environment configuration
 | 
					        shell.enable = true; # Shell environment configuration
 | 
				
			||||||
 | 
					        hardware.enable = true; # Common hardware support and tweaks
 | 
				
			||||||
 | 
					        fonts.enable = true; # Common fonts and font management tweaks
 | 
				
			||||||
 | 
					        audio.enable = true; # Audio setup
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      desktop.gnome.enable = true;
 | 
					      desktop.gnome.enable = true;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										24
									
								
								modules/nixos/common/audio/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								modules/nixos/common/audio/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,24 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  lib,
 | 
				
			||||||
 | 
					  inputs,
 | 
				
			||||||
 | 
					  namespace,
 | 
				
			||||||
 | 
					  config,
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}: with lib; with lib.${namespace};
 | 
				
			||||||
 | 
					let
 | 
				
			||||||
 | 
					  cfg = config.${namespace}.common.audio;
 | 
				
			||||||
 | 
					in {
 | 
				
			||||||
 | 
					  options.${namespace}.common.audio = { enable = mkEnableOption "whether to enable common audio support and tweaks"; };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  config = mkIf cfg.enable {
 | 
				
			||||||
 | 
					    hardware.pulseaudio.enable = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    security.rtkit.enable = true;
 | 
				
			||||||
 | 
					    services.pipewire = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      alsa.enable = true;
 | 
				
			||||||
 | 
					      alsa.support32Bit = true;
 | 
				
			||||||
 | 
					      pulse.enable = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,15 +1,7 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  lib,
 | 
					  lib,
 | 
				
			||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
  inputs,
 | 
					  namespace,
 | 
				
			||||||
 | 
					 | 
				
			||||||
  namespace, # The flake namespace, set in flake.nix. If not set, defaults to "internal".
 | 
					 | 
				
			||||||
  system, # The system architecture for this host (eg. `x86_64-linux`).
 | 
					 | 
				
			||||||
  target, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
 | 
					 | 
				
			||||||
  format, # A normalized name for the system target (eg. `iso`).
 | 
					 | 
				
			||||||
  virtual, # A boolean to determine whether this system is a virtual target using nixos-generators.
 | 
					 | 
				
			||||||
  systems, # An attribute map of your defined hosts.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  config,
 | 
					  config,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}: with lib; with lib.${namespace};
 | 
					}: with lib; with lib.${namespace};
 | 
				
			||||||
| 
						 | 
					@ -19,6 +11,8 @@ in {
 | 
				
			||||||
  options.${namespace}.common.bluetooth = { enable = mkEnableOption "Enable bluetooth support on your current system"; };
 | 
					  options.${namespace}.common.bluetooth = { enable = mkEnableOption "Enable bluetooth support on your current system"; };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  config = mkIf cfg.enable {
 | 
					  config = mkIf cfg.enable {
 | 
				
			||||||
 | 
					    environment.systemPackages = with pkgs; [ bluez ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    hardware.bluetooth = {
 | 
					    hardware.bluetooth = {
 | 
				
			||||||
      enable = true;
 | 
					      enable = true;
 | 
				
			||||||
      powerOnBoot = true;
 | 
					      powerOnBoot = true;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										37
									
								
								modules/nixos/common/fonts/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								modules/nixos/common/fonts/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,37 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  lib,
 | 
				
			||||||
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  namespace,
 | 
				
			||||||
 | 
					  config,
 | 
				
			||||||
 | 
					  options,
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}: with lib; with lib.${namespace};
 | 
				
			||||||
 | 
					let
 | 
				
			||||||
 | 
					  cfg = config.${namespace}.system.fonts;
 | 
				
			||||||
 | 
					in {
 | 
				
			||||||
 | 
					  options.${namespace}.system.fonts = {
 | 
				
			||||||
 | 
					    enable = mkEnableOption "Enable system font management";
 | 
				
			||||||
 | 
					    fonts = mkOption {
 | 
				
			||||||
 | 
					      type = types.package;
 | 
				
			||||||
 | 
					      default = [ ];
 | 
				
			||||||
 | 
					      example = [ noto-fonts noto-fonts-emoji ];
 | 
				
			||||||
 | 
					      description = "Install additional font packages";
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  config = mkIf cfg.enable {
 | 
				
			||||||
 | 
					    environment.variables = {
 | 
				
			||||||
 | 
					      LOG_ICONS = "true"; # Enable icons in tooling (requires nerdfonts)
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    environment.systemPackages = with pkgs; [ font-manager ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    fonts.packages = with pkgs; [
 | 
				
			||||||
 | 
					      noto-fonts
 | 
				
			||||||
 | 
					      noto-fonts-cjk-sans
 | 
				
			||||||
 | 
					      noto-fonts-cjk-serif
 | 
				
			||||||
 | 
					      noto-fonts-emoji
 | 
				
			||||||
 | 
					      (nerdfonts.override { fonts = [ "Hack" ]; })
 | 
				
			||||||
 | 
					    ] ++ cfg.fonts;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										18
									
								
								modules/nixos/common/hardware/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								modules/nixos/common/hardware/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  lib,
 | 
				
			||||||
 | 
					  inputs,
 | 
				
			||||||
 | 
					  namespace,
 | 
				
			||||||
 | 
					  config,
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}: with lib; with lib.${namespace};
 | 
				
			||||||
 | 
					let
 | 
				
			||||||
 | 
					  cfg = config.${namespace}.common.hardware;
 | 
				
			||||||
 | 
					in {
 | 
				
			||||||
 | 
					  options.${namespace}.common.hardware = { enable = mkEnableOption "whether to enable common hardware support"; };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  config = mkIf cfg.enable {
 | 
				
			||||||
 | 
					    hardware.sensor.iio.enable = true; # Enable iio-sensor for automatic screen rotation and similar features.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    hardware.flipperzero.enable = true; # Enable support for the flipperzero device.
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,21 +1,8 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  # Snowfall Lib provides a customized `lib` instance with access to your flake's library
 | 
					 | 
				
			||||||
  # as well as the libraries available from your flake's inputs.
 | 
					 | 
				
			||||||
  lib,
 | 
					  lib,
 | 
				
			||||||
  # Instance of `pkgs` with overlays and custom packages applied.
 | 
					 | 
				
			||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
  # All flake inputs.
 | 
					 | 
				
			||||||
  inputs,
 | 
					  inputs,
 | 
				
			||||||
 | 
					  namespace,
 | 
				
			||||||
  # Additional metadata, provided by Snowfall Lib.
 | 
					 | 
				
			||||||
  namespace, # The flake namespace, set in flake.nix. If not set, defaults to "internal".
 | 
					 | 
				
			||||||
  system, # The system architecture for this host (eg. `x86_64-linux`).
 | 
					 | 
				
			||||||
  target, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
 | 
					 | 
				
			||||||
  format, # A normalized name for the system target (eg. `iso`).
 | 
					 | 
				
			||||||
  virtual, # A boolean to determine whether this system is a virtual target using nixos-generators.
 | 
					 | 
				
			||||||
  systems, # An attribute map of your defined hosts.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # All other arguments come from the system system.
 | 
					 | 
				
			||||||
  config,
 | 
					  config,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}:
 | 
					}:
 | 
				
			||||||
| 
						 | 
					@ -76,28 +63,12 @@ with lib.${namespace};
 | 
				
			||||||
  # Enable docker
 | 
					  # Enable docker
 | 
				
			||||||
  virtualisation.docker.enable = true;
 | 
					  virtualisation.docker.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Sound configuration based on pipewire.
 | 
					 | 
				
			||||||
  hardware.pulseaudio.enable = false;
 | 
					 | 
				
			||||||
  security.rtkit.enable = true;
 | 
					 | 
				
			||||||
  services.pipewire = {
 | 
					 | 
				
			||||||
    enable = true;
 | 
					 | 
				
			||||||
    alsa.enable = true;
 | 
					 | 
				
			||||||
    alsa.support32Bit = true;
 | 
					 | 
				
			||||||
    pulse.enable = true;
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Set system Type
 | 
					  # Set system Type
 | 
				
			||||||
  puzzlevision.archetypes.workstation.enable = true;
 | 
					  puzzlevision.archetypes.workstation.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Enable flatpak support.
 | 
					  # Enable flatpak support.
 | 
				
			||||||
  services.flatpak.enable = true;
 | 
					  services.flatpak.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Enable iio-sensor for automatic screen rotation and similar features.
 | 
					 | 
				
			||||||
  hardware.sensor.iio.enable = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Enable support for flipper zero devices
 | 
					 | 
				
			||||||
  hardware.flipperzero.enable = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Configure users.
 | 
					  # Configure users.
 | 
				
			||||||
  snowfallorg.users.jo.admin = true;
 | 
					  snowfallorg.users.jo.admin = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -117,13 +88,6 @@ with lib.${namespace};
 | 
				
			||||||
    chromium
 | 
					    chromium
 | 
				
			||||||
    vlc
 | 
					    vlc
 | 
				
			||||||
    spotify
 | 
					    spotify
 | 
				
			||||||
 | 
					 | 
				
			||||||
    ### Bluetooth
 | 
					 | 
				
			||||||
    bluez
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ### Fonts
 | 
					 | 
				
			||||||
    noto-fonts
 | 
					 | 
				
			||||||
    noto-fonts-color-emoji
 | 
					 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  system.stateVersion = "23.05";
 | 
					  system.stateVersion = "23.05";
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue