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
|
||||
{
|
||||
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" {
|
||||
hostName = "book";
|
||||
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