This is just for me to test and learn but maybe you learn sth too :)
| Modules | ||
| other/example/simple | ||
| .gitignore | ||
| flake.nix | ||
| Readme.md | ||
Nyx-Modules
Welcome to Nyx-Modules!
This is my repo with all my modules, which makes it easier for me to import them into different configurations. Maybe it helps someone else too.
Modules contains all the modules:
Modules
├── Hardware
├── Home
└── System
Full tree
Modules
├── Hardware
│ ├── Bluetooth
│ │ ├── bluetooth.nix
│ │ └── default.nix
│ ├── default.nix
│ └── Surface
│ ├── custom-kernel-surfacepro-kbl.nix
│ ├── default.nix
│ └── thermal-conf.xml
├── Home
│ ├── default.nix
│ ├── GUI-Apps
│ │ ├── Browsers
│ │ │ ├── brave.nix
│ │ │ └── default.nix
│ │ ├── Communication
│ │ │ ├── default.nix
│ │ │ ├── Messaging
│ │ │ │ ├── default.nix
│ │ │ │ ├── signal-desktop.nix
│ │ │ │ └── vesktop.nix
│ │ │ └── Remote-Support
│ │ │ ├── default.nix
│ │ │ └── rustdesk.nix
│ │ ├── default.nix
│ │ ├── Development
│ │ │ ├── default.nix
│ │ │ └── vscodium.nix
│ │ ├── Gaming
│ │ │ ├── classic-game-collection.nix
│ │ │ ├── default.nix
│ │ │ └── prismlauncher.nix
│ │ ├── Multimedia
│ │ │ ├── Audio
│ │ │ │ ├── cava.nix
│ │ │ │ ├── default.nix
│ │ │ │ └── spotify.nix
│ │ │ ├── Capture
│ │ │ │ ├── camera.nix
│ │ │ │ └── default.nix
│ │ │ ├── default.nix
│ │ │ ├── Graphics
│ │ │ │ ├── default.nix
│ │ │ │ ├── image-viewer.nix
│ │ │ │ └── krita.nix
│ │ │ └── Video
│ │ │ ├── default.nix
│ │ │ ├── kdenlive.nix
│ │ │ ├── video-player.nix
│ │ │ └── zoom.nix
│ │ ├── Office
│ │ │ ├── default.nix
│ │ │ ├── Knowledge
│ │ │ │ ├── default.nix
│ │ │ │ └── obsidian.nix
│ │ │ └── Productivity
│ │ │ ├── default.nix
│ │ │ ├── libreoffice.nix
│ │ │ ├── pdf-reader.nix
│ │ │ ├── printer-scan.nix
│ │ │ └── thunderbird.nix
│ │ └── VPN
│ │ ├── default.nix
│ │ └── protonvpn.nix
│ ├── Shell
│ │ ├── cli-tools
│ │ │ ├── default.nix
│ │ │ └── tools.nix
│ │ ├── default.nix
│ │ └── zsh
│ │ ├── default.nix
│ │ └── zsh.nix
│ └── Webapps
│ ├── default.nix
│ ├── private-webapps.nix
│ └── work-webapps.nix
└── System
├── Application
│ ├── cli
│ │ ├── default.nix
│ │ ├── docker.nix
│ │ ├── openssh.nix
│ │ ├── podman.nix
│ │ ├── vm.nix
│ │ └── zsh.nix
│ ├── default.nix
│ ├── Gaming
│ │ ├── default.nix
│ │ └── Steam
│ │ ├── default.nix
│ │ └── steam.nix
│ └── Special-Applications
│ ├── default.nix
│ ├── flatpak.nix
│ └── wireshark.nix
├── default.nix
└── Programming-Tools
├── c-compiler.nix
├── default.nix
├── go.nix
├── lua.nix
├── python.nix
└── rust.nix
Yeah… it is a lot. That is why I recommend using this mainly as a reference for your own modules. Rather than to Import it into your Config.
I’m not claiming this will be super helpful for everyone — it’s mostly a guideline for writing modules that are easy to sync across devices.
How to Use
If you decide to adapt it in your config
Adding Nyx-Modules to your Flake
{
description = "Your Flake";
inputs = {
# Other inputs...
# Nyx-Modules
nyx-modules.url = "github:Peritia-System/Nyx-Modules";
nyx-modules.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = inputs @ { nyx-modules, ... }: {
nixosConfigurations.HOSTNAME = nixpkgs.lib.nixosSystem {
modules = [
nyx-modules.nixosModules.default
./configuration.nix
];
};
};
}
Importing in configuration.nix
imports = [
# your other imports...
# Nyx-Modules
inputs.nyx-modules.nixosModules.default
# Hardware-specific modules
inputs.nyx-modules.nixosModules.hardware
];
Importing in home.nix
imports = [
inputs.nyx-modules.homeManagerModules.default
./desktop.nix
];
What Options are there?
Alot.
To get the full extend and use this repo fully you would best go through each file....
But that is not really viable so check: other/example this is a shortend Version of what I use for one of my Systems.
Notes
- Again this repository is intended as a guideline and reference for building modular Nix configurations
- Feel free to adapt any modules to your own setup
- Modules are organized by purpose (Hardware, Home, System) to make them easy to reuse across multiple machines
- I also love it if you are interested and want to contribute too