Ver 1.0.0
This commit is contained in:
parent
aca73cdd0f
commit
e4838c1afe
9 changed files with 439 additions and 2274 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
other/generated-examples
|
||||||
201
Readme.md
201
Readme.md
|
|
@ -1 +1,200 @@
|
||||||
Do NOT use this please this is just for me to test and learn
|
# Nyx-Modules
|
||||||
|
|
||||||
|
|
||||||
|
# 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:
|
||||||
|
|
||||||
|
```text
|
||||||
|
Modules
|
||||||
|
├── Hardware
|
||||||
|
├── Home
|
||||||
|
└── System
|
||||||
|
```
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Full tree</summary>
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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.
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
```nix
|
||||||
|
{
|
||||||
|
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`
|
||||||
|
|
||||||
|
```nix
|
||||||
|
imports = [
|
||||||
|
# your other imports...
|
||||||
|
|
||||||
|
# Nyx-Modules
|
||||||
|
inputs.nyx-modules.nixosModules.default
|
||||||
|
|
||||||
|
# Hardware-specific modules
|
||||||
|
inputs.nyx-modules.nixosModules.hardware
|
||||||
|
];
|
||||||
|
```
|
||||||
|
|
||||||
|
### Importing in `home.nix`
|
||||||
|
|
||||||
|
```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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ set -euo pipefail
|
||||||
|
|
||||||
ROOT="${1:-../Modules}" # root dir (defaults to Modules)
|
ROOT="${1:-../Modules}" # root dir (defaults to Modules)
|
||||||
|
|
||||||
OUT_DIR="examples"
|
OUT_DIR="generated-examples"
|
||||||
mkdir -p "$OUT_DIR"
|
mkdir -p "$OUT_DIR"
|
||||||
|
|
||||||
OUT1="$OUT_DIR/example-with-headers-and-comments.nix"
|
OUT1="$OUT_DIR/example-with-headers-and-comments.nix"
|
||||||
|
|
|
||||||
113
other/example/simple/configuration.nix
Normal file
113
other/example/simple/configuration.nix
Normal file
|
|
@ -0,0 +1,113 @@
|
||||||
|
{ config, pkgs, host, lib, inputs, userconf, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
################################################################
|
||||||
|
# Module Imports
|
||||||
|
################################################################
|
||||||
|
imports = [
|
||||||
|
# Host-specific hardware (autogenerated)
|
||||||
|
./hardware-configuration.nix
|
||||||
|
|
||||||
|
# Nyx-Modules
|
||||||
|
inputs.nyx-modules.nixosModules.default
|
||||||
|
|
||||||
|
# Hardware-specific modules
|
||||||
|
inputs.nyx-modules.nixosModules.hardware
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Nyx Modules
|
||||||
|
################################################################
|
||||||
|
nyx-module = {
|
||||||
|
################################################################
|
||||||
|
# Hardware Specific Configuration
|
||||||
|
################################################################
|
||||||
|
hardware = {
|
||||||
|
bluetooth.enable = true;
|
||||||
|
# this is exclusively for certain Microsoft Surface:
|
||||||
|
Custom-Kernel.SurfacePro-KabyLake = {
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
system = {
|
||||||
|
################################################################
|
||||||
|
# SSH Configuration
|
||||||
|
################################################################
|
||||||
|
openssh = {
|
||||||
|
enable = true;
|
||||||
|
passwordAuth = false;
|
||||||
|
permitRootLogin = "no";
|
||||||
|
};
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Containerization & Virtualization
|
||||||
|
################################################################
|
||||||
|
podman.enable = false;
|
||||||
|
docker.enable = false;
|
||||||
|
vm.enable = false;
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Flatpak
|
||||||
|
################################################################
|
||||||
|
flatpak.enable = false;
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Shell / Zsh Configuration
|
||||||
|
################################################################
|
||||||
|
zsh = {
|
||||||
|
enable = true;
|
||||||
|
ohMyZsh = true;
|
||||||
|
theme = "xiong-chiamiov-plus";
|
||||||
|
plugins = [ "git" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Gaming
|
||||||
|
################################################################
|
||||||
|
steam = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = {
|
||||||
|
remotePlay = true;
|
||||||
|
dedicatedServer = true;
|
||||||
|
localNetworkGameTransfers = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Network Tools
|
||||||
|
################################################################
|
||||||
|
wireshark = {
|
||||||
|
enable = false;
|
||||||
|
username = username;
|
||||||
|
};
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Developer Tools / Compilers
|
||||||
|
################################################################
|
||||||
|
c-compiler.enable = true;
|
||||||
|
go.enable = true;
|
||||||
|
lua.enable = true;
|
||||||
|
python.enable = true;
|
||||||
|
rust.enable = true;
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Home Manager Configuration
|
||||||
|
################################################################
|
||||||
|
|
||||||
|
home-manager = {
|
||||||
|
# your Homemanager config
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# System Version
|
||||||
|
################################################################
|
||||||
|
|
||||||
|
system.stateVersion = # your system Version;
|
||||||
|
}
|
||||||
124
other/example/simple/home.nix
Normal file
124
other/example/simple/home.nix
Normal file
|
|
@ -0,0 +1,124 @@
|
||||||
|
{ config, nixDirectory, pkgs, inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
################################################################
|
||||||
|
# Module Imports
|
||||||
|
################################################################
|
||||||
|
imports = [
|
||||||
|
inputs.nyx-modules.homeManagerModules.default
|
||||||
|
];
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Nyx Modules
|
||||||
|
################################################################
|
||||||
|
nyx-module.home = {
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Web Browsers
|
||||||
|
################################################################
|
||||||
|
brave = {
|
||||||
|
enable = true;
|
||||||
|
extensions = {
|
||||||
|
enable = true;
|
||||||
|
standard = true; # uBlock, Proton Pass, Proton VPN
|
||||||
|
extra = []; # Additional extension IDs
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Messaging
|
||||||
|
################################################################
|
||||||
|
signal-desktop.enable = true;
|
||||||
|
vesktop.enable = true;
|
||||||
|
zoom.enable = false;
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Remote Support
|
||||||
|
################################################################
|
||||||
|
rustdesk.enable = false;
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Development
|
||||||
|
################################################################
|
||||||
|
vscodium = {
|
||||||
|
enable = true;
|
||||||
|
extensions = {
|
||||||
|
enable = true;
|
||||||
|
standard = true;
|
||||||
|
extra = [];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Gaming
|
||||||
|
################################################################
|
||||||
|
classic-game-collection.enable = true;
|
||||||
|
prismlauncher.enable = true;
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Audio / Visual Utilities
|
||||||
|
################################################################
|
||||||
|
cava.enable = false;
|
||||||
|
spotify.enable = true;
|
||||||
|
camera.enable = true;
|
||||||
|
|
||||||
|
image-viewer = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.gwenview;
|
||||||
|
};
|
||||||
|
|
||||||
|
krita.enable = true;
|
||||||
|
kdenlive.enable = true;
|
||||||
|
|
||||||
|
video-player = {
|
||||||
|
enable = true;
|
||||||
|
packages = [ pkgs.vlc pkgs.mpv ];
|
||||||
|
};
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Office
|
||||||
|
################################################################
|
||||||
|
obsidian.enable = true;
|
||||||
|
libreoffice.enable = true;
|
||||||
|
pdf-viewer.enable = true;
|
||||||
|
printer.enable = true;
|
||||||
|
thunderbird.enable = true;
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# VPN
|
||||||
|
################################################################
|
||||||
|
protonvpn.enable = true;
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Shell / CLI Tools
|
||||||
|
################################################################
|
||||||
|
cli-tools = {
|
||||||
|
enable = true;
|
||||||
|
extra = [ pkgs.ripgrep pkgs.htop ];
|
||||||
|
};
|
||||||
|
|
||||||
|
zsh.enable = true;
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Webapps
|
||||||
|
################################################################
|
||||||
|
private-webapps = {
|
||||||
|
enable = true;
|
||||||
|
browser = pkgs.chromium;
|
||||||
|
whatsapp.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
work-webapps = {
|
||||||
|
enable = true;
|
||||||
|
browser = pkgs.chromium;
|
||||||
|
slack.enable = false;
|
||||||
|
teams.enable = false;
|
||||||
|
outlook.enable = true;
|
||||||
|
entra.enable = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# note this is not all Nyx-Module can do.
|
||||||
|
|
||||||
|
# other home.nix configurations
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,396 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
nyx-module = {
|
|
||||||
system = {
|
|
||||||
docker = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.str
|
|
||||||
# User to add to the docker group.";
|
|
||||||
username = "alice";
|
|
||||||
|
|
||||||
# mkOption type=lib.types.bool
|
|
||||||
# Whether to enable Docker service on boot.";
|
|
||||||
enableOnBoot = true;
|
|
||||||
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
rootless = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
openssh = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.bool
|
|
||||||
# Whether to allow password authentication.";
|
|
||||||
passwordAuth = false;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.str
|
|
||||||
# Whether to permit root login via SSH.";
|
|
||||||
permitRootLogin = "no";
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
podman = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.str
|
|
||||||
# User to add to the podman group.";
|
|
||||||
username = "alice";
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
vm = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.str
|
|
||||||
# User to add to virtualization groups.";
|
|
||||||
username = "alice";
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
zsh = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
ohMyZsh = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.str
|
|
||||||
# oh-my-zsh theme to use.";
|
|
||||||
theme = "xiong-chiamiov-plus";
|
|
||||||
|
|
||||||
# mkOption type=lib.types.listOf lib.types.str
|
|
||||||
# List of oh-my-zsh plugins to enable.";
|
|
||||||
plugins = [ "git" ];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
steam = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
remotePlay = true;
|
|
||||||
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
dedicatedServer = true;
|
|
||||||
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
localNetworkGameTransfers = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
flatpak = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
wireshark = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.str
|
|
||||||
# User to add to the wireshark group.";
|
|
||||||
username = "alice";
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
c-compiler = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
go = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
lua = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
python = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
rust = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
home = {
|
|
||||||
brave = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
standard = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.listOf lib.types.str
|
|
||||||
# List of additional Brave extension IDs to install.";
|
|
||||||
extra = [];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
signal-desktop = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.package
|
|
||||||
# Package to install for signal-desktop.";
|
|
||||||
package = pkgs.signal-desktop;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
vesktop = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.package
|
|
||||||
# Package to install for vesktop.";
|
|
||||||
package = pkgs.vesktop;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
rustdesk = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.package
|
|
||||||
# ''
|
|
||||||
package = pkgs.rustdesk;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
vscodium = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
standard = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.listOf lib.types.package
|
|
||||||
# List of extra VSCodium extensions to install.";
|
|
||||||
extra = [];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
classic-game-collection = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
prismlauncher = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
includeFfmpeg = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.listOf lib.types.package
|
|
||||||
# List of Java runtimes to make available for PrismLauncher.";
|
|
||||||
jdks = [ pkgs.jdk17 ];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
cava = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.attrs
|
|
||||||
settings = default = {;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.nullOr lib.types.lines
|
|
||||||
# ''
|
|
||||||
configText = null;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
spotify = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.package
|
|
||||||
# ''
|
|
||||||
package = pkgs.spotify;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
camera = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.package
|
|
||||||
# Camera GUI package to install.";
|
|
||||||
package = pkgs.snapshot;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
image-viewer = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.package
|
|
||||||
# Image viewer package to install (e.g. gwenview, feh, imv).";
|
|
||||||
package = pkgs.gwenview;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
krita = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
kdenlive = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
video-player = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.listOf lib.types.package
|
|
||||||
# List of video/media players to install (e.g. vlc, mpv, celluloid).";
|
|
||||||
packages = [ pkgs.vlc ];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
zoom = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.package
|
|
||||||
# Zoom package to install (e.g., pkgs.zoom-us).";
|
|
||||||
package = pkgs.zoom-us;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
obsidian = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
libreoffice = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
pdf-reader = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.package
|
|
||||||
# PDF or scanning GUI package to install (e.g. Okular, Evince, Xournal++).";
|
|
||||||
package = pkgs.kdeApplications.okular;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
printer-scan = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.package
|
|
||||||
# Printer/scanner GUI package to install.";
|
|
||||||
package = pkgs.simple-scan;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
thunderbird = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
protonvpn = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
tools = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.listOf lib.types.package
|
|
||||||
# Extra CLI tools to install in addition to the defaults.";
|
|
||||||
extra = [];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
zsh = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
private-webapps = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.package
|
|
||||||
# Browser package to use for private webapps.";
|
|
||||||
browser = pkgs.chromium;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
work-webapps = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.package
|
|
||||||
# Browser package to use for private webapps.";
|
|
||||||
browser = pkgs.chromium;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware = {
|
|
||||||
bluetooth = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
custom-kernel-surfacepro-kbl = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.enum [ "stable" "longtime" ]
|
|
||||||
# Choose which kernel version nixos-hardware will build for Surface Pro.";
|
|
||||||
kernelVersion = "stable";
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,845 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
nyx-module = {
|
|
||||||
system = {
|
|
||||||
# Docker (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Docker runtime and CLI
|
|
||||||
# - Docker Compose
|
|
||||||
# - User access via `docker` group
|
|
||||||
# - Optional rootless mode and cgroup v2 support
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Docker system module
|
|
||||||
# - username → User to add to the docker group
|
|
||||||
# - enableOnBoot → Start Docker service on boot (default: true)
|
|
||||||
# - rootless → Enable Docker rootless mode (disabled by default)
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Rootless mode is disabled by default
|
|
||||||
# - Uses cgroup v2 for better resource management on modern kernels
|
|
||||||
docker = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.str
|
|
||||||
# User to add to the docker group.";
|
|
||||||
username = "alice";
|
|
||||||
|
|
||||||
# mkOption type=lib.types.bool
|
|
||||||
# Whether to enable Docker service on boot.";
|
|
||||||
enableOnBoot = true;
|
|
||||||
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
rootless = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# OpenSSH (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - OpenSSH server (sshd) service
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable OpenSSH system module
|
|
||||||
# - passwordAuth → Allow password authentication (default: false)
|
|
||||||
# - permitRootLogin → Permit root login (default: "no")
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - By default, password authentication is disabled for better security
|
|
||||||
# - Root login is disabled unless explicitly enabled
|
|
||||||
openssh = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.bool
|
|
||||||
# Whether to allow password authentication.";
|
|
||||||
passwordAuth = false;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.str
|
|
||||||
# Whether to permit root login via SSH.";
|
|
||||||
permitRootLogin = "no";
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Podman (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Podman runtime and CLI
|
|
||||||
# - Podman Compose
|
|
||||||
# - User access via `podman` group
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Podman system module
|
|
||||||
# - username → User to add to the podman group
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Adds podman + podman-compose to system packages
|
|
||||||
# - Enables D-Bus socket activation for Podman
|
|
||||||
#
|
|
||||||
podman = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.str
|
|
||||||
# User to add to the podman group.";
|
|
||||||
username = "alice";
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# VM (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - QEMU/KVM virtualization via libvirt
|
|
||||||
# - virt-manager GUI
|
|
||||||
# - User access via libvirtd and kvm groups
|
|
||||||
# - Spice, dnsmasq, and bridge-utils for networking and display
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable VM system module
|
|
||||||
# - username → User to add to virtualization groups (required)
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - QEMU runs as root by default (can be adjusted)
|
|
||||||
# - virt-manager GUI is enabled automatically
|
|
||||||
# - Only generic "kvm" kernel module is forced (host picks intel/amd)
|
|
||||||
#
|
|
||||||
vm = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.str
|
|
||||||
# User to add to virtualization groups.";
|
|
||||||
username = "alice";
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Zsh (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Zsh shell
|
|
||||||
# - oh-my-zsh integration
|
|
||||||
# - Theme + plugins support
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Zsh system module
|
|
||||||
# - ohMyZsh → Enable oh-my-zsh integration
|
|
||||||
# - theme → oh-my-zsh theme (default: "xiong-chiamiov-plus")
|
|
||||||
# - plugins → List of oh-my-zsh plugins (default: [ "git" ])
|
|
||||||
#
|
|
||||||
zsh = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
ohMyZsh = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.str
|
|
||||||
# oh-my-zsh theme to use.";
|
|
||||||
theme = "xiong-chiamiov-plus";
|
|
||||||
|
|
||||||
# mkOption type=lib.types.listOf lib.types.str
|
|
||||||
# List of oh-my-zsh plugins to enable.";
|
|
||||||
plugins = [ "git" ];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Steam (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Steam client
|
|
||||||
# - Optional firewall openings for:
|
|
||||||
# * Remote Play
|
|
||||||
# * Source Dedicated Server
|
|
||||||
# * Local Network Game Transfers
|
|
||||||
# - ProtonUp tool for managing Proton versions
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Steam system module
|
|
||||||
# - openFirewall.remotePlay → Open firewall for Remote Play
|
|
||||||
# - openFirewall.dedicatedServer → Open firewall for Source Dedicated Server
|
|
||||||
# - openFirewall.localNetworkGameTransfers → Open firewall for LAN transfers
|
|
||||||
#
|
|
||||||
steam = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
remotePlay = true;
|
|
||||||
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
dedicatedServer = true;
|
|
||||||
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
localNetworkGameTransfers = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Flatpak (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Flatpak package manager
|
|
||||||
# - Flatpak service integration
|
|
||||||
# - XDG portals for sandboxed apps
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Flatpak system module
|
|
||||||
#
|
|
||||||
flatpak = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Wireshark (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Wireshark installation
|
|
||||||
# - Proper dumpcap permissions
|
|
||||||
# - Adds user to `wireshark` group
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Wireshark system module
|
|
||||||
# - username → User to add to the wireshark group (required)
|
|
||||||
#
|
|
||||||
wireshark = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.str
|
|
||||||
# User to add to the wireshark group.";
|
|
||||||
username = "alice";
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# C Compiler (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - GCC (C/C++)
|
|
||||||
# - Clang (alternative C/C++)
|
|
||||||
# - Mono (C#)
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable C compiler toolchain
|
|
||||||
#
|
|
||||||
c-compiler = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Go (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Go programming language toolchain
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Go system module
|
|
||||||
#
|
|
||||||
go = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Lua (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Lua (standard interpreter)
|
|
||||||
# - LuaJIT (Just-In-Time compiler)
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Lua system module
|
|
||||||
#
|
|
||||||
lua = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Python (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Python 3 interpreter
|
|
||||||
# - Pip (package manager)
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Python system module
|
|
||||||
#
|
|
||||||
python = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Rust (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Rust compiler (rustc)
|
|
||||||
# - Cargo (Rust package manager & build system)
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Rust system module
|
|
||||||
#
|
|
||||||
rust = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
home = {
|
|
||||||
# Brave Browser (Home Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Brave browser package
|
|
||||||
# - Optional standard and custom extension sets
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Brave browser
|
|
||||||
# - extensions.enable → Enable Brave extensions
|
|
||||||
# - extensions.standard→ Enable default extension set of extensions
|
|
||||||
# - extensions.extra → Extra extension IDs to install
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Default extensions include uBlock Origin, Proton Pass, Proton VPN
|
|
||||||
# - Extra extensions must be specified by Chrome Web Store ID
|
|
||||||
#
|
|
||||||
brave = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
standard = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.listOf lib.types.str
|
|
||||||
# List of additional Brave extension IDs to install.";
|
|
||||||
extra = [];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Signal Desktop (Home Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Signal Desktop secure messaging client
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Signal Desktop
|
|
||||||
# - package → Override package (default: pkgs.signal-desktop)
|
|
||||||
#
|
|
||||||
signal-desktop = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.package
|
|
||||||
# Package to install for signal-desktop.";
|
|
||||||
package = pkgs.signal-desktop;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Vesktop (Home Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Vesktop package (Discord client, Electron wrapper)
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Vesktop client
|
|
||||||
# - package → Override package (default: pkgs.vesktop)
|
|
||||||
#
|
|
||||||
vesktop = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.package
|
|
||||||
# Package to install for vesktop.";
|
|
||||||
package = pkgs.vesktop;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# RustDesk (Home Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - RustDesk remote desktop software (TeamViewer/AnyDesk alternative)
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable RustDesk
|
|
||||||
# - package → Override package (default: pkgs.rustdesk)
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Estimated build time: ~? Long....
|
|
||||||
#
|
|
||||||
rustdesk = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.package
|
|
||||||
# ''
|
|
||||||
package = pkgs.rustdesk;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# VSCodium (Home Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - VSCodium editor (open-source build of VS Code)
|
|
||||||
# - Optional extension sets
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable VSCodium
|
|
||||||
# - extensions.enable → Enable extensions
|
|
||||||
# - extensions.standard→ Enable standard extensions
|
|
||||||
# - extensions.extra → Extra extensions to install
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Some Microsoft extensions may be broken (e.g., ms-python.python)
|
|
||||||
#
|
|
||||||
vscodium = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
standard = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.listOf lib.types.package
|
|
||||||
# List of extra VSCodium extensions to install.";
|
|
||||||
extra = [];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Classic Game Collection (Home Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Small set of lightweight, classic desktop games
|
|
||||||
#
|
|
||||||
# Included:
|
|
||||||
# - KPat (Patience / Solitaire)
|
|
||||||
# - KSudoku
|
|
||||||
# - Space Cadet Pinball
|
|
||||||
# - Palapeli (jigsaw puzzles)
|
|
||||||
# - KMines (Minesweeper clone)
|
|
||||||
# - KBlocks (Tetris clone)
|
|
||||||
# - KMahjongg (Mahjong solitaire)
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable the Classic Game Collection
|
|
||||||
#
|
|
||||||
classic-game-collection = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# PrismLauncher (Home Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - PrismLauncher (Minecraft launcher)
|
|
||||||
# - Optional inclusion of ffmpeg (some mods require it)
|
|
||||||
# - Configurable list of JDKs (for modpacks that need specific versions)
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable PrismLauncher
|
|
||||||
# - includeFfmpeg→ Include ffmpeg for mods
|
|
||||||
# - jdks → List of Java runtimes for PrismLauncher
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Installed via home.packages
|
|
||||||
# - JDKs are added to PATH so PrismLauncher can discover them
|
|
||||||
#
|
|
||||||
prismlauncher = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
includeFfmpeg = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.listOf lib.types.package
|
|
||||||
# List of Java runtimes to make available for PrismLauncher.";
|
|
||||||
jdks = [ pkgs.jdk17 ];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# CAVA (Home Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - CAVA audio visualizer
|
|
||||||
# - Declarative configuration via Nix
|
|
||||||
# - Support for structured settings or raw config override
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable CAVA (home module)
|
|
||||||
# - settings → Declarative structured configuration (default: ALSA, 60 FPS, basic colors)
|
|
||||||
# - configText → Raw configuration text (overrides settings if set)
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Writes config to ~/.config/cava/config
|
|
||||||
# - If configText is set, settings are ignored
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# nyx-module.home.cava = {
|
|
||||||
# enable = true;
|
|
||||||
# settings.general.framerate = 120;
|
|
||||||
# settings.input.method = "pulse";
|
|
||||||
# };
|
|
||||||
cava = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.attrs
|
|
||||||
settings = default = {;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.nullOr lib.types.lines
|
|
||||||
# ''
|
|
||||||
configText = null;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Spotify (music streaming client)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Spotify package (default)
|
|
||||||
# - Optional override to install a different package
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Installs into home.packages
|
|
||||||
#
|
|
||||||
spotify = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.package
|
|
||||||
# ''
|
|
||||||
package = pkgs.spotify;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Camera GUI module
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Camera GUI package (default: snapshot)
|
|
||||||
# - libcamera (always installed, required backend)
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - You can override the GUI package with another (e.g., cheese, kamoso)
|
|
||||||
#
|
|
||||||
camera = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.package
|
|
||||||
# Camera GUI package to install.";
|
|
||||||
package = pkgs.snapshot;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Image Viewer
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Installs a chosen image viewer application
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Defaults to Gwenview
|
|
||||||
#
|
|
||||||
image-viewer = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.package
|
|
||||||
# Image viewer package to install (e.g. gwenview, feh, imv).";
|
|
||||||
package = pkgs.gwenview;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Krita (Digital Painting Software)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Krita package (open-source digital painting and illustration software)
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Installed via home.packages
|
|
||||||
#
|
|
||||||
krita = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Kdenlive (video editor)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Kdenlive video editor
|
|
||||||
# - Installed via home.packages
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Package location depends on nixpkgs version:
|
|
||||||
# * pkgs.kdePackages.kdenlive (preferred, modern KDE split)
|
|
||||||
# * pkgs.libsForQt5.kdenlive (older releases, fallback)
|
|
||||||
#
|
|
||||||
kdenlive = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Video Player(s)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Installs one or more chosen video/media players
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Defaults to [ vlc ]
|
|
||||||
#
|
|
||||||
video-player = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.listOf lib.types.package
|
|
||||||
# List of video/media players to install (e.g. vlc, mpv, celluloid).";
|
|
||||||
packages = [ pkgs.vlc ];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Zoom (video conferencing client)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Zoom package (default: pkgs.zoom-us)
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - `package`: override the package (e.g. pkgs.zoom)
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Installed via home.packages
|
|
||||||
#
|
|
||||||
zoom = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.package
|
|
||||||
# Zoom package to install (e.g., pkgs.zoom-us).";
|
|
||||||
package = pkgs.zoom-us;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Obsidian (note-taking / PKM app)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Obsidian package via home.packages
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Consider adding theming support later
|
|
||||||
# (e.g., https://github.com/jackiejude/obsidian-temple-os)
|
|
||||||
#
|
|
||||||
obsidian = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# LibreOffice (office suite)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - LibreOffice package via home.packages
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Simple module, just adds LibreOffice to the user environment
|
|
||||||
#
|
|
||||||
libreoffice = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# PDF Viewer / Scanner
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Install a chosen PDF or scanning GUI application
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Defaults to Okular
|
|
||||||
#
|
|
||||||
pdf-reader = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.package
|
|
||||||
# PDF or scanning GUI package to install (e.g. Okular, Evince, Xournal++).";
|
|
||||||
package = pkgs.kdeApplications.okular;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Printer GUI (scanning/printing tools)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Configurable GUI package for printing/scanning via home.packages
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Default is `simple-scan` (GNOME Document Scanner)
|
|
||||||
# - Can be overridden with another package such as `system-config-printer`
|
|
||||||
#
|
|
||||||
printer-scan = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.package
|
|
||||||
# Printer/scanner GUI package to install.";
|
|
||||||
package = pkgs.simple-scan;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Thunderbird (email client)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Thunderbird package via home.packages
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Simple module, just adds Thunderbird to the user environment
|
|
||||||
#
|
|
||||||
thunderbird = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# ProtonVPN (Home Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - ProtonVPN GUI client
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable ProtonVPN client
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - GUI only by default (CLI version available as pkgs.protonvpn-cli)
|
|
||||||
|
|
||||||
protonvpn = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# CLI Tools (Home Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - A curated set of command-line utilities in user’s environment
|
|
||||||
# - Examples: fastfetch, hyfetch, bat, fzf, tree, lsd, tmux
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable CLI tools collection
|
|
||||||
# - extra → List of extra packages to install
|
|
||||||
tools = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.listOf lib.types.package
|
|
||||||
# Extra CLI tools to install in addition to the defaults.";
|
|
||||||
extra = [];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Zsh (Home Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Zsh shell in the user profile
|
|
||||||
# - Zsh completion, autosuggestions, and syntax highlighting
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Zsh in the user profile
|
|
||||||
zsh = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Private Webapps
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Browser-based desktop entries for personal/private webapps
|
|
||||||
# - Currently supported:
|
|
||||||
# • WhatsApp
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - browser → Selects which browser package to use (default: chromium)
|
|
||||||
# - whatsapp → Enable WhatsApp webapp launcher
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Uses --app mode to create minimal browser windows
|
|
||||||
# - Additional services can be added following the same pattern
|
|
||||||
private-webapps = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.package
|
|
||||||
# Browser package to use for private webapps.";
|
|
||||||
browser = pkgs.chromium;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Work Webapps
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Browser-based desktop entries for work-related webapps
|
|
||||||
# - Currently supported:
|
|
||||||
# • Slack
|
|
||||||
# • Microsoft Teams
|
|
||||||
# • Outlook Web
|
|
||||||
# • Microsoft Entra
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - browser → Selects which browser package to use (default: chromium)
|
|
||||||
# - slack → Enable Slack webapp launcher
|
|
||||||
# - teams → Enable Teams webapp launcher
|
|
||||||
# - outlook → Enable Outlook webapp launcher
|
|
||||||
# - entra → Enable Entra webapp launcher
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Uses --app mode for minimal windows (like PWAs)
|
|
||||||
# - Outlook entry uses a custom profile directory for isolation
|
|
||||||
work-webapps = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.package
|
|
||||||
# Browser package to use for private webapps.";
|
|
||||||
browser = pkgs.chromium;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware = {
|
|
||||||
bluetooth = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Custom Kernel Module for Microsoft Surface Pro (Kaby Lake / i5-7300U)
|
|
||||||
#
|
|
||||||
# Requires:
|
|
||||||
# - inputs.nixos-hardware.nixosModules.microsoft-surface-pro-intel
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Estimated kernel build time: ~4h30m
|
|
||||||
#
|
|
||||||
custom-kernel-surfacepro-kbl = {
|
|
||||||
# mkEnableOption (bool)
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# mkOption type=lib.types.enum [ "stable" "longtime" ]
|
|
||||||
# Choose which kernel version nixos-hardware will build for Surface Pro.";
|
|
||||||
kernelVersion = "stable";
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,740 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
nyx-module = {
|
|
||||||
system = {
|
|
||||||
# Docker (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Docker runtime and CLI
|
|
||||||
# - Docker Compose
|
|
||||||
# - User access via `docker` group
|
|
||||||
# - Optional rootless mode and cgroup v2 support
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Docker system module
|
|
||||||
# - username → User to add to the docker group
|
|
||||||
# - enableOnBoot → Start Docker service on boot (default: true)
|
|
||||||
# - rootless → Enable Docker rootless mode (disabled by default)
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Rootless mode is disabled by default
|
|
||||||
# - Uses cgroup v2 for better resource management on modern kernels
|
|
||||||
docker = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
username = "alice";
|
|
||||||
|
|
||||||
enableOnBoot = true;
|
|
||||||
|
|
||||||
rootless = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# OpenSSH (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - OpenSSH server (sshd) service
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable OpenSSH system module
|
|
||||||
# - passwordAuth → Allow password authentication (default: false)
|
|
||||||
# - permitRootLogin → Permit root login (default: "no")
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - By default, password authentication is disabled for better security
|
|
||||||
# - Root login is disabled unless explicitly enabled
|
|
||||||
openssh = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
passwordAuth = false;
|
|
||||||
|
|
||||||
permitRootLogin = "no";
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Podman (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Podman runtime and CLI
|
|
||||||
# - Podman Compose
|
|
||||||
# - User access via `podman` group
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Podman system module
|
|
||||||
# - username → User to add to the podman group
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Adds podman + podman-compose to system packages
|
|
||||||
# - Enables D-Bus socket activation for Podman
|
|
||||||
#
|
|
||||||
podman = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
username = "alice";
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# VM (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - QEMU/KVM virtualization via libvirt
|
|
||||||
# - virt-manager GUI
|
|
||||||
# - User access via libvirtd and kvm groups
|
|
||||||
# - Spice, dnsmasq, and bridge-utils for networking and display
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable VM system module
|
|
||||||
# - username → User to add to virtualization groups (required)
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - QEMU runs as root by default (can be adjusted)
|
|
||||||
# - virt-manager GUI is enabled automatically
|
|
||||||
# - Only generic "kvm" kernel module is forced (host picks intel/amd)
|
|
||||||
#
|
|
||||||
vm = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
username = "alice";
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Zsh (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Zsh shell
|
|
||||||
# - oh-my-zsh integration
|
|
||||||
# - Theme + plugins support
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Zsh system module
|
|
||||||
# - ohMyZsh → Enable oh-my-zsh integration
|
|
||||||
# - theme → oh-my-zsh theme (default: "xiong-chiamiov-plus")
|
|
||||||
# - plugins → List of oh-my-zsh plugins (default: [ "git" ])
|
|
||||||
#
|
|
||||||
zsh = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
ohMyZsh = true;
|
|
||||||
|
|
||||||
theme = "xiong-chiamiov-plus";
|
|
||||||
|
|
||||||
plugins = [ "git" ];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Steam (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Steam client
|
|
||||||
# - Optional firewall openings for:
|
|
||||||
# * Remote Play
|
|
||||||
# * Source Dedicated Server
|
|
||||||
# * Local Network Game Transfers
|
|
||||||
# - ProtonUp tool for managing Proton versions
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Steam system module
|
|
||||||
# - openFirewall.remotePlay → Open firewall for Remote Play
|
|
||||||
# - openFirewall.dedicatedServer → Open firewall for Source Dedicated Server
|
|
||||||
# - openFirewall.localNetworkGameTransfers → Open firewall for LAN transfers
|
|
||||||
#
|
|
||||||
steam = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
remotePlay = true;
|
|
||||||
|
|
||||||
dedicatedServer = true;
|
|
||||||
|
|
||||||
localNetworkGameTransfers = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Flatpak (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Flatpak package manager
|
|
||||||
# - Flatpak service integration
|
|
||||||
# - XDG portals for sandboxed apps
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Flatpak system module
|
|
||||||
#
|
|
||||||
flatpak = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Wireshark (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Wireshark installation
|
|
||||||
# - Proper dumpcap permissions
|
|
||||||
# - Adds user to `wireshark` group
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Wireshark system module
|
|
||||||
# - username → User to add to the wireshark group (required)
|
|
||||||
#
|
|
||||||
wireshark = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
username = "alice";
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# C Compiler (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - GCC (C/C++)
|
|
||||||
# - Clang (alternative C/C++)
|
|
||||||
# - Mono (C#)
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable C compiler toolchain
|
|
||||||
#
|
|
||||||
c-compiler = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Go (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Go programming language toolchain
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Go system module
|
|
||||||
#
|
|
||||||
go = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Lua (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Lua (standard interpreter)
|
|
||||||
# - LuaJIT (Just-In-Time compiler)
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Lua system module
|
|
||||||
#
|
|
||||||
lua = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Python (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Python 3 interpreter
|
|
||||||
# - Pip (package manager)
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Python system module
|
|
||||||
#
|
|
||||||
python = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Rust (System Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Rust compiler (rustc)
|
|
||||||
# - Cargo (Rust package manager & build system)
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Rust system module
|
|
||||||
#
|
|
||||||
rust = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
home = {
|
|
||||||
# Brave Browser (Home Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Brave browser package
|
|
||||||
# - Optional standard and custom extension sets
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Brave browser
|
|
||||||
# - extensions.enable → Enable Brave extensions
|
|
||||||
# - extensions.standard→ Enable default extension set of extensions
|
|
||||||
# - extensions.extra → Extra extension IDs to install
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Default extensions include uBlock Origin, Proton Pass, Proton VPN
|
|
||||||
# - Extra extensions must be specified by Chrome Web Store ID
|
|
||||||
#
|
|
||||||
brave = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
standard = true;
|
|
||||||
|
|
||||||
extra = [];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Signal Desktop (Home Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Signal Desktop secure messaging client
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Signal Desktop
|
|
||||||
# - package → Override package (default: pkgs.signal-desktop)
|
|
||||||
#
|
|
||||||
signal-desktop = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
package = pkgs.signal-desktop;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Vesktop (Home Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Vesktop package (Discord client, Electron wrapper)
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Vesktop client
|
|
||||||
# - package → Override package (default: pkgs.vesktop)
|
|
||||||
#
|
|
||||||
vesktop = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
package = pkgs.vesktop;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# RustDesk (Home Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - RustDesk remote desktop software (TeamViewer/AnyDesk alternative)
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable RustDesk
|
|
||||||
# - package → Override package (default: pkgs.rustdesk)
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Estimated build time: ~? Long....
|
|
||||||
#
|
|
||||||
rustdesk = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
package = pkgs.rustdesk;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# VSCodium (Home Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - VSCodium editor (open-source build of VS Code)
|
|
||||||
# - Optional extension sets
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable VSCodium
|
|
||||||
# - extensions.enable → Enable extensions
|
|
||||||
# - extensions.standard→ Enable standard extensions
|
|
||||||
# - extensions.extra → Extra extensions to install
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Some Microsoft extensions may be broken (e.g., ms-python.python)
|
|
||||||
#
|
|
||||||
vscodium = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
standard = true;
|
|
||||||
|
|
||||||
extra = [];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Classic Game Collection (Home Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Small set of lightweight, classic desktop games
|
|
||||||
#
|
|
||||||
# Included:
|
|
||||||
# - KPat (Patience / Solitaire)
|
|
||||||
# - KSudoku
|
|
||||||
# - Space Cadet Pinball
|
|
||||||
# - Palapeli (jigsaw puzzles)
|
|
||||||
# - KMines (Minesweeper clone)
|
|
||||||
# - KBlocks (Tetris clone)
|
|
||||||
# - KMahjongg (Mahjong solitaire)
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable the Classic Game Collection
|
|
||||||
#
|
|
||||||
classic-game-collection = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# PrismLauncher (Home Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - PrismLauncher (Minecraft launcher)
|
|
||||||
# - Optional inclusion of ffmpeg (some mods require it)
|
|
||||||
# - Configurable list of JDKs (for modpacks that need specific versions)
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable PrismLauncher
|
|
||||||
# - includeFfmpeg→ Include ffmpeg for mods
|
|
||||||
# - jdks → List of Java runtimes for PrismLauncher
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Installed via home.packages
|
|
||||||
# - JDKs are added to PATH so PrismLauncher can discover them
|
|
||||||
#
|
|
||||||
prismlauncher = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
includeFfmpeg = true;
|
|
||||||
|
|
||||||
jdks = [ pkgs.jdk17 ];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# CAVA (Home Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - CAVA audio visualizer
|
|
||||||
# - Declarative configuration via Nix
|
|
||||||
# - Support for structured settings or raw config override
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable CAVA (home module)
|
|
||||||
# - settings → Declarative structured configuration (default: ALSA, 60 FPS, basic colors)
|
|
||||||
# - configText → Raw configuration text (overrides settings if set)
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Writes config to ~/.config/cava/config
|
|
||||||
# - If configText is set, settings are ignored
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# nyx-module.home.cava = {
|
|
||||||
# enable = true;
|
|
||||||
# settings.general.framerate = 120;
|
|
||||||
# settings.input.method = "pulse";
|
|
||||||
# };
|
|
||||||
cava = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
settings = default = {;
|
|
||||||
|
|
||||||
configText = null;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Spotify (music streaming client)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Spotify package (default)
|
|
||||||
# - Optional override to install a different package
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Installs into home.packages
|
|
||||||
#
|
|
||||||
spotify = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
package = pkgs.spotify;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Camera GUI module
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Camera GUI package (default: snapshot)
|
|
||||||
# - libcamera (always installed, required backend)
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - You can override the GUI package with another (e.g., cheese, kamoso)
|
|
||||||
#
|
|
||||||
camera = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
package = pkgs.snapshot;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Image Viewer
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Installs a chosen image viewer application
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Defaults to Gwenview
|
|
||||||
#
|
|
||||||
image-viewer = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
package = pkgs.gwenview;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Krita (Digital Painting Software)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Krita package (open-source digital painting and illustration software)
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Installed via home.packages
|
|
||||||
#
|
|
||||||
krita = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Kdenlive (video editor)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Kdenlive video editor
|
|
||||||
# - Installed via home.packages
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Package location depends on nixpkgs version:
|
|
||||||
# * pkgs.kdePackages.kdenlive (preferred, modern KDE split)
|
|
||||||
# * pkgs.libsForQt5.kdenlive (older releases, fallback)
|
|
||||||
#
|
|
||||||
kdenlive = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Video Player(s)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Installs one or more chosen video/media players
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Defaults to [ vlc ]
|
|
||||||
#
|
|
||||||
video-player = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
packages = [ pkgs.vlc ];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Zoom (video conferencing client)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Zoom package (default: pkgs.zoom-us)
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - `package`: override the package (e.g. pkgs.zoom)
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Installed via home.packages
|
|
||||||
#
|
|
||||||
zoom = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
package = pkgs.zoom-us;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Obsidian (note-taking / PKM app)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Obsidian package via home.packages
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Consider adding theming support later
|
|
||||||
# (e.g., https://github.com/jackiejude/obsidian-temple-os)
|
|
||||||
#
|
|
||||||
obsidian = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# LibreOffice (office suite)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - LibreOffice package via home.packages
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Simple module, just adds LibreOffice to the user environment
|
|
||||||
#
|
|
||||||
libreoffice = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# PDF Viewer / Scanner
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Install a chosen PDF or scanning GUI application
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Defaults to Okular
|
|
||||||
#
|
|
||||||
pdf-reader = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
package = pkgs.kdeApplications.okular;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Printer GUI (scanning/printing tools)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Configurable GUI package for printing/scanning via home.packages
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Default is `simple-scan` (GNOME Document Scanner)
|
|
||||||
# - Can be overridden with another package such as `system-config-printer`
|
|
||||||
#
|
|
||||||
printer-scan = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
package = pkgs.simple-scan;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Thunderbird (email client)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Thunderbird package via home.packages
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Simple module, just adds Thunderbird to the user environment
|
|
||||||
#
|
|
||||||
thunderbird = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# ProtonVPN (Home Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - ProtonVPN GUI client
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable ProtonVPN client
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - GUI only by default (CLI version available as pkgs.protonvpn-cli)
|
|
||||||
|
|
||||||
protonvpn = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# CLI Tools (Home Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - A curated set of command-line utilities in user’s environment
|
|
||||||
# - Examples: fastfetch, hyfetch, bat, fzf, tree, lsd, tmux
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable CLI tools collection
|
|
||||||
# - extra → List of extra packages to install
|
|
||||||
tools = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
extra = [];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Zsh (Home Module)
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Zsh shell in the user profile
|
|
||||||
# - Zsh completion, autosuggestions, and syntax highlighting
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - enable → Enable Zsh in the user profile
|
|
||||||
zsh = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Private Webapps
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Browser-based desktop entries for personal/private webapps
|
|
||||||
# - Currently supported:
|
|
||||||
# • WhatsApp
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - browser → Selects which browser package to use (default: chromium)
|
|
||||||
# - whatsapp → Enable WhatsApp webapp launcher
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Uses --app mode to create minimal browser windows
|
|
||||||
# - Additional services can be added following the same pattern
|
|
||||||
private-webapps = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
browser = pkgs.chromium;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Work Webapps
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# - Browser-based desktop entries for work-related webapps
|
|
||||||
# - Currently supported:
|
|
||||||
# • Slack
|
|
||||||
# • Microsoft Teams
|
|
||||||
# • Outlook Web
|
|
||||||
# • Microsoft Entra
|
|
||||||
#
|
|
||||||
# Options:
|
|
||||||
# - browser → Selects which browser package to use (default: chromium)
|
|
||||||
# - slack → Enable Slack webapp launcher
|
|
||||||
# - teams → Enable Teams webapp launcher
|
|
||||||
# - outlook → Enable Outlook webapp launcher
|
|
||||||
# - entra → Enable Entra webapp launcher
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Uses --app mode for minimal windows (like PWAs)
|
|
||||||
# - Outlook entry uses a custom profile directory for isolation
|
|
||||||
work-webapps = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
browser = pkgs.chromium;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware = {
|
|
||||||
bluetooth = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Custom Kernel Module for Microsoft Surface Pro (Kaby Lake / i5-7300U)
|
|
||||||
#
|
|
||||||
# Requires:
|
|
||||||
# - inputs.nixos-hardware.nixosModules.microsoft-surface-pro-intel
|
|
||||||
#
|
|
||||||
# Notes:
|
|
||||||
# - Estimated kernel build time: ~4h30m
|
|
||||||
#
|
|
||||||
custom-kernel-surfacepro-kbl = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
kernelVersion = "stable";
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,291 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
nyx-module = {
|
|
||||||
system = {
|
|
||||||
docker = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
username = "alice";
|
|
||||||
|
|
||||||
enableOnBoot = true;
|
|
||||||
|
|
||||||
rootless = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
openssh = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
passwordAuth = false;
|
|
||||||
|
|
||||||
permitRootLogin = "no";
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
podman = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
username = "alice";
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
vm = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
username = "alice";
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
zsh = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
ohMyZsh = true;
|
|
||||||
|
|
||||||
theme = "xiong-chiamiov-plus";
|
|
||||||
|
|
||||||
plugins = [ "git" ];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
steam = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
remotePlay = true;
|
|
||||||
|
|
||||||
dedicatedServer = true;
|
|
||||||
|
|
||||||
localNetworkGameTransfers = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
flatpak = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
wireshark = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
username = "alice";
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
c-compiler = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
go = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
lua = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
python = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
rust = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
home = {
|
|
||||||
brave = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
standard = true;
|
|
||||||
|
|
||||||
extra = [];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
signal-desktop = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
package = pkgs.signal-desktop;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
vesktop = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
package = pkgs.vesktop;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
rustdesk = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
package = pkgs.rustdesk;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
vscodium = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
standard = true;
|
|
||||||
|
|
||||||
extra = [];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
classic-game-collection = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
prismlauncher = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
includeFfmpeg = true;
|
|
||||||
|
|
||||||
jdks = [ pkgs.jdk17 ];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
cava = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
settings = default = {;
|
|
||||||
|
|
||||||
configText = null;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
spotify = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
package = pkgs.spotify;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
camera = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
package = pkgs.snapshot;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
image-viewer = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
package = pkgs.gwenview;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
krita = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
kdenlive = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
video-player = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
packages = [ pkgs.vlc ];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
zoom = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
package = pkgs.zoom-us;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
obsidian = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
libreoffice = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
pdf-reader = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
package = pkgs.kdeApplications.okular;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
printer-scan = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
package = pkgs.simple-scan;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
thunderbird = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
protonvpn = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
tools = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
extra = [];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
zsh = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
private-webapps = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
browser = pkgs.chromium;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
work-webapps = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
browser = pkgs.chromium;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware = {
|
|
||||||
bluetooth = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
custom-kernel-surfacepro-kbl = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
kernelVersion = "stable";
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue