Merge branch 'Dev' into readme

This commit is contained in:
Peritia 2025-08-25 09:06:46 +02:00 committed by GitHub
commit 08368e44b8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 251 additions and 9 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
example/*/flake.lock
example/*/hardware-configuration.nix

View file

@ -53,6 +53,15 @@ NixOS-95/
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
@ -74,7 +83,18 @@ NixOS-95/
}
```
### 2. Enable modules
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:
```

View file

@ -0,0 +1,63 @@
{ pkgs, ... }: {
system.stateVersion = "25.05";
nix.settings.experimental-features = [
"flakes" "nix-command" "pipe-operators"
];
nixos95 = {
enable = true;
user = "alice";
taskbar = {
homeIcon = "whisker-menu-button";
battery-plugin.enable = false;
applications = [
{
name = "Files";
description = "View and manage local files";
icon = "folder_open";
exe = "exo-open --launch FileManager";
}
{
name = "Firefox";
description = "Browse the Web";
pkg = pkgs.firefox;
icon = "world";
}
{
name = "Signal";
description = "Private Messenger";
pkg = pkgs.signal-desktop;
icon = "signal";
}
];
};
keybinds = {
commands = [
{ key="<Super>l"; exe="xflock4"; }
];
};
};
users.users.alice = {
isNormalUser = true;
initialPassword = "password";
home = "/home/alice";
createHome = true;
packages = [
pkgs.firefox
pkgs.neovim
pkgs.signal-desktop
];
};
networking.hostName = "nixos95";
networking.networkmanager.enable = true;
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
}

25
example/default/flake.nix Normal file
View file

@ -0,0 +1,25 @@
{
description = "Nixos95 example configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
nixos95 = {
url = "github:Peritia-System/NixOS-95";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { nixpkgs, nixos95, ... }: {
nixosConfigurations.default = nixpkgs.lib.nixosSystem {
system = "x84_64-linux";
modules = [
nixos95.nixosModules.default
./configuration.nix
./hardware-configuration.nix
];
};
};
}

View file

@ -0,0 +1,66 @@
{ pkgs, ... }: {
system.stateVersion = "25.05";
nix.settings.experimental-features = [
"flakes" "nix-command" "pipe-operators"
];
nixos95 = {
enable = true;
user = "alice";
taskbar = {
homeIcon = "whisker-menu-button";
battery-plugin.enable = false;
applications = [
{
name = "Files";
description = "View and manage local files";
icon = "folder_open";
exe = "exo-open --launch FileManager";
}
{
name = "Firefox";
description = "Browse the Web";
pkg = pkgs.firefox;
icon = "world";
}
{
name = "Signal";
description = "Private Messenger";
pkg = pkgs.signal-desktop;
icon = "signal";
}
];
};
keybinds = {
commands = [
{ key="<Super>l"; exe="xflock4"; }
];
};
};
networking.hostName = "nixos95";
users.users.alice = {
isNormalUser = true;
initialPassword = "password";
home = "/home/alice";
createHome = true;
};
home-manager.users.alice = {
programs.firefox.enable = true;
programs.neovim.enable = true;
home.packages = [
pkgs.signal-desktop
];
};
networking.networkmanager.enable = true;
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
}

View file

@ -0,0 +1,33 @@
{
description = "Nixos95 example configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos95 = {
url = "github:Peritia-System/NixOS-95";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
};
outputs = { nixpkgs, nixos95, home-manager, ... }: {
nixosConfigurations.default = nixpkgs.lib.nixosSystem {
system = "x84_64-linux";
modules = [
nixos95.nixosModules.default
home-manager.nixosModules.home-manager
./configuration.nix
./hardware-configuration.nix
];
};
};
}

10
flake.lock generated
View file

@ -22,15 +22,15 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1753250450,
"narHash": "sha256-i+CQV2rPmP8wHxj0aq4siYyohHwVlsh40kV89f3nw1s=",
"owner": "nixos",
"lastModified": 1755615617,
"narHash": "sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs+StOp19xNsbqdOg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "fc02ee70efb805d3b2865908a13ddd4474557ecf",
"rev": "20075955deac2583bb12f07151c2df830ef346b4",
"type": "github"
},
"original": {
"owner": "nixos",
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"

View file

@ -3,10 +3,38 @@
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, ... }: {
nixosModules.default = import ./nixos95;
outputs = { self, nixpkgs, home-manager,... }: {
nixosModules.default = import ./nixos95 { inherit home-manager; };
templates.default = {
description = "Minimal Nixos-95 configuration";
path = ./example/default;
welcomeText = ''
# Welcome to Nixos95
Please run `ǹixos-generate-config --dir .` to generate hardware configuration.
> You can now continue with Step 3 in the README.md
'';
};
templates.default = {
description = "Minimal Nixos-95 configuration with home-manager";
path = ./example/home-manager;
welcomeText = ''
# Welcome to Nixos95 (with home-manager)
Please run `nixos-generate-config --dir .` to generate harde configuration.
> You can now continue with Step 3 in the README.md
'';
};
};
}

View file

@ -2,6 +2,9 @@
cfg = config.nixos95;
in lib.mkIf cfg.enable {
home-manager.users.${cfg.user}.home.stateVersion = lib.mkDefault "25.05";
services.xserver = {
enable = true;
desktopManager.xfce.enable = true;

View file

@ -1,4 +1,4 @@
{ config, lib, ...}: let
{ home-manager }: { config, lib, ...}: let
cfg = config.nixos95;
in {
@ -14,6 +14,8 @@ in {
};
imports = [
home-manager.nixosModules.home-manager
./core.nix
./desktop.nix
./keybinds.nix