Add Hyprland and Greetd configurations; update desktop settings and user examples

This commit is contained in:
2025-08-10 22:39:39 -03:00
parent 87a2314170
commit 8224513e07
13 changed files with 347 additions and 51 deletions

View File

@@ -1,67 +1,64 @@
# FIXME(starter): this is an example of how a secondary user called "exampleSecondUser" can be declared.
# NOTE that this file's parent directory matches the username!
# Modify the directory name and all instances of `exampleSecondUser` in this file to a real username to
# make use of this file. You'll also need to import this file in the relevant `nix-config/hosts/[platform]/[hostname]/default.nix`
# make use of this file. You'll also need to import this file in the relevant `nix-config/hosts/[platform]/[hostname]/default.nix`
# host file for the user to be created on the host.
# NOTE that this file also assumes you will be declaring the user's password via sops.
# .
# If you have no need for secondary users, simple delete this file and its parent directory, and ensure that
# your `nix-confitg/hosts/[platform]/[hostname]/default.nix` files do not import this file.
#
# Basic user for viewing exampleSecondUser
#
{
inputs,
lib,
pkgs,
config,
...
}:
let
}: let
hostSpec = config.hostSpec;
secretsSubPath = "passwords/exampleSecondUser";
in
{
# Decrypt passwords/exampleSecondUser to /run/secrets-for-users/ so it can be used to create the user
sops.secrets.${secretsSubPath}.neededForUsers = true;
users.mutableUsers = false; # Required for password to be set via sops during system activation!
{
# Decrypt passwords/exampleSecondUser to /run/secrets-for-users/ so it can be used to create the user
sops.secrets.${secretsSubPath}.neededForUsers = true;
users.mutableUsers = false; # Required for password to be set via sops during system activation!
users.users.exampleSecondUser = {
isNormalUser = true;
hashedPasswordFile = config.sops.secrets.${secretsSubPath}.path;
shell = pkgs.zsh; # default shell
extraGroups = [
"audio"
"video"
];
users.users.exampleSecondUser = {
isNormalUser = true;
hashedPasswordFile = config.sops.secrets.${secretsSubPath}.path;
shell = pkgs.zsh; # default shell
extraGroups = [
"audio"
"video"
];
packages = [ pkgs.home-manager ];
};
}
# Import this user's personal/home configurations
// lib.optionalAttrs (inputs ? "home-manager") {
home-manager = {
extraSpecialArgs = {
inherit pkgs inputs;
hostSpec = config.hostSpec;
packages = [pkgs.home-manager];
};
users.exampleSecondUser.imports = lib.flatten (
lib.optional (!hostSpec.isMinimal) [
(
{ config, ... }:
import (lib.custom.relativeToRoot "home/exampleSecondUser/${hostSpec.hostName}.nix") {
inherit
pkgs
inputs
config
lib
hostSpec
;
}
)
]
);
};
}
}
# Import this user's personal/home configurations
// lib.optionalAttrs (inputs ? "home-manager") {
home-manager = {
extraSpecialArgs = {
inherit pkgs inputs;
hostSpec = config.hostSpec;
};
users.exampleSecondUser.imports = lib.flatten (
lib.optional (!hostSpec.isMinimal) [
(
{config, ...}:
import (lib.custom.relativeToRoot "home/exampleSecondUser/${hostSpec.hostName}.nix") {
inherit
pkgs
inputs
config
lib
hostSpec
;
}
)
]
);
};
}