moving to new config
This commit is contained in:
parent
6014906fd2
commit
5490596247
|
@ -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 = {
|
||||||
name = config.snowfallorg.user.name;
|
user = {
|
||||||
home = config.snowfallorg.user.home.directory;
|
enable = true;
|
||||||
in
|
name = config.snowfallorg.user.name;
|
||||||
{
|
};
|
||||||
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
62
lib/module/default.nix
Normal 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;
|
||||||
|
};
|
||||||
|
}
|
|
@ -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"; };
|
|
||||||
};
|
|
||||||
}
|
|
20
modules/nixos/system/boot/default.nix
Normal file
20
modules/nixos/system/boot/default.nix
Normal 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;
|
||||||
|
};
|
||||||
|
}
|
37
modules/nixos/system/fonts/default.nix
Normal file
37
modules/nixos/system/fonts/default.nix
Normal 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;
|
||||||
|
};
|
||||||
|
}
|
27
modules/nixos/system/locale/default.nix
Normal file
27
modules/nixos/system/locale/default.nix
Normal 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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
20
modules/nixos/system/time/default.nix
Normal file
20
modules/nixos/system/time/default.nix
Normal 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";
|
||||||
|
};
|
||||||
|
}
|
22
modules/nixos/system/xkb/default.nix
Normal file
22
modules/nixos/system/xkb/default.nix
Normal 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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue