nixos-configs/modules/default.nix

129 lines
3 KiB
Nix
Raw Normal View History

2025-01-21 13:49:09 -05:00
{
self ? {},
description ? false,
}: let
module = mod: desc:
if description
then desc
else mod;
in {
base =
module
(import ./base self)
''
Sets up locale, nix config, binary caches, general packages and some
miscellaneous configs I might want on every device I use.
'';
base-droid =
module
(import ./base/default-droid.nix self)
''
Sets up locale, nix config, binary caches, general packages and some
miscellaneous configs I might want on every nix-on-droid device I use.
'';
borgbackup =
module
(import ./borgbackup)
''
Sets up a wrapper around `services.borgbackup` to setup default behaviour
and make configuration of backups easier.
'';
caddy-plus =
module
(import ./caddy-plus self)
''
Extends the caddy options to allow declaring subdirectory routes and
reverse proxy directives through nix code.
'';
desktop =
module
(import ./desktop self)
''
Sets up a Display Manager, a Desktop Environment and themes for any graphical
apps to use the Dracula Theme. This module uses Hyprland as window manager and
AGS / Astal for the UI.
'';
docker =
module
(import ./docker self.inputs.khepri)
''
Imports my [Khepri fork](https://github.com/matt1432/khepri), sets default
options such as BTRFS filesystem and adds an update script for images.
'';
esphome-plus =
module
(import ./esphome-plus)
''
Fixes a bug with compilation of m5-atom-stack firmware and allows declaring
firmware configurations in nix code.
'';
ha-plus =
module
(import ./ha-plus)
''
Extends the home-assistant options to allow declaring the content of specific
configuration files in the home-assistant configuration directory such as
custom sentences through nix code.
'';
kmscon =
module
(import ./kmscon)
''
Extends the kmscon options to add more descriptive ones.
'';
meta =
module
(import ./meta)
''
Adds options to declare the documentation of my devices that will be
generated to `./configurations/README.md`.
'';
nvidia =
module
(import ./nvidia)
''
Abstracts NVIDIA options and miscellaneous fixes behind simpler options.
'';
plymouth =
module
(import ./plymouth)
''
Sets some boot options to make the boot sequence cleaner.
'';
server =
module
(import ./server)
''
Sets up sshd, tailscale and related configurations.
'';
tmux =
module
(import ./tmux)
''
Uses the home-manager tmux module to declare my custom configuration and
links it to `/etc` to set it globally.
'';
wyoming-plus =
module
(import ./wyoming-plus)
''
Extends the `wyoming.openwakeword` options to allow declaring flags used
by the [fork](https://github.com/rhasspy/wyoming-openwakeword/pull/17)
of `wyoming-openwakeword` exposed by this module.
'';
}