A NixOS System fitting the Win95 Style
Find a file
2025-10-01 11:33:42 +02:00
example fix: prepare for merge with main 2025-08-25 09:56:29 +02:00
nixos95 fix: rm Wallpaper setting 2025-10-01 11:33:42 +02:00
Ressources Add Games into Showcase 2025-07-24 16:17:11 +02:00
.gitignore docs(example): add example configuration 2025-08-24 09:26:57 +02:00
flake.lock feat: add home-manager directly in NixOS-95 2025-08-24 09:26:57 +02:00
flake.nix fix(templates): use correct name for home-manager template 2025-08-25 09:29:36 +02:00
README.md Merge branch 'Dev' into readme 2025-08-25 09:06:46 +02:00
reddit.txt added the reddit post to the readme 2025-07-24 16:52:01 +02:00
Roadmap.md add things to do 2025-08-25 10:35:08 +02:00

NixOS-95

A nostalgic Windows 95-inspired NixOS setup with modern pastel vibes.

This is a NixOS configuration designed to evoke the pixel-perfect charm of Windows 95, infused with a clean, soft pastel aesthetic. Lightweight, customizable, and perfect for retro lovers or low-spec setups.


🖥️ System Overview


📁 Directory Overview

tree .
NixOS-95/
├── flake.nix
├── flake.lock
├── Modules/
│   ├── Applications/
│   └── System/
├── nixos95
│   ├── dotfiles/
│   ├── core.nix
│   ├── default.nix
│   ├── desktop.nix
│   ├── keybinds.nix
│   ├── taskbar.nix
│   └── theme.nix
├── Ressources/
│   ├── Icons/
│   ├── Images/
│   │   └── Wallpapers/
│   └── Themes/
├── README.md

Installation - BETA

Requirements: nix.settings.experimental-features = ["nix-command" "flakes" "pipe-operators"]; Enabled

You can initilize a new flake-based configuration with:

# minimal
nix flake init -t github:Peritia-System/NixOS-95/Dev
# with home-manager
nix flake init -t github:Peritia-System/NixOS-95/Dev#home-manager

Or follow the manual installation process:

1. Add Nixos95 to your flake and import the module

# flake.nix
{
  inputs = {
    nixos95.url = "github:Peritia-System/NixOS-95/Dev";
    nixos95.inputs.nixpkgs.follows = "nixpkgs";
  }
  outputs = inputs @ { nixos95, ... }: {
    nixosConfigurations.HOSTNAME = nixpkgs.lib.nixosSystem {
      modules = [ 
        nixos95.nixosModules.default
        ./configuration.nix 
      ];
    };
  };
}

If you are using home-manager you should also pin your version for Nixos95:

{
    inputs = {
        ...
        nixos95.inputs.home-manager.follows = "home-manager";
    };
    ...
}

2. Import in Configuration.nix

You can configure Nixos95 under the nixos95 namespace. For a minimal config just set:

{
    nixos95.enable = true;
}

Warning: This will activate the xfce desktop manager, as well as lightdm and ssdm as display manager. You might want to disable your other desktop environment to prevent bugs.

If you want to further customize Nixos95 you can use the following config options (given values are the default ones):

{
  nixos95 = {
    enable = true; # default is false
    user = "USERNAME"; # no default set; specifies the user used by home-manager

    wallpaper = ./Resources/Images/Wallpapers/Wallpaper-1.png;

    taskbar = {
      homeIcon = "whisker-menu-button";
      battery-plugin = {
        enable = true;
        power_bar = {
            enabe = true;
            critical_at = 10;
            warning_at = 20;
            color_warning = "rgb(248,228,92)";
            color_critical = "rgb(237,51,59)";
            color_loading = "rgb(119,118,123)";
            color_default = "rgb(143,240,164)";
        };
      };
    };
    applications = [
      {
        name = "Files";
        description = "View and manage local files";
        icon = "folder_open";
        exe = "exo-open --launch FileManager";
      }
      {
        name = "Terminal";
        description = "Run commands";
        icon = "xfce4-terminal";
        pkg = pkgs.xfce.xfce4-terminal;
      }
      {
        name = "Browser";
        description = "Access the world wide web";
        icon = "firefox";
        exe = "exo-open --launch WebBrowser";
      }
    ];

    keybinds = {
      commands = [
        { key = "<Super>r"; exe = "xfce4-appfinder --collapsed"; }
        { key = "XF86WWW"; exe = "exo-open --launch WebBrowser"; }
        { key = "XF86Mail"; exe = "exo-open --launch MailReder"; }
        { key = "Print"; exe = "xfce4-screenshooter"; }
        { key="<Super>l";  exe="xflock4"; }
      ];
      xfwm4 = [ ];
    };
  };
}

3. Build and switch to the system configuration:

sudo NIX_CONFIG="experimental-features = nix-command flakes pipe-operators" nixos-rebuild switch --flake .#default

Experimental Features

NixOS-95 relys on multiple experimental nix features. These are:

  1. flakes
  2. pipe-operators They are needed to activate the configuration.

To enable them in your config set:

nix.settings.experimental-features = [
  "flakes" "pipe-operators"
];

Rebuild Notes

Due to how Home Manager and XFCE handle theming, changes may not fully apply on the first attempt.

For best results:

  1. Rebuild twice
  2. Log out and back in after each rebuild

Features

  • Pixel-style retro desktop with pastel polish
  • Lightweight and XFCE-powered (great for low-spec machines)
  • Flake-based configuration with easy updates
  • Themed with Chicago95 and matching icon set

Showcase

Image1

More Screenshots

Image2
Image3
Image4

Reddit Post:
👉 See the Reddit showcase post


Final Thoughts

This setup was built for my boyfriend to use during school. I love how this setup turned out—it's nostalgic and clean, so I wanted to give more people the opportunity to use it. Hope you enjoy it!