moving to new config
This commit is contained in:
parent
6014906fd2
commit
5490596247
|
@ -1,21 +1,43 @@
|
|||
{ lib
|
||||
, pkgs
|
||||
, config
|
||||
{
|
||||
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
|
||||
# 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.
|
||||
let
|
||||
with lib.wyrdgard; {
|
||||
wyrdgard = {
|
||||
user = {
|
||||
enable = true;
|
||||
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
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