moving to new config

This commit is contained in:
christoph.hollizeck 2024-03-22 17:52:40 +01:00
parent 6014906fd2
commit 5490596247
8 changed files with 224 additions and 30 deletions

View file

@ -1,21 +1,43 @@
{ lib {
, pkgs # Snowfall Lib provides a customized `lib` instance with access to your flake's library
, config # as well as the libraries available from your flake's inputs.
lib
, # An instance of `pkgs` with your overlays and packages applied is also available.
pkgs
, # You also have access to your flake's inputs.
inputs
, # Additional metadata is provided by Snowfall Lib.
home
, # The home architecture for this host (eg. `x86_64-linux`).
target
, # The Snowfall Lib target for this home (eg. `x86_64-home`).
format
, # A normalized name for the home target (eg. `home`).
virtual
, # A boolean to determine whether this home is a virtual target using nixos-generators.
host
, # The host name for this home.
# All other arguments come from the home home.
config
, ... , ...
}: }:
# User information gathered by Snowfall Lib is available. with lib.wyrdgard; {
let wyrdgard = {
user = {
enable = true;
name = config.snowfallorg.user.name; name = config.snowfallorg.user.name;
home = config.snowfallorg.user.home.directory; };
in
{
home = {
packages = with pkgs; [ neovim steam discord ];
sessionVariables = { EDITOR = "nvim"; }; submodule = {
basics.enable = true;
graphical-interface.enable = true;
};
shellAliases = { vimdiff = "nvim -d"; }; system.hardware = {
audio.enable = true;
bluetooth.enable = true;
networking.enable = true;
};
stateVersion = "23.11";
}; };
} }

62
lib/module/default.nix Normal file
View file

@ -0,0 +1,62 @@
{ lib, ... }:
with lib; rec {
## Create a NixOS module option.
##
## ```nix
## lib.mkOpt nixpkgs.lib.types.str "My default" "Description of my option."
## ```
##
#@ Type -> Any -> String
mkOpt = type: default: description:
mkOption { inherit type default description; };
## Create a NixOS module option without a description.
##
## ```nix
## lib.mkOpt' nixpkgs.lib.types.str "My default"
## ```
##
#@ Type -> Any -> String
mkOpt' = type: default: mkOpt type default null;
## Create a boolean NixOS module option.
##
## ```nix
## lib.mkBoolOpt true "Description of my option."
## ```
##
#@ Type -> Any -> String
mkBoolOpt = mkOpt types.bool;
## Create a boolean NixOS module option without a description.
##
## ```nix
## lib.mkBoolOpt true
## ```
##
#@ Type -> Any -> String
mkBoolOpt' = mkOpt' types.bool;
enabled = {
## Quickly enable an option.
##
## ```nix
## services.nginx = enabled;
## ```
##
#@ true
enable = true;
};
disabled = {
## Quickly disable an option.
##
## ```nix
## services.nginx = enabled;
## ```
##
#@ false
enable = false;
};
}

View file

@ -1,16 +0,0 @@
{ lib
, config
, ...
}:
let
cfg = config.snowfallorg.example;
in
{
options.snowfallorg.example = {
enable = lib.mkEnableOption "Snowfall Example";
};
config = lib.mkIf cfg.enable {
environment.variables = { SNOWFALLORG_EXAMPLE = "enabled"; };
};
}

View file

@ -0,0 +1,20 @@
{ options
, config
, pkgs
, lib
, ...
}:
with lib;
with lib.wyrdgard; let
cfg = config.wyrdgard.system.boot;
in
{
options.wyrdgard.system.boot = with types; {
enable = mkBoolOpt false "Whether or not to enable booting.";
};
config = mkIf cfg.enable {
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
};
}

View file

@ -0,0 +1,37 @@
{ options
, config
, pkgs
, lib
, ...
}:
with lib;
with lib.wyrdgard; let
cfg = config.wyrdgard.system.fonts;
in
{
options.wyrdgard.system.fonts = with types; {
enable = mkBoolOpt false "Whether or not to manage fonts.";
fonts = mkOpt (listOf package) [ ] "Custom font packages to install.";
};
config = mkIf cfg.enable {
environment.variables = {
# Enable icons in tooling since we have nerdfonts.
LOG_ICONS = "true";
};
environment.systemPackages = with pkgs; [
font-manager
];
fonts.packages = with pkgs;
[
noto-fonts
noto-fonts-cjk-sans
noto-fonts-cjk-serif
noto-fonts-emoji
(nerdfonts.override { fonts = [ "CodeNewRoman" ]; })
]
++ cfg.fonts;
};
}

View file

@ -0,0 +1,27 @@
{ options
, config
, pkgs
, lib
, ...
}:
with lib;
with lib.wyrdgard; let
cfg = config.wyrdgard.system.locale;
in
{
options.wyrdgard.system.locale = with types; {
enable = mkBoolOpt false "Whether or not to manage locale settings.";
};
config = mkIf cfg.enable {
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_TIME = "de_DE.UTF-8";
};
console = {
keyMap = mkForce "us";
};
};
}

View file

@ -0,0 +1,20 @@
{ options
, config
, pkgs
, lib
, ...
}:
with lib;
with lib.wyrdgard; let
cfg = config.wyrdgard.system.time;
in
{
options.wyrdgard.system.time = with types; {
enable =
mkBoolOpt false "Whether or not to configure timezone information.";
};
config = mkIf cfg.enable {
time.timeZone = "Europe/Berlin";
};
}

View file

@ -0,0 +1,22 @@
{ options
, config
, lib
, ...
}:
with lib;
with lib.wyrdgard; let
cfg = config.wyrdgard.system.xkb;
in
{
options.wyrdgard.system.xkb = with types; {
enable = mkBoolOpt false "Whether or not to configure xkb.";
};
config = mkIf cfg.enable {
console.useXkbConfig = true;
services.xserver = {
xkb.layout = "us";
xkbOptions = "caps:escape";
};
};
}