diff --git a/Configurations/Hosts/Default/configuration.nix b/Configurations/Hosts/Default/configuration.nix deleted file mode 100644 index a7de2f6..0000000 --- a/Configurations/Hosts/Default/configuration.nix +++ /dev/null @@ -1,152 +0,0 @@ -{ config, pkgs, host, lib, inputs, userconf, ... }: - -let - # Load user-specific variables - userVars = import ./variables/user-vars.nix; - inherit (userVars) username gitUsername gitEmail keyboardLayout; - nixDirectory = "/home/${username}/NixOS"; -in { - ################################################################ - # Module Imports - ################################################################ - - imports = [ - # Host-specific hardware configuration (autogenerated) - ./hardware-configuration.nix - - # System-level user definition - ./user.nix - - # Base and global modules - ../../../Modules/System - - # Home Manager integration - inputs.home-manager.nixosModules.home-manager - - # nixos95 - inputs.self.nixosModules.nixos95 - - ]; - ################################################################ - # Display & Desktop Environment - ################################################################ - - nixos95 = { - enable = true; - user = username; - - taskbar = { - homeIcon = "whisker-menu-button"; - battery-plugin.enable = false; - applications = [ - { - name = "Brave"; - description = "Browse the Web"; - pkg = pkgs.brave; - icon = "world"; - } - { - name = "Signal"; - description = "Private Messenger"; - pkg = pkgs.signal-desktop; - icon = "signal"; - } - { - name = "Obsidian"; - description = "Markdown Editor"; - exe = "obsidian %u"; - icon = "obsidian"; - } - { - name = "Spotify"; - description = "Spotify Music"; - exe = "spotify %U"; - icon = "spotify"; - } - ]; - }; - - keybinds = { - commands = [ - { key="l"; exe="xflock4"; } - ]; - }; - }; - - ################################################################ - # System Packages (XFCE & Utilities) - ################################################################ - - environment.systemPackages = with pkgs; [ - - # Optional Extras - xfce.gigolo - xfce.xfce4-screenshooter - xfce.parole - # xfce.xfce4-clipman - - # other: - zsh - - - ]; - - - - programs.steam = { - enable = true; - remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play - dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server - localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers - }; - - services.openssh.enable = true; - - programs.zsh = { - enable = true; - ohMyZsh = { - enable = true; - theme = "xiong-chiamiov-plus"; - plugins = ["git"]; - }; - }; - - - - - - ################################################################ - # Home Manager Configuration - ################################################################ - - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - backupFileExtension = "delme-HMbackup"; - - users.${username} = import ./home/home.nix { - inherit config nixDirectory pkgs; - }; - }; - - ################################################################ - # Bootloader - ################################################################ - - boot.loader = { - grub = { - enable = true; - efiSupport = false; - useOSProber = false; - devices = ["nodev"]; - }; - systemd-boot.enable = false; - efi.canTouchEfiVariables = false; - }; - - ################################################################ - # System Version - ################################################################ - - system.stateVersion = "25.05"; -} diff --git a/Configurations/Hosts/Default/hardware-configuration.nix b/Configurations/Hosts/Default/hardware-configuration.nix deleted file mode 100644 index 7a96c96..0000000 --- a/Configurations/Hosts/Default/hardware-configuration.nix +++ /dev/null @@ -1,42 +0,0 @@ -# Do not modify this file! It was generated by โ€˜nixos-generate-configโ€™ - -{ config, lib, pkgs, modulesPath, ... }: - -{ - -abort '' - This file is a placeholder and should not be edited manually. - - Please run: - nixos-generate-config - - to regenerate the correct hardware configuration. - - This file was intentionally disabled to prevent accidental editing. -''; - - imports = - [ (modulesPath + "/profiles/qemu-guest.nix") - ]; - - boot.initrd.125312 = [ "ah124123ci" "xhci_pci" "ยน3ยน32134" "2143432" "12441234" ]; - boot.initrd.14231 = [ ]; - boot.124 = [ "124-124214" ]; - boot.1241324134 = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/9b55ed5e-1-443f-a5e8-1fb378fdad77"; - fsType = "ext4"; - }; - - swapDevices = [ 1241324134124214]; - - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking - # (the default) this is the recommended approach. When using systemd-networkd it's - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault 1324414124444444444444444444444444444444444; - # networking.interfaces.enp1s0.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; -} diff --git a/Configurations/Hosts/Default/home/desktop.nix b/Configurations/Hosts/Default/home/desktop.nix deleted file mode 100644 index d3c9050..0000000 --- a/Configurations/Hosts/Default/home/desktop.nix +++ /dev/null @@ -1,169 +0,0 @@ -{ config, pkgs, lib, ... }: - -let - # Your application definitions - apps = { - brave = { - name = "Brave"; - genericName = "Web Browser"; - exec = "brave"; - icon = "world"; - comment = "Browse the Web"; - terminal = false; - categories = [ "Network" "WebBrowser" ]; - }; - - terminal = { - name = "Terminal"; - exec = "xfce4-terminal"; - icon = "utilities-terminal"; - comment = "Run a terminal emulator"; - terminal = true; - categories = [ "System" "Utility" ]; - }; - - libre-calc = { - name = "Libre Calc"; - exec = "libreoffice --calc"; - icon = "libreoffice-calc"; - comment = "Spreadsheet program"; - terminal = false; - categories = [ "Office" ]; - }; - - libre-write = { - name = "Libre Write"; - exec = "libreoffice --writer"; - icon = "libreoffice-writer"; - comment = "Word processor"; - terminal = false; - categories = [ "Office" ]; - }; - - mpv = { - name = "MPV"; - exec = "mpv"; - icon = "mpv"; - comment = "Video Player"; - terminal = false; - categories = [ "AudioVideo" "Player" ]; - }; - - obsidian = { - name = "Obsidian"; - exec = "obsidian %u"; - icon = "obsidian"; - comment = "Markdown Editor"; - terminal = false; - categories = [ "Office" "Utility" ]; - }; - - gwenview = { - name = "Gwenview"; - exec = "gwenview %U"; - icon = "gwenview"; - comment = "Image Viewer"; - terminal = false; - categories = [ "Graphics" ]; - }; - - krita = { - name = "Krita"; - exec = "krita %F"; - icon = "krita"; - comment = "Digital painting"; - terminal = false; - categories = [ "Graphics" ]; - }; - - prism-launcher = { - name = "Prism Launcher"; - exec = "prismlauncher %U"; - icon = "minecraft"; - comment = "Minecraft Launcher"; - terminal = false; - categories = [ "Game" ]; - }; - - protonvpn = { - name = "ProtonVPN"; - exec = "protonvpn-app"; - icon = "protonvpn"; - comment = "VPN Client"; - terminal = false; - categories = [ "Network" "Security" ]; - }; - - signal = { - name = "Signal"; - exec = "signal-desktop %U"; - icon = "signal-desktop"; - comment = "Private Messenger"; - terminal = false; - categories = [ "Network" "InstantMessaging" ]; - }; - - vesktop = { - name = "Vesktop"; - exec = "vesktop %U"; - icon = "discord"; - comment = "Discord Client"; - terminal = false; - categories = [ "Network" "Chat" ]; - }; - - spotify = { - name = "Spotify"; - exec = "spotify %U"; - icon = "spotify"; - comment = "Spotify Music"; - terminal = false; - categories = [ "AudioVideo" "Player" ]; - }; - - okular = { - name = "Okular"; - exec = "okular %U"; - icon = "okular"; - comment = "PDF Viewer"; - terminal = false; - categories = [ "Office" "Viewer" ]; - }; - - steam = { - name = "Steam"; - exec = "steam"; - icon = "steam"; - comment = "Steam Game Platform"; - terminal = false; - categories = [ "Game" ]; - }; - }; - -in { - home.activation.desktopFiles = lib.hm.dag.entryAfter [ "writeBoundary" ] ( - '' - mkdir -p "$HOME/Desktop" - '' + (lib.concatStringsSep "\n" (lib.mapAttrsToList (name: data: - let - desktopText = '' - [Desktop Entry] - Version=1.0 - Type=Application - Name=${data.name} - ${lib.optionalString (data ? genericName) "GenericName=${data.genericName}"} - Comment=${data.comment} - Exec=${data.exec} - Icon=${data.icon} - Terminal=${if data.terminal then "true" else "false"} - Categories=${lib.concatStringsSep ";" data.categories}; - ''; - in '' - cat > "$HOME/Desktop/${name}.desktop" < --- - -### Wallpaper and Aesthetics - -Wallpapers are located in `./Resources/Images/Wallpapers`. -Some have been lightly edited. Originals were created by [aconfuseddragon](https://aconfuseddragon.itch.io/downloads). - -> I **do not own** any of the icons or wallpapers. -> If you showcase or redistribute them, **please credit the original artists**. - ---- - ## Installation - BETA -> Requires a NixOS install. +> Requirements: + nix.settings.experimental-features = ["nix-command" "flakes" "pipe-operators"]; + Enabled -1. **Clone the repository**: - ```bash - git clone https://github.com/peritia-system/NixOS-95.git NixOS - cd NixOS - ``` +### 1. Add Nyx to your flake -2. **Switch to Dev**: +```nix +# flake.nix +{ + inputs = { + nixos95.url = "github:Peritia-System/NixOS-95/Dev"; + nixos95.inputs.nixpkgs.follows = "nixpkgs"; + } + outputs = inputs @ { nixpkgs, nixos95, ... }: { + nixosConfigurations.HOSTNAME = nixpkgs.lib.nixosSystem { + modules = [ ./configuration.nix ]; + }; + }; +} +``` - ```bash - git switch Dev - ``` +### 2. Import in Configuration.nix -3. **Regenerate hardware configuration**: +```nix +# configuration.nix +{ + imports = [ inputs.self.nixosModules.nixos95 ]; +} +``` - ```bash - sudo nixos-generate-config --dir Configurations/Hosts/Default - ``` +### 3. Enable modules + +```nix +{ + # configuration.nix / or sth imported by the main config + nixos95 = { + enable = true; + user = "alex"; + + taskbar = { + homeIcon = "whisker-menu-button"; + battery-plugin.enable = false; + applications = [ + { + name = "Brave"; + description = "Browse the Web"; + pkg = pkgs.brave; + icon = "world"; + } + { + name = "Signal"; + description = "Private Messenger"; + pkg = pkgs.signal-desktop; + icon = "signal"; + } + { + name = "Obsidian"; + description = "Markdown Editor"; + exe = "obsidian %u"; + icon = "obsidian"; + } + { + name = "Spotify"; + description = "Spotify Music"; + exe = "spotify %U"; + icon = "spotify"; + } + ]; + }; + + keybinds = { + commands = [ + { key="l"; exe="xflock4"; } + ]; + }; + }; + +} +``` 4. **Build and switch to the system configuration**: ```bash sudo NIX_CONFIG="experimental-features = nix-command flakes pipe-operators" nixos-rebuild switch --flake .#default ``` - -5. **Apply user settings with Home Manager**: - - ```bash - home-manager switch - ``` +w ### Experimental Features diff --git a/flake.nix b/flake.nix index 2950a72..3298687 100644 --- a/flake.nix +++ b/flake.nix @@ -1,46 +1,12 @@ { - description = "NixOS-95"; + description = "NixOS-95: To Style your NixOS to look like Windows95"; - ################################################################ - # ๐Ÿ”— Inputs - ################################################################ inputs = { - # Core NixOS packages - nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; - - # Home Manager - home-manager.url = "github:nix-community/home-manager"; - home-manager.inputs.nixpkgs.follows = "nixpkgs"; - + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; }; - ################################################################ - # ๐Ÿš€ Outputs - ################################################################ - outputs = inputs @ { - self, - nixpkgs, - home-manager, - ... - }: { - - nixosModules.nixos95 = import ./nixos95; - - nixosConfigurations = { - ############################################################ - # ๐Ÿ’ป Default Host - ############################################################ - default = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - specialArgs = { - inherit inputs self; - host = "default"; - }; - modules = [ - ./Configurations/Hosts/Default/configuration.nix - ]; - }; - - }; + outputs = { self, nixpkgs, ... }: { + nixosModules.default = import ./nixos95; }; } +