template: add template user & template config
This commit is contained in:
parent
1b5a1d0f7f
commit
8e211d3587
7 changed files with 94 additions and 1 deletions
|
|
@ -50,6 +50,13 @@
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
nixosConfigurations.template-hostname = makeConfig "thinkbook" {
|
||||||
|
hostName = "template-hostname";
|
||||||
|
userName = "template";
|
||||||
|
additionalOverlays = [ inputs.nix-vscode-extensions.overlays.default ];
|
||||||
|
systemArch = "x86_64-linux";
|
||||||
|
};
|
||||||
|
|
||||||
nixosConfigurations.book = makeConfig "thinkbook" {
|
nixosConfigurations.book = makeConfig "thinkbook" {
|
||||||
hostName = "book";
|
hostName = "book";
|
||||||
userName = "geekiot";
|
userName = "geekiot";
|
||||||
|
|
|
||||||
|
|
@ -1 +1,12 @@
|
||||||
Конфигурация под определенного пользователя.
|
# Для чего эта директория?
|
||||||
|
|
||||||
|
Это конечная точка конфигурации для определенного пользователя. Содержит весь необходимых в реализации его системного и пользовательского конфига.
|
||||||
|
|
||||||
|
Директории пользователь должны содержать 5 папок:
|
||||||
|
1. data - пользовательские данные, необходимые ему в конфигурации.
|
||||||
|
2. home - пользовательская конфигурация home-manager.
|
||||||
|
3. host - конфигурация системы NixOS.
|
||||||
|
4. packages - конфигурация его требований от пакетов, попадающих в его системы (free/unfree/license).
|
||||||
|
5. scripts - пользовательские скрипты и мини приложения, которые требуются ему в конфигурации.
|
||||||
|
|
||||||
|
Начальная конфигурация для ознакомления со всеми обязательными значениями лежит в папке пользователя template, также пример существует и в `flake.nix`: `nixosConfigurations.template-hostname`.
|
||||||
|
|
|
||||||
23
users/template/data/default.nix
Normal file
23
users/template/data/default.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
hostName,
|
||||||
|
userName,
|
||||||
|
systemArch,
|
||||||
|
deviceName,
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
homeDir = "/home/${userName}";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
info = {
|
||||||
|
inherit userName;
|
||||||
|
email = "...";
|
||||||
|
};
|
||||||
|
|
||||||
|
paths = {
|
||||||
|
inherit homeDir;
|
||||||
|
};
|
||||||
|
|
||||||
|
device = {
|
||||||
|
inherit deviceName hostName systemArch;
|
||||||
|
};
|
||||||
|
}
|
||||||
19
users/template/home/default.nix
Normal file
19
users/template/home/default.nix
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
{ userData, customFunctions, ... }:
|
||||||
|
let
|
||||||
|
userName = userData.info.userName;
|
||||||
|
homeDirectory = userData.paths.homeDir;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = customFunctions.scan {
|
||||||
|
path = ./.;
|
||||||
|
exclude = [
|
||||||
|
./default.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
home = {
|
||||||
|
inherit homeDirectory;
|
||||||
|
username = userName;
|
||||||
|
stateVersion = "25.05";
|
||||||
|
};
|
||||||
|
}
|
||||||
27
users/template/host/default.nix
Normal file
27
users/template/host/default.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
{ userData, customFunctions, ... }:
|
||||||
|
let
|
||||||
|
name = userData.info.userName;
|
||||||
|
home = userData.paths.homeDir;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = customFunctions.scan {
|
||||||
|
path = ./.;
|
||||||
|
exclude = [ ./default.nix ];
|
||||||
|
};
|
||||||
|
|
||||||
|
host = {
|
||||||
|
version = "25.05";
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.${name} = {
|
||||||
|
inherit name home;
|
||||||
|
isNormalUser = true;
|
||||||
|
description = name;
|
||||||
|
createHome = true;
|
||||||
|
homeMode = "700";
|
||||||
|
extraGroups = [
|
||||||
|
# "networkmanager"
|
||||||
|
# "wheel"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
5
users/template/packages/default.nix
Normal file
5
users/template/packages/default.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
{ lib }:
|
||||||
|
{
|
||||||
|
allowUnfree = false;
|
||||||
|
allowBroken = false;
|
||||||
|
}
|
||||||
1
users/template/scripts/default.nix
Normal file
1
users/template/scripts/default.nix
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
pkgs: { }
|
||||||
Reference in a new issue