feat: extract tuigreet and workstation modules

This commit is contained in:
2026-02-21 12:56:24 +01:00
parent edc1e6149a
commit a3cf0b7523
4 changed files with 87 additions and 48 deletions

View File

@@ -21,6 +21,8 @@ in
inputs.self.nixosModules.printing
inputs.self.nixosModules.zsh
inputs.self.nixosModules.gnupg
inputs.self.nixosModules.tuigreet
inputs.self.nixosModules.workstation
];
# Modules
@@ -30,6 +32,11 @@ in
printing.enable = true;
zsh.enable = true;
gnupg.enable = true;
workstation.enable = true;
tuigreet = {
enable = true;
command = "sway";
};
sway = {
enable = true;
@@ -53,12 +60,6 @@ in
environment.variables.TZ = "America/New_York";
i18n.defaultLocale = "en_US.UTF-8";
# Docker
virtualisation.docker = {
enable = true;
logDriver = "json-file";
};
# nix-ld for pip-installed binaries
# WARN:(matej) probably want to drop this in the future
programs.nix-ld.enable = true;
@@ -70,21 +71,6 @@ in
# Services
services.teamviewer.enable = true;
services.tailscale = {
enable = true;
useRoutingFeatures = "both";
};
# Greetd
services.greetd = {
enable = true;
settings = {
default_session = {
command = "${pkgs.tuigreet}/bin/tuigreet --time --remember --cmd sway";
user = "greeter";
};
};
};
# Programs
programs.thunderbird.enable = true;
@@ -102,11 +88,6 @@ in
hardware.keyboard.zsa.enable = true;
hardware.ledger.enable = true;
# System packages
environment.systemPackages = with pkgs; [
smartmontools
];
# XDG
xdg.mime.defaultApplications = {
"application/pdf" = "org.pwmt.zathura.desktop";

View File

@@ -8,9 +8,11 @@
}:
{
networking.hostName = "matej-tower";
imports = [
inputs.stylix.nixosModules.stylix
inputs.lanzaboote.nixosModules.lanzaboote
inputs.self.nixosModules.yubikey
inputs.self.nixosModules.sway
inputs.self.nixosModules.openssh
@@ -18,6 +20,8 @@
inputs.self.nixosModules.printing
inputs.self.nixosModules.zsh
inputs.self.nixosModules.gnupg
inputs.self.nixosModules.tuigreet
inputs.self.nixosModules.workstation
];
# Modules
@@ -27,6 +31,11 @@
printing.enable = true;
zsh.enable = true;
gnupg.enable = true;
workstation.enable = true;
tuigreet = {
enable = true;
command = "sway";
};
sway.enable = true;
# Stylix theming
@@ -49,30 +58,9 @@
time.timeZone = "Europe/Ljubljana";
environment.variables.TZ = "Europe/Ljubljana";
# Docker
virtualisation.docker = {
enable = true;
logDriver = "json-file";
};
# Services
services.tailscale = {
enable = true;
useRoutingFeatures = "both";
};
services.udisks2.enable = true;
# Greetd
services.greetd = {
enable = true;
settings = {
default_session = {
command = "${pkgs.tuigreet}/bin/tuigreet --time --remember --cmd sway";
user = "greeter";
};
};
};
# Programs
programs._1password.enable = true;
programs._1password-gui.enable = true;
@@ -87,7 +75,6 @@
# System packages
environment.systemPackages = with pkgs; [
smartmontools
easyeffects
];

View File

@@ -0,0 +1,39 @@
{
lib,
config,
pkgs,
...
}:
let
cfg = config.tuigreet;
in
{
options = {
tuigreet = {
enable = lib.mkEnableOption "greetd with tuigreet";
command = lib.mkOption {
type = lib.types.str;
description = "Session command to launch";
};
};
};
config = lib.mkIf cfg.enable {
services.greetd = {
enable = true;
useTextGreeter = true;
settings = {
default_session = {
command = builtins.toString (
pkgs.writeShellScript "tuigreet-session" ''
${pkgs.util-linux}/bin/setterm --blank 1 --powersave powerdown --powerdown 1
exec ${pkgs.tuigreet}/bin/tuigreet --time --remember --cmd ${cfg.command}
''
);
user = "greeter";
};
};
};
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
config,
pkgs,
...
}:
let
cfg = config.workstation;
in
{
options = {
workstation = {
enable = lib.mkEnableOption "workstation utilities";
};
};
config = lib.mkIf cfg.enable {
virtualisation.docker = {
enable = true;
logDriver = "json-file";
};
services.tailscale = {
enable = true;
useRoutingFeatures = "both";
};
environment.systemPackages = with pkgs; [
smartmontools
];
};
}