···22 <h1> asgard </h1>
33</div>
4455-This configuration is under constant construction so some things may be remove or add accordings to my needs but i want to keep all even if it's not used anymore.
66-75> [!IMPORTANT]
66+> This configuration is under constant construction so some things may be remove or add accordings to my needs but i want to keep all even if it's not used anymore.
77+>
88> Since this configuration is made for my own needs, you can take inspiration and some configuration but do not expect it to work on your side.
99>
1010> Any damage caused by this configuration is not my responsibility, so use it at your own risks.
···25252626- [x] NixOS
2727- [x] Nix Darwin
2828-- [x] WSL
2929-- [ ] Nix BSD
2828+- [ ] WSL (because not used anymore)
2929+- [ ] Nix BSD (in wait of a stable state to be used anywhere else than a vm)
3030- [ ] MicroVM for servers
3131- [ ] Secrets management
3232- [ ] Secure Boot
···39394040## Installation
41414242-```
4343-TODO
4444-```
4242+> TODO: write the documentation to install easely a new host with a few steps
45434644## Machines
4745···5149| `loki` | ASUS ROG STRIX B760-I GAMING WIFI | Intel i5 13600kf | Nvidia 4070ti | 32Go | ❄️ | 🎮️ | 🟢️ |
5250| `lithium` | Raspberry Pi3 b+ | - | - | 1Go | ❄️ | 🧨️ | 🔴 |
5351| `vali` | WSL | - | - | 8Go | ❄️ | 💾️ | 🔴 |
5454-| `andhrimnir` | Aorus B450 Elite | AMD Ryzen 3 3300X | Nvidia 1060 | 16Go | ❄️ | 🎮️ / ⌨️ | 🟠 |
5555-| `elli` | HP ProDesk 400 G1 DM | Intel Pentium G3250T | - | 8Go | ❄️ | 💾️ | 🔴 |
5656-| `sunna` | ASUS ROG STRIX G15 | Intel i7 10870H | Nvidia 2060 | 16Go | ❄️ | 🖥️ | 🟠 |
5252+| `andhrimnir` | Aorus B450 Elite | AMD Ryzen 3 3300X | Nvidia 1060 | 16Go | ❄️ | 🎮️ / ⌨️ | 🟢️ |
5353+| `elli` | HP ProDesk 400 G1 DM | Intel Pentium G3250T | - | 8Go | ❄️ | 💾️ | 🟠 |
5454+| `sunna` | ASUS ROG STRIX G15 | Intel i7 10870H | Nvidia 2060 | 16Go | ❄️ | 🖥️ | 🔴 |
57555856<details>
5957 <summary>Legend</summary>
···72707371## Folder structure
74727575-```
7676-.
7777-├── lib # Asgard custom libary to help configure machines and users
7878-├── machines # Machine configurations
7979-│ └── <os>
8080-│ │ └── <hostname>
8181-├── modules # Asgard custom modules by os
8282-│ ├── common
8383-│ ├── darwin
8484-│ └── nixos
8585-├── packages # Packages not present in nixpkgs
8686-├── overlays # Package override
8787-├── templates # Template for boostrapping projects (zig, go, ...)
8888-├── users # Home configuration by users and hosts
8989-│ ├── common
9090-│ └── <username>
9191-│ │ └── <hostname>
9292-├── flake.nix # Configuration entrypoint
9393-├── flake.lock # Pinned versions of packages repositories
9494-└── justfile # Command helper (like a Makefile)
9595-```
7373+> TODO: write the new documentation with the dentritic pattern usage
96749775## Commands
9876···11795- [Flakes book](https://nixos-and-flakes.thiscute.world/)
11896- [Nix Language](https://nix.dev/)
11997- [Nix Tour](https://nixcloud.io/tour/?id=introduction/nix)
9898+- [Dentritic Pattern explanation](https://github.com/Doc-Steve/dendritic-design-with-flake-parts)
12099121100## Troubleshooting
122101
···11{
22- description = ''
33- This configuration is the second version of all my systems, reworked from scratch with simplicity in mind.
44-55- I take my inspiration from others people configurations, so if you want to know what inspired this, take a look a "Nix things" and "Useful dotfiles" in my stars list.
66- '';
77-82 inputs = {
99- # packages
1010- nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-25.11";
1111- nixpkgs-unstable.url = "github:nixos/nixpkgs?ref=nixos-unstable";
33+ # Packages
44+ nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
125136 # Macos modules
1414- darwin = {
1515- url = "github:nix-darwin/nix-darwin?ref=nix-darwin-25.11";
1616- inputs.nixpkgs.follows= "nixpkgs";
1717- };
77+ darwin.url = "github:nix-darwin/nix-darwin/nix-darwin-25.11";
88+ darwin.inputs.nixpkgs.follows= "nixpkgs";
99+1010+ # Flake helper
1111+ flake-parts.url = "github:hercules-ci/flake-parts";
18121919- # File wrapper for config files
1313+ # Home/User configuration helper
2014 hjem.url = "github:feel-co/hjem";
1515+ hjem.inputs.nixpkgs.follows= "nixpkgs";
2116 };
22172323- # Force some nix configurations globally
2424- nixConfig = {
2525- experimental-features = "nix-command flakes pipe-operators";
2626- };
2727-2828- outputs = { self, nixpkgs, ... }@inputs :
2929- let
3030- lib = import ./lib { inherit self inputs; };
3131-3232- # Modules
3333- common = lib.fs.getFilesRecursively ./modules/common;
3434- nixosModules = lib.fs.getFilesRecursively ./modules/nixos ++ common;
3535- darwinModules = lib.fs.getFilesRecursively ./modules/darwin ++ common;
3636- in {
3737- nixosConfigurations = {
3838- # Gaming config (console like)
3939- loki = nixpkgs.lib.nixosSystem {
4040- system = "x86_64-linux";
4141- specialArgs = {
4242- inherit inputs;
4343- hostname = "loki";
4444- };
4545- modules = [ ./machines/nixos/loki ] ++ nixosModules;
4646- };
4747-4848- # Asus Rog G15 (work/gaming)
4949- sunna = nixpkgs.lib.nixosSystem {
5050- system = "x86_64-linux";
5151- specialArgs = {
5252- inherit inputs;
5353- hostname = "sunna";
5454- };
5555- modules = [ ./machines/nixos/sunna ] ++ nixosModules;
5656- };
5757-5858- # Neoxa gaming config
5959- andhrimnir = nixpkgs.lib.nixosSystem {
6060- system = "x86_64-linux";
6161- specialArgs = {
6262- inherit inputs;
6363- hostname = "andhrimnir";
6464- };
6565- modules = [ ./machines/nixos/andhrimnir ] ++ nixosModules;
6666- };
1818+ outputs = inputs@{ flake-parts, ... }:
1919+ flake-parts.lib.mkFlake { inherit inputs; } {
2020+ imports = [
2121+ flake-parts.flakeModules.modules
2222+ ./modules
2323+ ];
2424+ systems = [ "x86_64-linux" "aarch64-darwin" ];
6725 };
6868-6969- # Macbook Pro M2
7070- darwinConfigurations.njord = inputs.darwin.lib.darwinSystem {
7171- system = "aarch64-darwin";
7272- specialArgs = {
7373- inherit inputs;
7474- hostname = "njord";
7575- };
7676- modules = [ ./machines/darwin/njord ] ++ darwinModules;
7777- };
7878- };
7926}
+2-2
justfile
···1010 if [[ "$OSTYPE" == "darwin"* ]]; then \
1111 sudo darwin-rebuild switch --flake .#{{ hostname }}; \
1212 else \
1313- sudo nixos-rebuild switch --flake .#{{ hostname }}; \
1313+ sudo nixos-rebuild switch --flake .#{{ hostname }} --impure; \
1414 fi;
15151616# Build a new configuration
···1919 if [[ "$OSTYPE" == "darwin"* ]]; then \
2020 @echo "This is not possible to do it on MacOS."
2121 else \
2222- sudo nixos-rebuild switch --flake .#{{ hostname }}; \
2222+ sudo nixos-rebuild boot --flake .#{{ hostname }} --impure; \
2323 fi;
24242525# Format code
-6
lib/default.nix
···11-## Custom library built on top of nix lib
22-{ self, inputs, ... }:
33-{
44- forAllSystems = inputs.nixpkgs.lib.genAttrs [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" ];
55- fs = import ./fs.nix { inherit self inputs; };
66-}
-30
lib/fs.nix
···11-## FileSystem
22-## Help manage file and access to it
33-{ self, inputs, ... }:
44-55-let inherit (inputs.nixpkgs) lib; in
66-77-rec {
88- ## Match if type is a directory
99- #@ String -> Boolean
1010- isDirectory = type: type == "directory";
1111-1212- ## Match if type is a file
1313- #@ String -> Boolean
1414- isFile = type: type == "regular";
1515-1616- ## Get files in all folders at a giver path
1717- #@ Path -> []Path
1818- getFilesRecursively = path: let
1919- entries = builtins.readDir path |> lib.filterAttrs (name: type: (type |> isDirectory) || (type |> isFile));
2020- mapFile = name: type: let
2121- path' = "${path}/${name}";
2222- in
2323- if type |> isDirectory
2424- then getFilesRecursively path'
2525- else if name |> lib.hasSuffix ".nix"
2626- then path'
2727- else [];
2828- files = lib.flatten (lib.mapAttrsToList mapFile entries);
2929- in files;
3030-}
-75
machines/darwin/njord/default.nix
···11-{ lib, pkgs, hostname, ... }:
22-{
33- imports = [
44- ./homebrew
55- ./system
66- ];
77-88-99- # workaround to the problem of application not being shown by spotlight
1010- system.activationScripts.applications.text = lib.mkForce "";
1111-1212- # Enable sudo via TouchID
1313- security.pam.services.sudo_local.touchIdAuth = true;
1414-1515- # Networking
1616- networking.computerName = hostname;
1717- networking.hostName = hostname;
1818-1919- # Timezone
2020- time.timeZone = "Europe/Paris";
2121-2222- # System wide programs
2323- programs._1password-gui.enable = true; # Password manager
2424-2525- # Users
2626- environment.systemPackages= with pkgs; [
2727- # alt-tab-macos # alt tab like windows on macos
2828- bruno # ide for testing apis
2929- dbeaver-bin # database client
3030- git # versionning tool
3131- helix # modal code editor
3232- just
3333- lazygit # git tui helper
3434- # librewolf # web browser
3535- # obsidian # note taking
3636- stats # System monitoring displayed in macos top bar - will be replaced by custom script with sketchybar
3737- # spotify # music player
3838- podman # container tool -> replacement of docker
3939- podman-compose # compose provider for podman
4040- # raycast # replacement for spotlight
4141- # zed-editor # gui code editor
4242- ];
4343-4444- # Add environment variables to the system
4545- environment.variables = {
4646- EDITOR = "zeditor";
4747- };
4848-4949- # Linux builder
5050- nix = {
5151- linux-builder.enable = true;
5252-5353- # This line is a prerequisite
5454- settings.trusted-users = [ "@admin" ];
5555- };
5656-5757- # Common system configurations
5858- asgard.system.garbageCollector.enable = true;
5959-6060- # The platform the configuration will be used on.
6161- nixpkgs.hostPlatform = "aarch64-darwin";
6262-6363- # Allow packages
6464- nixpkgs.config.allowUnfree = true;
6565-6666- # Use nix as a daemon
6767- nix.enable = true;
6868-6969- # Enable flakes and other experimental features
7070- nix.settings.experimental-features = [ "nix-command" "flakes" "pipe-operators" ];
7171-7272- # Used for backwards compatibility, please read the changelog before changing.
7373- # $ darwin-rebuild changelog
7474- system.stateVersion = 5;
7575-}
···11-{
22- system.defaults.dock = {
33- autohide = true;
44- orientation = "bottom"; # Set dock to bottom
55- mru-spaces = false; # Auto arrange space based on the most recent use
66- launchanim = false; # Remove animation when opening an app
77- mineffect = "scale"; # Change animation from minimize/maximize app
88- magnification = false;
99- minimize-to-application = true; # Minimize app in app icon
1010- show-recents = false; # Don't show recent open apps
1111- tilesize = 32; # Set dock size
1212-1313- # Set dock apps (remove all apps from dock)
1414- persistent-apps = [ "/System/Applications/Launchpad.app" ];
1515-1616- # Disable hot corners
1717- wvous-bl-corner = 1;
1818- wvous-br-corner = 1;
1919- wvous-tl-corner = 1;
2020- wvous-tr-corner = 1;
2121- };
2222-}
-10
machines/darwin/njord/system/finder.nix
···11-{
22- system.defaults.screencapture.location = "~/Pictures/screenshots";
33- system.defaults.finder = {
44- AppleShowAllExtensions = true; # Show file extension
55- AppleShowAllFiles = true; # Show hidden files
66- FXPreferredViewStyle = "clmv"; # Set default view to column
77- CreateDesktop = false; # Disable show icon on desktop
88- FXDefaultSearchScope = "SCcf"; # Set default search scope to current folder
99- };
1010-}
-22
machines/darwin/njord/system/nsglobaldomain.nix
···11-{
22- system.defaults.NSGlobalDomain = {
33- # Switch between dark and light mode automatically
44- AppleInterfaceStyleSwitchesAutomatically = true;
55- # Disable saving new documents to icloud
66- NSDocumentSaveNewDocumentsToCloud = false;
77- # Time before the key is repeated
88- # InitialKeyRepeat = 7;
99- # Time between repeat key
1010- # KeyRepeat = 6;
1111- # Window open animation
1212- NSAutomaticWindowAnimationsEnabled = false;
1313- # Icon size in finder
1414- NSTableViewDefaultSizeMode = 2;
1515- # Drag from anywhere a window to move it
1616- NSWindowShouldDragOnGesture = true;
1717- # Deativate sound bip when volume is changed
1818- "com.apple.sound.beep.feedback" = 0;
1919- # Natural scrolling direction
2020- "com.apple.swipescrolldirection" = true;
2121- };
2222-}
-92
machines/nixos/andhrimnir/default.nix
···11-{ self, pkgs, hostname, ... }:
22-{
33- imports = [
44- ./hardware.nix
55- ];
66-77- # Bootloader
88- boot.loader.grub.enable = true;
99- boot.loader.grub.device = "nodev";
1010- boot.loader.grub.useOSProber = true;
1111- boot.loader.grub.efiSupport = true;
1212- boot.loader.efi.canTouchEfiVariables = true;
1313-1414- # Locales
1515- i18n.defaultLocale = "fr_FR.UTF-8";
1616-1717- # Timezone
1818- time.timeZone = "Europe/Paris";
1919-2020- # Keyboard
2121- services.xserver.xkb.layout = "fr";
2222-2323- # Networking
2424- networking.networkmanager.enable = true;
2525- networking.hostName = hostname;
2626-2727- # Audio
2828- asgard.hardware.audio.enable = true;
2929-3030- # Nvidia GPU and OpenGL
3131- hardware.graphics = {
3232- enable = true;
3333- enable32Bit = true;
3434- };
3535- services.xserver.videoDrivers = [ "nvidia" ];
3636- hardware.nvidia = {
3737- package = config.boot.kernelPackages.nvidiaPackages.latest;
3838- modesetting.enable = true;
3939- powerManagement.enable = false;
4040- powerManagement.finegrained = false;
4141- open = false;
4242- nvidiaSettings = true;
4343- };
4444-4545- # Disable CUPS since this desktop will not print something.
4646- services.printing.enable = false;
4747-4848- # Common system configurations
4949- asgard.system.garbageCollector.enable= true;
5050-5151- # Enable unfree packages
5252- nixpkgs.config.allowUnfree = true;
5353-5454- # Packages
5555- programs.steam.enable = true;
5656- programs.starship.enable = true;
5757- environment.systemPackages = with pkgs; [
5858- git
5959- ];
6060-6161- users.users."neoxa" = {
6262- isNormalUser = true;
6363- extraGroups = [ "wheel" ];
6464-6565- # User wide packages
6666- packages = with pkgs; [
6767- heroic
6868- librewolf
6969- lutris
7070- spotify
7171- vesktop
7272- vscodium
7373- ];
7474- };
7575-7676- # Automatic login
7777- services.displayManager.autoLogin.enable = true;
7878- services.displayManager.autoLogin.user = "benjamin";
7979-8080- # Desktop
8181- services.displayManager.sddm.enable = true;
8282- services.displayManager.sddm.wayland.enable = true;
8383- services.desktopManager.plasma6.enable = true;
8484-8585- # This value determines the NixOS release from which the default
8686- # settings for stateful data, like file locations and database versions
8787- # on your system were taken. It‘s perfectly fine and recommended to leave
8888- # this value at the release version of the first install of this system.
8989- # Before changing this value read the documentation for this option
9090- # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
9191- system.stateVersion = "25.05"; # Did you read the comment?
9292-}
-38
machines/nixos/andhrimnir/hardware.nix
···11-# Do not modify this file! It was generated by ‘nixos-generate-config’
22-# and may be overwritten by future invocations. Please make changes
33-# to /etc/nixos/configuration.nix instead.
44-{ config, lib, pkgs, modulesPath, ... }:
55-66-{
77- imports =
88- [ (modulesPath + "/installer/scan/not-detected.nix")
99- ];
1010-1111- boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
1212- boot.initrd.kernelModules = [ ];
1313- boot.kernelModules = [ "kvm-amd" ];
1414- boot.extraModulePackages = [ ];
1515-1616- fileSystems."/" =
1717- { device = "/dev/disk/by-uuid/fd217360-823a-44b2-a85c-9eb968aa8a51";
1818- fsType = "ext4";
1919- };
2020-2121- fileSystems."/boot" =
2222- { device = "/dev/disk/by-uuid/20F1-277B";
2323- fsType = "vfat";
2424- options = [ "fmask=0077" "dmask=0077" ];
2525- };
2626-2727- swapDevices = [ ];
2828-2929- # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
3030- # (the default) this is the recommended approach. When using systemd-networkd it's
3131- # still possible to use this option, but it's recommended to use it in conjunction
3232- # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
3333- networking.useDHCP = lib.mkDefault true;
3434- # networking.interfaces.eno1.useDHCP = lib.mkDefault true;
3535-3636- nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
3737- hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
3838-}
-48
machines/nixos/elli/default.nix
···11-{ self, inputs, pkgs, hostname, ... }:
22-{
33- # imports = [ ./hardware.nix ];
44-55- # EFI Bootloader
66- boot.loader.systemd-boot.enable = true;
77- boot.loader.efi.canTouchEfiVariables = true;
88- boot.loader.systemd-boot.configurationLimit = 10;
99-1010- # Locales
1111- i18n.defaultLocale = "en_US.UTF-8";
1212- i18n.extraLocaleSettings = {
1313- LC_ADDRESS = "fr_FR.UTF-8";
1414- LC_IDENTIFICATION = "fr_FR.UTF-8";
1515- LC_MEASUREMENT = "fr_FR.UTF-8";
1616- LC_MONETARY = "fr_FR.UTF-8";
1717- LC_NAME = "fr_FR.UTF-8";
1818- LC_NUMERIC = "fr_FR.UTF-8";
1919- LC_PAPER = "fr_FR.UTF-8";
2020- LC_TELEPHONE = "fr_FR.UTF-8";
2121- LC_TIME = "fr_FR.UTF-8";
2222- };
2323-2424- # Timezone
2525- time.timeZone = "Europe/Paris";
2626-2727- # Keyboard
2828- services.xserver.xkb.layout = "us";
2929-3030- # Networking
3131- networking.networkmanager.enable = true;
3232- networking.hostName = hostname;
3333-3434- # Disable CUPS since this desktop will not print something.
3535- services.printing.enable = false;
3636-3737- # Common system configurations
3838- asgard.system.garbageCollector.enable= true;
3939- asgard.system.autoUpdate.enable = false;
4040-4141- # This value determines the NixOS release from which the default
4242- # settings for stateful data, like file locations and database versions
4343- # on your system were taken. It‘s perfectly fine and recommended to leave
4444- # this value at the release version of the first install of this system.
4545- # Before changing this value read the documentation for this option
4646- # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
4747- system.stateVersion = "24.11"; # Did you read the comment?
4848-}
-18
machines/nixos/hoenir/default.nix
···11-{ config, pkgs, inputs, lib, hostname,... }:
22-{
33- imports = [ ];
44-55- # Network
66- networking.hostName = hostname;
77-88- # Enable ssh
99- services.openssh.enable = true;
1010-1111- # This value determines the NixOS release from which the default
1212- # settings for stateful data, like file locations and database versions
1313- # on your system were taken. It‘s perfectly fine and recommended to leave
1414- # this value at the release version of the first install of this system.
1515- # Before changing this value read the documentation for this option
1616- # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
1717- system.stateVersion = "24.11"; # Did you read the comment?
1818-}
-120
machines/nixos/loki/default.nix
···11-{ config, pkgs, hostname, ... }:
22-{
33- imports = [
44- ./hardware.nix
55- ];
66-77- # EFI Bootloader
88- boot.loader.systemd-boot.enable = true;
99- boot.loader.efi.canTouchEfiVariables = true;
1010- boot.loader.systemd-boot.configurationLimit = 10;
1111-1212- # Locales
1313- i18n.defaultLocale = "en_US.UTF-8";
1414- i18n.extraLocaleSettings = {
1515- LC_ADDRESS = "fr_FR.UTF-8";
1616- LC_IDENTIFICATION = "fr_FR.UTF-8";
1717- LC_MEASUREMENT = "fr_FR.UTF-8";
1818- LC_MONETARY = "fr_FR.UTF-8";
1919- LC_NAME = "fr_FR.UTF-8";
2020- LC_NUMERIC = "fr_FR.UTF-8";
2121- LC_PAPER = "fr_FR.UTF-8";
2222- LC_TELEPHONE = "fr_FR.UTF-8";
2323- LC_TIME = "fr_FR.UTF-8";
2424- };
2525-2626- # Timezone
2727- time.timeZone = "Europe/Paris";
2828-2929- # Keyboard
3030- services.xserver.xkb.layout = "us";
3131-3232- # Audio
3333- asgard.hardware.audio.enable = true;
3434-3535- # Nvidia GPU and OpenGL
3636- hardware.graphics = {
3737- enable = true;
3838- enable32Bit = true;
3939- };
4040- services.xserver.videoDrivers = [ "nvidia" ];
4141- hardware.nvidia = {
4242- package = config.boot.kernelPackages.nvidiaPackages.latest;
4343- modesetting.enable = true;
4444- powerManagement.enable = false;
4545- powerManagement.finegrained = false;
4646- open = false;
4747- nvidiaSettings = true;
4848- };
4949-5050- # Networking
5151- networking.networkmanager.enable = true;
5252- networking.hostName = hostname;
5353-5454- # Desktop Environment
5555- services.displayManager.gdm.enable = true;
5656- services.displayManager.autoLogin.enable = true;
5757- services.displayManager.autoLogin.user = "cosmeak";
5858- services.desktopManager.gnome.enable = true;
5959- services.gnome.games.enable = false;
6060- services.gnome.core-developer-tools.enable = false;
6161- environment.gnome.excludePackages = with pkgs; [
6262- gnome-tour
6363- gnome-user-docs
6464- gnome-text-editor
6565- gnome-console
6666- ];
6767-6868- # Global packages
6969- environment.systemPackages = with pkgs; [
7070- git
7171- just
7272- nixd
7373- ];
7474-7575- # Users
7676- users.users."cosmeak" = {
7777- isNormalUser = true;
7878- description = "cosmeak";
7979- extraGroups = [ "networkmanager" "wheel" ];
8080- packages = with pkgs; [
8181- _1password-gui # Password manager
8282- code-cursor # AI Code Editor
8383- ghostty # Terminal Emulator
8484- heroic # Game Launcher (Epic Games, GOG)
8585- librewolf # Web Browser
8686- obs-studio # Recording App
8787- obsidian # Note taking
8888- prismlauncher # Minecraft launcher
8989- spotify # Music Player
9090- vesktop # Discord custom client
9191- zed-editor # Code Editor
9292- ];
9393- };
9494-9595- # Steam
9696- programs.steam = {
9797- enable = true;
9898- gamescopeSession.enable = true;
9999- };
100100-101101- # Disable CUPS since this desktop will not print something.
102102- services.printing.enable = false;
103103-104104- # Common system configurations
105105- asgard.system.garbageCollector.enable = true;
106106-107107- # Enable unfree packages
108108- nixpkgs.config.allowUnfree = true;
109109-110110- # Enable flakes and other experimental features
111111- nix.settings.experimental-features = [ "nix-command" "flakes" "pipe-operators" ];
112112-113113- # This value determines the NixOS release from which the default
114114- # settings for stateful data, like file locations and database versions
115115- # on your system were taken. It‘s perfectly fine and recommended to leave
116116- # this value at the release version of the first install of this system.
117117- # Before changing this value read the documentation for this option
118118- # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
119119- system.stateVersion = "24.11"; # Did you read the comment?
120120-}
-38
machines/nixos/loki/hardware.nix
···11-# Do not modify this file! It was generated by ‘nixos-generate-config’
22-# and may be overwritten by future invocations. Please make changes
33-# to /etc/nixos/configuration.nix instead.
44-{ config, lib, modulesPath, ... }:
55-{
66- imports =
77- [ (modulesPath + "/installer/scan/not-detected.nix")
88- ];
99-1010- boot.initrd.availableKernelModules = [ "vmd" "xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" ];
1111- boot.initrd.kernelModules = [ ];
1212- boot.kernelModules = [ "kvm-intel" ];
1313- boot.extraModulePackages = [ ];
1414-1515- fileSystems."/" =
1616- { device = "/dev/disk/by-uuid/1cbaa92a-7c91-496f-b1b4-32a1249ba9af";
1717- fsType = "ext4";
1818- };
1919-2020- fileSystems."/boot" =
2121- { device = "/dev/disk/by-uuid/7EAC-2F74";
2222- fsType = "vfat";
2323- options = [ "fmask=0077" "dmask=0077" ];
2424- };
2525-2626- swapDevices = [ ];
2727-2828- # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
2929- # (the default) this is the recommended approach. When using systemd-networkd it's
3030- # still possible to use this option, but it's recommended to use it in conjunction
3131- # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
3232- networking.useDHCP = lib.mkDefault true;
3333- # networking.interfaces.enp5s0.useDHCP = lib.mkDefault true;
3434- # networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true;
3535-3636- nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
3737- hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
3838-}
-105
machines/nixos/sunna/default.nix
···11-{ self, inputs, pkgs, hostname, ... }:
22-{
33- imports = [ ./hardware-configuration.nix ];
44-55- # Networking
66- networking.hostName = hostname;
77-88- # GRUB Bootloader
99- boot.loader.systemd-boot.enable = true;
1010- # boot.loader.grub.enable = true;
1111- # boot.loader.grub.device = "nodev";
1212- # boot.loader.grub.useOSProber = true;
1313- boot.loader.efi.canTouchEfiVariables = true;
1414-1515- # Desktop Environment
1616- services.xserver.enable = true;
1717- services.xserver.displayManager.lightdm.enable = true;
1818- services.xserver.desktopManager.budgie.enable = true;
1919-2020-2121- # Global packages
2222- programs.firefox.enable = true;
2323- environment.systemPackages = with pkgs; [
2424- wget
2525- git
2626- curl
2727- vscodium
2828- just
2929- ];
3030-3131- # Audio
3232- asgard.hardware.audio.enable = true;
3333-3434- # RGB Controller
3535- services.hardware.openrgb.enable = true;
3636-3737- # Lang
3838- i18n.defaultLocale = "fr_FR.UTF-8";
3939- services.xserver.xkb.layout = "fr";
4040-4141- # Gaming settings
4242- programs.steam.enable = true;
4343- programs.steam.gamescopeSession.enable = true;
4444- programs.steam.gamescopeSession.env = {
4545- __NV_PRIME_RENDER_OFFLOAD = "1";
4646- __GLX_VENDOR_LIBRARY_NAME = "nvidia";
4747- __VK_LAYER_NV_optimus = "NVIDIA_ONLY";
4848- };
4949-5050- # Nvidia
5151- hardware.graphics = {
5252- enable = true;
5353- enable32Bit = true;
5454- };
5555- hardware.nvidia = {
5656- # package = config.boot.kernelPackages.nvidiaPackages.latest;
5757- modesetting.enable = true;
5858- powerManagement.enable = true;
5959- powerManagement.finegrained = true;
6060- open = false;
6161- nvidiaSettings = true;
6262- };
6363-6464- # Users
6565- users.users = {
6666- "neoxa" = {
6767- isNormalUser = true;
6868- extraGroups = [ "networkmanager" "wheel" ];
6969- packages = with pkgs; [
7070- spotify
7171- vesktop
7272- heroic
7373-7474- # Needed for school
7575- blender
7676- unityhub
7777- obs-studio
7878-7979- # Coding environment for school
8080- php
8181- php84Packages.composer
8282- nodejs_22
8383- python313
8484- ];
8585- };
8686- };
8787-8888- # Nix settings
8989- asgard.system.garbageCollector.enable = true;
9090- nixpkgs.config.allowUnfree = true;
9191-9292- # Enable flakes and other experimental features
9393- nix.settings.experimental-features = [ "nix-command" "flakes" "pipe-operators" ];
9494-9595- # Change buffer download size to 500Mo
9696- nix.settings.download-buffer-size = 524288000;
9797-9898- # This value determines the NixOS release from which the default
9999- # settings for stateful data, like file locations and database versions
100100- # on your system were taken. It‘s perfectly fine and recommended to leave
101101- # this value at the release version of the first install of this system.
102102- # Before changing this value read the documentation for this option
103103- # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
104104- system.stateVersion = "25.05"; # Did you read the comment?
105105-}
-49
machines/nixos/sunna/hardware-configuration.nix
···11-# Do not modify this file! It was generated by ‘nixos-generate-config’
22-# and may be overwritten by future invocations. Please make changes
33-# to /etc/nixos/configuration.nix instead.
44-{ config, lib, pkgs, modulesPath, ... }:
55-66-{
77- imports =
88- [ (modulesPath + "/installer/scan/not-detected.nix")
99- ];
1010-1111- boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "usbhid" "sd_mod" ];
1212- boot.initrd.kernelModules = [ ];
1313- boot.kernelModules = [ "kvm-intel" ];
1414- boot.extraModulePackages = [ ];
1515-1616- fileSystems."/" =
1717- { device = "/dev/disk/by-uuid/74364d58-0f18-40e0-a8f3-9ae7cea82314";
1818- fsType = "ext4";
1919- };
2020-2121- fileSystems."/boot" =
2222- { device = "/dev/disk/by-uuid/336D-E271";
2323- fsType = "vfat";
2424- options = [ "fmask=0077" "dmask=0077" ];
2525- };
2626-2727- fileSystems."/home" =
2828- { device = "/dev/disk/by-uuid/67e65287-b81a-47b3-b524-2dfef992c1c8";
2929- fsType = "ext4";
3030- };
3131-3232- fileSystems."/nix" =
3333- { device = "/dev/disk/by-uuid/2555f81a-2ec4-4f0e-b513-71f26faf2ee6";
3434- fsType = "ext4";
3535- };
3636-3737- swapDevices = [ ];
3838-3939- # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
4040- # (the default) this is the recommended approach. When using systemd-networkd it's
4141- # still possible to use this option, but it's recommended to use it in conjunction
4242- # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
4343- networking.useDHCP = lib.mkDefault true;
4444- # networking.interfaces.eno2.useDHCP = lib.mkDefault true;
4545- # networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
4646-4747- nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
4848- hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
4949-}
-19
machines/nixos/vali/default.nix
···11-{ self, inputs, pkgs, hostname, ... }:
22-{
33- # Networking
44- networking.hostName = hostname;
55-66- # Global packages
77- environment.systemPackages = with pkgs; [
88- wget
99- git
1010- ];
1111-1212- # This value determines the NixOS release from which the default
1313- # settings for stateful data, like file locations and database versions
1414- # on your system were taken. It‘s perfectly fine and recommended to leave
1515- # this value at the release version of the first install of this system.
1616- # Before changing this value read the documentation for this option
1717- # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
1818- system.stateVersion = "24.11"; # Did you read the comment?
1919-}