diff --git a/modules/home/themes/catppuccin/fish/default.nix b/modules/home/themes/catppuccin/fish/default.nix index 9ac9a59..a968f3f 100644 --- a/modules/home/themes/catppuccin/fish/default.nix +++ b/modules/home/themes/catppuccin/fish/default.nix @@ -1,6 +1,17 @@ { 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"; -} +} \ No newline at end of file diff --git a/modules/nixos/archetypes/workstation/default.nix b/modules/nixos/archetypes/workstation/default.nix index a4d0761..24de0a1 100644 --- a/modules/nixos/archetypes/workstation/default.nix +++ b/modules/nixos/archetypes/workstation/default.nix @@ -1,7 +1,15 @@ { lib, pkgs, - namespace, + inputs, + + 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, ... }: with lib; with lib.${namespace}; @@ -12,7 +20,7 @@ in { config = mkIf cfg.enable { environment.sessionVariables = { - NIXOS_OZONE_WL = "0"; # Chromium/Electron native Wayland support (Buggy) + NIXOS_OZONE_WL = "1"; # Chromium/Electron native Wayland support MOZ_ENABLE_WAYLAND = "1"; # Firefox native Wayland support }; @@ -25,9 +33,6 @@ in { kernel.enable = true; # Kernel modifications bluetooth.enable = true; # Bluetooth support 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; diff --git a/modules/nixos/common/audio/default.nix b/modules/nixos/common/audio/default.nix deleted file mode 100644 index d9c4298..0000000 --- a/modules/nixos/common/audio/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ - 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; - }; - }; -} diff --git a/modules/nixos/common/bluetooth/default.nix b/modules/nixos/common/bluetooth/default.nix index 2939940..df11af6 100644 --- a/modules/nixos/common/bluetooth/default.nix +++ b/modules/nixos/common/bluetooth/default.nix @@ -1,7 +1,15 @@ { lib, pkgs, - namespace, + inputs, + + 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, ... }: with lib; with lib.${namespace}; @@ -11,8 +19,6 @@ in { options.${namespace}.common.bluetooth = { enable = mkEnableOption "Enable bluetooth support on your current system"; }; config = mkIf cfg.enable { - environment.systemPackages = with pkgs; [ bluez ]; - hardware.bluetooth = { enable = true; powerOnBoot = true; diff --git a/modules/nixos/common/fonts/default.nix b/modules/nixos/common/fonts/default.nix deleted file mode 100644 index 23e2746..0000000 --- a/modules/nixos/common/fonts/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ - 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; - }; -} diff --git a/modules/nixos/common/hardware/default.nix b/modules/nixos/common/hardware/default.nix deleted file mode 100644 index a7cb94a..0000000 --- a/modules/nixos/common/hardware/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - 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. - }; -} diff --git a/systems/x86_64-linux/puzzlevision/default.nix b/systems/x86_64-linux/puzzlevision/default.nix index 83d694c..1abca8a 100644 --- a/systems/x86_64-linux/puzzlevision/default.nix +++ b/systems/x86_64-linux/puzzlevision/default.nix @@ -1,8 +1,21 @@ { + # 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, + # Instance of `pkgs` with overlays and custom packages applied. pkgs, + # All flake 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, ... }: @@ -63,12 +76,28 @@ with lib.${namespace}; # Enable docker 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 puzzlevision.archetypes.workstation.enable = true; # Enable flatpak support. 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. snowfallorg.users.jo.admin = true; @@ -88,6 +117,13 @@ with lib.${namespace}; chromium vlc spotify + + ### Bluetooth + bluez + + ### Fonts + noto-fonts + noto-fonts-color-emoji ]; system.stateVersion = "23.05";