diff --git a/README.md b/README.md index 1e23521..0b44e37 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,20 @@ ## Installation -- Supported via NixOS modules with flakes +### Using VM or ISO + +#### QEMU VM + +- You can build simple qemu vm using nixos generators package in this configuration using `nix run git+https://gitea.homework.zip/shinya/Windows-Theme-Flake` + +#### Live ISO + +- If you would like to have this image on your flashdisk and live boot it you can get .iso file using nix run git+https://gitea.homework.zip/shinya/Windows-Theme-Flake#live-iso + +### Using Flakes ```nix +# Example flake.nix { description = "Your system flake with Windows XP theme"; @@ -43,10 +54,119 @@ } ``` -- Then in your config you can enable it with: +### NixOS System Configuration + +Add the NixOS module to your system configuration: ```nix -nixp.mate.enable = true; +# Example configuration.nix +{ inputs, ... }: +{ + imports = [ + inputs.nixp-module.nixosModules.default + ]; + + nixp = { + enable = true; # Enable Windows XP theme system-wide + theme = { + plymouth.enable = true; # Enable Windows XP boot screen + }; + }; +} ``` -- More options will be added soon +### Home Manager Configuration + +Add the Home Manager module to your user configuration: + +```nix +# Example home-manager configuration +{ inputs, ... }: +{ + imports = [ + inputs.nixp-module.homeModules.default + ]; + + nixp.mate = { + enable = true; # Enable all the options below for Windows XP MATE configuration + + # Optional: Customize theme variant + theme = { + enable = true; + name = "Windows XP Luna"; # Options: Luna, Embedded, Homestead, Metallic, Royale, Royale Dark, Zune + }; + + # Optional: Customize background + background = { + enable = true; + path = ./path/to/your/wallpaper.png; # Default: included XP wallpaper + }; + + panel.enable = true; # Windows XP-style taskbar layout + + cursor.enable = true; + icon.enable = true; + }; +} +``` + +## Available Packages + +You can install individual packages without using the full module: + +```nix +environment.systemPackages = with inputs.nixp-module.packages.${system}; [ + windows-xp-theme + windows-xp-icons + windows-xp-cursor + windows-xp-plymouth + windows-xp-grub +]; +``` + +## Configuration Options + +### NixOS Module (`nixp`) + +- `nixp.enable` - Enable Windows XP theme system-wide +- `nixp.theme.plymouth.enable` - Enable Plymouth boot screen theme +- `nixp.theme.grub.enable` - Enable GRUB boot screen theme + +### Home Manager Module (`nixp.mate`) + +- `nixp.mate.enable` - Enable complete MATE Windows XP configuration +- `nixp.mate.panel.enable` - Enable Windows XP taskbar-style panel layout +- `nixp.mate.background.enable` - Enable background configuration +- `nixp.mate.background.path` - Path to wallpaper (default: included XP wallpaper) +- `nixp.mate.theme.enable` - Enable GTK theme +- `nixp.mate.theme.name` - Theme variant (default: "Windows XP Luna") +- `nixp.mate.cursor.enable` - Enable cursor theme +- `nixp.mate.icon.enable` - Enable icon theme + +## Theme Variants + +Available Windows XP theme variants: + +- **Windows XP Luna** - Classic blue theme (default) +- **Windows XP Embedded** - Gray industrial theme +- **Windows XP Homestead** - Green nature theme +- **Windows XP Metallic** - Silver metallic theme +- **Windows XP Royale** - Blue professional theme +- **Windows XP Royale Dark** - Dark professional theme +- **Windows XP Zune** - Orange Zune theme + +## Requirements + +- NixOS with flakes enabled +- MATE Desktop Environment +- Home Manager (for user-level configuration) + +## Credits + +This module integrates several open-source projects: + +- [B00merang-Project/Windows-XP](https://github.com/B00merang-Project/Windows-XP) - GTK theme +- [na0miluv/modernXP-cursor-theme](https://github.com/na0miluv/modernXP-cursor-theme) - Cursor theme +- [B00merang-Artwork/Windows-XP](https://github.com/B00merang-Artwork/Windows-XP) - Icon theme +- [FraioVeio/plymouth-xp-theme](https://github.com/FraioVeio/plymouth-xp-theme) - Plymouth theme +- [Blaysht/grub_bios_theme](https://github.com/Blaysht/grub_bios_theme) - GRUB theme diff --git a/hosts/configuration.nix b/hosts/configuration.nix index 19281b3..bde6abb 100644 --- a/hosts/configuration.nix +++ b/hosts/configuration.nix @@ -3,6 +3,28 @@ { imports = [ ./hardware-configuration.nix ]; + users.users = { + # root.password = "admin1234"; + admin = { + isNormalUser = true; + extraGroups = [ "wheel" "networkmanager" ]; # Enable ‘sudo’ for the user. + password = "admin1234"; #IMPORTANT: Change this to your own password. + packages = (with pkgs; [ + git + helix + dconf-editor + + librewolf + hypnotix + blueman + libreoffice + wineWowPackages.stable + mpv + stremio + ]); + }; + }; + home-manager = { backupFileExtension = "backup"; users = { @@ -16,7 +38,7 @@ # Use the systemd-boot EFI boot loader. boot = { - kernelParams = [ "console=tty0" ]; + #kernelParams = [ "console=tty0" ]; loader = { systemd-boot.enable = true; efi.canTouchEfiVariables = true; @@ -58,11 +80,6 @@ }; }; - fonts.packages = with pkgs; [ - noto-fonts - noto-fonts-emoji - corefonts - ]; services = { xserver = { @@ -98,31 +115,20 @@ security.rtkit.enable = true; - # Enable CUPS to print documents. + environment.mate.excludePackages = with pkgs.mate; [ + mate-terminal + mate-themes + mate-user-share + mate-backgrounds + ]; + # services.printing.enable = true; - # Define a user account. Don't forget to set a password with ‘passwd’. - users.users = { - root.password = "admin1234"; - admin = { - isNormalUser = true; - extraGroups = [ "wheel" "networkmanager" ]; # Enable ‘sudo’ for the user. - password = "admin1234"; - packages = (with pkgs; [ - git - helix - dconf-editor - - librewolf - hypnotix - blueman - libreoffice - wineWowPackages.stable - mpv - stremio - ]); - }; - }; + fonts.packages = with pkgs; [ + noto-fonts + noto-fonts-emoji + corefonts + ]; nixpkgs.config = { allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ @@ -136,12 +142,6 @@ ]; }; - environment.mate.excludePackages = with pkgs.mate; [ - mate-terminal - mate-themes - mate-user-share - mate-backgrounds - ]; # List packages installed in system profile. # You can use https://search.nixos.org/ to find more packages (and options).