Allow for autoloading modules

Autoloads files within modules/ and makes them available by their module
type and name, e.g. `mixins-zsh`, `editor-nvim` and `users-opdavies`
when imported with `inputs.self.nixosModules`.

Based on afab322e6d/modules/default.nix.

This assumes there will be a modules/*.nix file and currently doesn't
work with modules/*/default.nix. This is something I'd like to add in
the future.

I also want find a cleaner way to pass arguments into these shortcuts as
this also doesn't work in their implementation as far as I can see.
This commit is contained in:
Oliver Davies 2025-04-10 08:56:11 +01:00
parent 797d1206b0
commit eea806e0f8
16 changed files with 140 additions and 63 deletions

View file

@ -1,4 +1,4 @@
{ username, ... }:
{ inputs, username, ... }:
let
git = {
@ -7,26 +7,26 @@ let
};
in
{
imports = [
../../modules/editor/nvim.nix
../../modules/mixins/common
../../modules/mixins/direnv.nix
../../modules/mixins/docker.nix
../../modules/mixins/fzf.nix
../../modules/mixins/node.nix
../../modules/mixins/phpactor
../../modules/mixins/ranger.nix
../../modules/mixins/scripts
../../modules/mixins/starship.nix
../../modules/mixins/tmux.nix
../../modules/mixins/zsh
imports = with inputs.self.nixosModules; [
editor-nvim
mixins-common
mixins-direnv
mixins-docker
mixins-fzf
mixins-node
mixins-phpactor
mixins-ranger
mixins-scripts
mixins-starship
mixins-tmux
mixins-zsh
users-opdavies
(import ../../modules/mixins/git.nix { inherit git; })
./modules/notes.nix
./modules/wiki.nix
../../users/opdavies
];
wsl = {

View file

@ -1,11 +1,12 @@
{
modulesPath,
inputs,
lib,
modulesPath,
pkgs,
...
}:
{
imports = [
imports = with inputs.self.nixosModules; [
(modulesPath + "/installer/scan/not-detected.nix")
(modulesPath + "/profiles/qemu-guest.nix")
@ -16,7 +17,7 @@
./security
./services
../../users/opdavies
../../modules/users/opdavies.nix
];
nix = {

View file

@ -1,16 +1,18 @@
{ inputs, ... }:
{
imports = [
imports = with inputs.self.nixosModules; [
./hardware-configuration.nix
./hardware.nix
./programs.nix
./services.nix
../../modules/mixins/common
../../modules/mixins/zsh
mixins-common
mixins-zsh
../../users/opdavies
../../users/eric
../../users/luke
users-opdavies
users-eric
users-luke
];
# Bootloader.

View file

@ -2,15 +2,19 @@
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ inputs, ... }:
{
imports = [
imports = with inputs.self.nixosModules; [
./hardware-configuration.nix
./secrets.nix
./services.nix
../../modules/mixins/common
../../modules/mixins/docker.nix
../../modules/mixins/zsh
mixins-common
mixins-docker
mixins-zsh
users-opdavies
./modules/acme.nix
./modules/audiobookshelf.nix
@ -19,8 +23,6 @@
./modules/immich.nix
./modules/jellyfin.nix
./modules/paperless.nix
../../users/opdavies
];
nixosModules = {

View file

@ -1,4 +1,4 @@
{ pkgs, ... }:
{ inputs, pkgs, ... }:
let
git = {
@ -7,35 +7,35 @@ let
};
in
{
imports = [
imports = with inputs.self.nixosModules; [
./hardware-configuration.nix
./secrets.nix
../../modules/editor/nvim.nix
../../modules/mixins/bluetooth.nix
../../modules/mixins/common
../../modules/mixins/direnv.nix
../../modules/mixins/docker.nix
../../modules/mixins/firefox.nix
../../modules/mixins/flameshot.nix
../../modules/mixins/fonts.nix
../../modules/mixins/fzf.nix
../../modules/mixins/gnupg.nix
../../modules/mixins/gtk.nix
../../modules/mixins/qutebrowser.nix
../../modules/mixins/mpv.nix
../../modules/mixins/node.nix
../../modules/mixins/phpactor
../../modules/mixins/pipewire.nix
../../modules/mixins/ranger.nix
../../modules/mixins/screenkey.nix
../../modules/mixins/scripts
../../modules/mixins/starship.nix
../../modules/mixins/thunar.nix
../../modules/mixins/tmux.nix
../../modules/mixins/zsh
../../modules/profiles/dwm
../../modules/profiles/xbanish.nix
editor-nvim
mixins-bluetooth
mixins-common
mixins-direnv
mixins-docker
mixins-firefox
mixins-flameshot
mixins-fonts
mixins-fzf
mixins-gnupg
mixins-gtk
mixins-qutebrowser
mixins-mpv
mixins-node
mixins-phpactor
mixins-pipewire
mixins-ranger
mixins-screenkey
mixins-scripts
mixins-starship
mixins-thunar
mixins-tmux
mixins-zsh
profiles-dwm
profiles-xbanish
(import ../../modules/mixins/git.nix { inherit git; })
@ -45,7 +45,7 @@ in
];
})
../../users/opdavies
users-opdavies
./modules/cron.nix
./modules/neomutt.nix

View file

@ -1,7 +1,7 @@
{ pkgs, ... }:
{ inputs, pkgs, ... }:
{
imports = [
imports = with inputs.self.nixosModules; [
./hardware-configuration.nix
./hardware.nix
./programs.nix
@ -9,9 +9,9 @@
./services
./users.nix
../../modules/mixins/common
mixins-common
../../users/opdavies
users-opdavies
];
boot = {