Large change on folder structure AND used of import-tree.

This commit is contained in:
Laurent Gueret
2026-01-28 13:18:17 +01:00
parent 3975dce418
commit ae5ac475c5
53 changed files with 253 additions and 278 deletions
+1 -1
View File
@@ -1,2 +1,2 @@
.DS_Store
.idea/ .idea/
.DS_Store
Generated
+50
View File
@@ -1,5 +1,23 @@
{ {
"nodes": { "nodes": {
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1768135262,
"narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -21,6 +39,21 @@
"type": "github" "type": "github"
} }
}, },
"import-tree": {
"locked": {
"lastModified": 1763762820,
"narHash": "sha256-ZvYKbFib3AEwiNMLsejb/CWs/OL/srFQ8AogkebEPF0=",
"owner": "vic",
"repo": "import-tree",
"rev": "3c23749d8013ec6daa1d7255057590e9ca726646",
"type": "github"
},
"original": {
"owner": "vic",
"repo": "import-tree",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1769089682, "lastModified": 1769089682,
@@ -37,6 +70,21 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-lib": {
"locked": {
"lastModified": 1765674936,
"narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1769170682, "lastModified": 1769170682,
@@ -55,7 +103,9 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"flake-parts": "flake-parts",
"home-manager": "home-manager", "home-manager": "home-manager",
"import-tree": "import-tree",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"nixpkgs-unstable": "nixpkgs-unstable" "nixpkgs-unstable": "nixpkgs-unstable"
} }
+29 -43
View File
@@ -2,6 +2,9 @@
description = "NixOS files config"; description = "NixOS files config";
inputs = { inputs = {
import-tree.url = "github:vic/import-tree";
flake-parts.url = "github:hercules-ci/flake-parts";
# Nixpkgs # Nixpkgs
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
@@ -12,51 +15,34 @@
}; };
outputs = outputs =
{ inputs@{
nixpkgs, nixpkgs,
flake-parts,
import-tree,
home-manager, home-manager,
nixpkgs-unstable,
... ...
}@inputs: }:
let flake-parts.lib.mkFlake { inherit inputs; } (
systems = [ "x86_64-linux" ]; { ... }:
forAllSystems = nixpkgs.lib.genAttrs systems; {
in systems = [ "x86_64-linux" ];
{ flake = {
packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system}); nixosConfigurations = {
overlays = import ./overlays { inherit inputs; }; nixos = nixpkgs.lib.nixosSystem {
modules = [
apps = import ./modules/apps; (import-tree ./modules/system)
home = import ./modules/home; ./modules/hardware-configuration.nix
nixos = import ./modules/nixos; (import ./modules/overlays.nix { inherit nixpkgs nixpkgs-unstable; })
]
nix.settings.experimental-features = "nix-command flakes"; ++ [
home-manager.nixosModules.home-manager
nixpkgs = { (import ./modules/overlays.nix { inherit nixpkgs nixpkgs-unstable; })
overlays = [ (import ./modules/users/home.nix { inherit import-tree home-manager; })
inputs.self.overlays.additions ];
inputs.self.overlays.modifications };
inputs.self.overlays.unstable-packages };
];
};
nixosConfigurations = {
nixos = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [
(
{ ... }:
{
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (nixpkgs.lib.getName pkg) [ "nvidia-x11" ];
}
)
./nixos/configuration.nix
]
++ [
{}
home-manager.nixosModules.home-manager
./home/configuration.nix
];
}; };
}; }
}; );
} }
-9
View File
@@ -1,9 +0,0 @@
{ inputs, ... }:
{
imports = [ ./users ];
home-manager.useUserPackages = true;
home-manager.overwriteBackup = true;
home-manager.backupFileExtension = "bak";
home-manager.extraSpecialArgs = { inherit inputs; };
}
-23
View File
@@ -1,23 +0,0 @@
{
inputs,
...
}:
{
imports = [
# App configurations
./configurations/gnome.nix
./configurations/firefox.nix
./configurations/ghostty.nix
# Modules
inputs.self.home
];
within.home.zed.enable = true;
within.home.jetbrains.enable = true;
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
home.stateVersion = "25.11";
}
-9
View File
@@ -1,9 +0,0 @@
{ ... }:
{
imports = [ ../home.nix ];
home = {
username = "alistreaza";
homeDirectory = "/home/alistreaza";
};
}
-3
View File
@@ -1,3 +0,0 @@
{
home-manager.users.alistreaza = import ./alistreaza.nix;
}
-6
View File
@@ -1,6 +0,0 @@
{
imports = [
./subgroups/shell.nix
./subgroups/gnome.nix
];
}
-6
View File
@@ -1,6 +0,0 @@
{
imports = [
../submodules/gnome-shell.nix
../submodules/gnome-apps.nix
];
}
-8
View File
@@ -1,8 +0,0 @@
{
imports = [
../submodules/zsh.nix
../submodules/nh.nix
../submodules/git.nix
../submodules/docker.nix
];
}
+48
View File
@@ -0,0 +1,48 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{
config,
lib,
modulesPath,
...
}:
{
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [
"xhci_pci"
"ahci"
"nvme"
"usbhid"
"uas"
"sd_mod"
];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/6c7250d7-8a40-4b12-94de-276c4b325473";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/2620-29F6";
fsType = "vfat";
options = [
"fmask=0077"
"dmask=0077"
];
};
swapDevices = [
{ device = "/dev/disk/by-uuid/7c10a8e6-c396-457e-a66f-577bd217b2e3"; }
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
-6
View File
@@ -1,6 +0,0 @@
{
imports = [
./submodules/zed.nix
./submodules/jetbrains.nix
];
}
-9
View File
@@ -1,9 +0,0 @@
{
imports = [
./subgroups/boot.nix
./subgroups/graphics.nix
./subgroups/networks.nix
./subgroups/audio.nix
./subgroups/keyboard.nix
];
}
-3
View File
@@ -1,3 +0,0 @@
{
imports = [ ../submodules/pipewire.nix ];
}
-6
View File
@@ -1,6 +0,0 @@
{
imports = [
../submodules/systemd-boot.nix
../submodules/plymouth.nix
];
}
-6
View File
@@ -1,6 +0,0 @@
{
imports = [
../submodules/nvidia.nix
../submodules/nvidia-prime.nix
];
}
-3
View File
@@ -1,3 +0,0 @@
{
imports = [ ../submodules/keyboard-apple.nix ];
}
-6
View File
@@ -1,6 +0,0 @@
{
imports = [
../submodules/dns.nix
../submodules/manager.nix
];
}
+27
View File
@@ -0,0 +1,27 @@
{
nixpkgs,
nixpkgs-unstable,
...
}:
{
nixpkgs.config.allowUnfreePredicate =
pkg:
builtins.elem (nixpkgs.lib.getName pkg) [
"nvidia-x11"
];
nixpkgs.overlays = [
(final: prev: {
unstable = import nixpkgs-unstable {
system = prev.system;
config.allowUnfreePredicate =
pkg:
builtins.elem (nixpkgs-unstable.lib.getName pkg) [
"pycharm"
];
};
})
];
}
@@ -1,10 +1,10 @@
{ lib, config, ... }: { lib, config, ... }:
with lib; with lib;
let let
cfg = config.within.shell.docker; cfg = config.os.shell.docker;
in in
{ {
options.within.shell.docker = { options.os.shell.docker = {
enable = mkEnableOption "System docker service"; enable = mkEnableOption "System docker service";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@@ -1,10 +1,10 @@
{ lib, config, ... }: { lib, config, ... }:
with lib; with lib;
let let
cfg = config.within.shell.git; cfg = config.os.shell.git;
in in
{ {
options.within.shell.git = { options.os.shell.git = {
enable = mkEnableOption "System git service"; enable = mkEnableOption "System git service";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@@ -6,10 +6,10 @@
}: }:
with lib; with lib;
let let
cfg = config.within.gnome.apps; cfg = config.os.gnome.apps;
in in
{ {
options.within.gnome.apps = { options.os.gnome.apps = {
enable = mkEnableOption "System gnome apps service"; enable = mkEnableOption "System gnome apps service";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@@ -6,10 +6,10 @@
}: }:
with lib; with lib;
let let
cfg = config.within.gnome.shell; cfg = config.os.gnome.shell;
in in
{ {
options.within.gnome.shell = { options.os.gnome.shell = {
enable = mkEnableOption "System gnome shell service"; enable = mkEnableOption "System gnome shell service";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@@ -1,10 +1,10 @@
{ lib, config, ... }: { lib, config, ... }:
with lib; with lib;
let let
cfg = config.within.shell.nh; cfg = config.os.shell.nh;
in in
{ {
options.within.shell.nh = { options.os.shell.nh = {
enable = mkEnableOption "System nh service"; enable = mkEnableOption "System nh service";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@@ -1,10 +1,10 @@
{ lib, config, ... }: { lib, config, ... }:
with lib; with lib;
let let
cfg = config.within.shell.zsh; cfg = config.os.shell.zsh;
in in
{ {
options.within.shell.zsh = { options.os.shell.zsh = {
enable = mkEnableOption "System zsh service"; enable = mkEnableOption "System zsh service";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@@ -1,10 +1,10 @@
{ lib, config, ... }: { lib, config, ... }:
with lib; with lib;
let let
cfg = config.within.networks.dns; cfg = config.os.networks.dns;
in in
{ {
options.within.networks.dns = { options.os.networks.dns = {
enable = mkEnableOption "System dns service"; enable = mkEnableOption "System dns service";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@@ -1,10 +1,10 @@
{ lib, config, ... }: { lib, config, ... }:
with lib; with lib;
let let
cfg = config.within.keyboard.apple; cfg = config.os.keyboard.apple;
in in
{ {
options.within.keyboard.apple = { options.os.keyboard.apple = {
enable = mkEnableOption "System apple locales service"; enable = mkEnableOption "System apple locales service";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@@ -1,10 +1,10 @@
{ lib, config, ... }: { lib, config, ... }:
with lib; with lib;
let let
cfg = config.within.networks.manager; cfg = config.os.networks.manager;
in in
{ {
options.within.networks.manager = { options.os.networks.manager = {
enable = mkEnableOption "System networks manager service"; enable = mkEnableOption "System networks manager service";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@@ -1,10 +1,10 @@
{ lib, config, ... }: { lib, config, ... }:
with lib; with lib;
let let
cfg = config.within.graphics.nvidia; cfg = config.os.graphics.nvidia;
in in
{ {
options.within.graphics.nvidia = { options.os.graphics.nvidia = {
enable = mkEnableOption "System nvidia service"; enable = mkEnableOption "System nvidia service";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@@ -1,10 +1,10 @@
{ lib, config, ... }: { lib, config, ... }:
with lib; with lib;
let let
cfg = config.within.audio.pipewire; cfg = config.os.audio.pipewire;
in in
{ {
options.within.audio.pipewire = { options.os.audio.pipewire = {
enable = mkEnableOption "System pipewire service"; enable = mkEnableOption "System pipewire service";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@@ -1,10 +1,10 @@
{ lib, config, ... }: { lib, config, ... }:
with lib; with lib;
let let
cfg = config.within.boot.plymouth; cfg = config.os.boot.plymouth;
in in
{ {
options.within.boot.plymouth = { options.os.boot.plymouth = {
enable = mkEnableOption "Boot plymouth service"; enable = mkEnableOption "Boot plymouth service";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@@ -1,10 +1,10 @@
{ lib, config, ... }: { lib, config, ... }:
with lib; with lib;
let let
cfg = config.within.boot.systemd; cfg = config.os.boot.systemd;
in in
{ {
options.within.boot.systemd = { options.os.boot.systemd = {
enable = mkEnableOption "Boot systemd service"; enable = mkEnableOption "Boot systemd service";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
+31
View File
@@ -0,0 +1,31 @@
{ ... }:
{
nix.settings.experimental-features = "nix-command flakes";
# System services
os.boot.systemd.enable = true;
os.boot.plymouth.enable = true;
os.graphics.nvidia.enable = true;
os.audio.pipewire.enable = true;
os.networks.dns.enable = true;
os.networks.manager.enable = true;
# System configurations
os.keyboard.apple.enable = true;
# Shell configurations
os.shell.zsh.enable = true;
os.shell.git.enable = true;
os.shell.nh.enable = true;
# Gnome configurations
os.gnome.shell.enable = true;
os.gnome.apps.enable = true;
# Virtualisation Apps
os.shell.docker.enable = true;
# System version
system.stateVersion = "25.11";
}
+8
View File
@@ -0,0 +1,8 @@
{ ... }:
{
networking.hostName = "nixos";
networking.firewall.enable = true;
time.timeZone = "Europe/Brussels";
}
+27
View File
@@ -0,0 +1,27 @@
{ import-tree, ... }:
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.overwriteBackup = true;
home-manager.backupFileExtension = "bak";
home-manager.users = {
alistreaza = {
imports = [
(import-tree ./options)
(import-tree ./partials)
];
home = {
username = "alistreaza";
homeDirectory = "/home/alistreaza";
};
os.ide.zed.enable = true;
os.ide.jetbrains.enable = true;
home.stateVersion = "25.11";
};
};
}
@@ -6,11 +6,11 @@
}: }:
with lib; with lib;
let let
cfg = config.within.home.jetbrains; cfg = config.os.ide.jetbrains;
in in
{ {
options.within.home.jetbrains = { options.os.ide.jetbrains = {
enable = mkEnableOption "System dns service"; enable = mkEnableOption "JetBrains options";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@@ -6,11 +6,11 @@
}: }:
with lib; with lib;
let let
cfg = config.within.home.zed; cfg = config.os.ide.zed;
in in
{ {
options.within.home.zed = { options.os.ide.zed = {
enable = mkEnableOption "System dns service"; enable = mkEnableOption "Zen Editor options";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 99 KiB

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 99 KiB

-51
View File
@@ -1,51 +0,0 @@
{
inputs,
...
}:
{
imports = [
# Hardware
./hardware-configuration.nix
./partials/kernel.nix
# Configurations
./partials/users.nix
# Modules
inputs.self.nixos
inputs.self.apps
];
networking.hostName = "nixos";
networking.firewall.enable = true;
time.timeZone = "Europe/Brussels";
# System services
within.boot.systemd.enable = true;
within.boot.plymouth.enable = true;
within.graphics.nvidia.enable = true;
within.audio.pipewire.enable = true;
within.networks.dns.enable = true;
within.networks.manager.enable = true;
# System configurations
within.keyboard.apple.enable = true;
# Shell configurations
within.shell.zsh.enable = true;
within.shell.git.enable = true;
within.shell.nh.enable = true;
# Gnome configurations
within.gnome.shell.enable = true;
within.gnome.apps.enable = true;
# Virtualisation Apps
within.shell.docker.enable = true;
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
system.stateVersion = "25.11";
}
-33
View File
@@ -1,33 +0,0 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "uas" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/6c7250d7-8a40-4b12-94de-276c4b325473";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/2620-29F6";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/7c10a8e6-c396-457e-a66f-577bd217b2e3"; }
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
-10
View File
@@ -1,10 +0,0 @@
{ inputs, ... }:
{
additions = final: _prev: import ../pkgs final;
modifications = final: prev: { };
unstable-packages = final: _prev: {
unstable = import inputs.nixpkgs-unstable { system = final.system; };
};
}
-5
View File
@@ -1,5 +0,0 @@
# Custom packages, that can be defined similarly to ones from nixpkgs
# You can build them using 'nix build .#example'
pkgs: {
# example = pkgs.callPackage ./example { };
}