dendrify: comfy-station

This commit is contained in:
2026-03-27 17:49:01 +01:00
parent 5ca75f28db
commit 88b3ff784a
205 changed files with 4036 additions and 1227 deletions

View File

@@ -1,7 +0,0 @@
{...}: {
imports = [
./hyprland.nix
./kwallet.nix
./plasma.nix
];
}

View File

@@ -1,39 +0,0 @@
{
lib,
config,
pkgs,
...
}: let
cfg = config.hive.hyprland;
in {
options.hive.hyprland = {
enable = lib.mkEnableOption "enable hyprland desktop environment";
};
config = lib.mkIf cfg.enable {
services = {
libinput.enable = true;
dbus.enable = true;
};
xdg.portal = {
enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-wlr
xdg-desktop-portal-hyprland
kdePackages.xdg-desktop-portal-kde
];
};
environment.systemPackages = with pkgs; [spaceFM];
services.udisks2.enable = true;
programs.hyprland = {
enable = true;
withUWSM = true;
xwayland.enable = true;
};
programs.hyprlock.enable = true;
security.pam.services.hyprlock = {};
};
}

View File

@@ -1,35 +0,0 @@
{
config,
lib,
pkgs,
...
}: let
cfg = config.hive.kwallet;
in {
options.hive.kwallet = {
enable = lib.mkEnableOption "Enable kwallet";
forUsers = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [];
description = ''
List of users that should unlock kwallet via pam.
'';
};
};
config = lib.mkIf cfg.enable {
environment.systemPackages = with pkgs.kdePackages; [
kwallet
kwalletmanager
];
security.pam.services = builtins.listToAttrs (map (user: {
name = user;
value = {
kwallet.enable = true;
kwallet.forceRun = true;
kwallet.package = pkgs.kdePackages.kwallet-pam;
};
})
cfg.forUsers);
};
}

View File

@@ -1,24 +0,0 @@
{
config,
lib,
pkgs,
...
}: let
cfg = config.hive.plasma;
in {
options.hive.plasma = {
enable = lib.mkEnableOption "Enable Plasma desktop environment with sddm";
};
config = lib.mkIf cfg.enable {
services.desktopManager.plasma6.enable = true;
xdg.portal = {
enable = true;
extraPortals = with pkgs; [
kdePackages.xdg-desktop-portal-kde
xdg-desktop-portal-gtk
];
};
};
}

View File

@@ -1,36 +0,0 @@
{
config,
lib,
...
}: let
cfg = config.hive.displayManager;
in {
options.hive.displayManager = with lib; {
name = mkOption {
type = types.enum ["sddm" "gdm" "cosmic"];
default = "sddm";
description = "The display manager to use.";
};
autologin = mkOption {
type = types.nullOr types.str;
default = null;
description = "The autologin username or null for no autologin.";
};
};
imports = [
./gdm.nix
./sddm.nix
];
config = {
services.xserver.enable = true;
services.xserver = {
xkb.layout = "de";
xkb.variant = "";
xkb.options = "caps:ctrl_modifier";
};
services.displayManager.autoLogin.enable = cfg.autologin != null;
services.displayManager.autoLogin.user = cfg.autologin;
};
}

View File

@@ -1,14 +0,0 @@
{
lib,
config,
...
}: let
cfg = config.hive.displayManager;
in {
config = lib.mkIf (cfg.name == "gdm") {
services.xserver.displayManager.gdm = {
enable = true;
wayland = true;
};
};
}

View File

@@ -1,15 +0,0 @@
{
lib,
config,
pkgs,
...
}: let
cfg = config.hive.displayManager;
in {
config = lib.mkIf (cfg.name == "sddm") {
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
};
};
}

View File

@@ -0,0 +1,56 @@
{
flake.nixosModules.hyprland = {
config,
lib,
pkgs,
...
}: let
cfg = config.hive.displayManager;
in {
options.hive.displayManager = with lib; {
autologin = mkOption {
type = types.nullOr types.str;
default = null;
description = "The autologin username or null for no autologin.";
};
};
config = {
services.xserver.enable = true;
services.xserver = {
xkb.layout = "de";
xkb.variant = "";
xkb.options = "caps:ctrl_modifier";
};
services.displayManager.autoLogin.enable = cfg.autologin != null;
services.displayManager.autoLogin.user = cfg.autologin;
services.libinput.enable = true;
services.dbus.enable = true;
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
};
xdg.portal = {
enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-wlr
xdg-desktop-portal-hyprland
kdePackages.xdg-desktop-portal-kde
];
};
environment.systemPackages = with pkgs; [spaceFM];
services.udisks2.enable = true;
programs.hyprland = {
enable = true;
withUWSM = true;
xwayland.enable = true;
};
programs.hyprlock.enable = true;
security.pam.services.hyprlock = {};
};
};
}

View File

@@ -0,0 +1,36 @@
{
flake.nixosModules.kwallet = {
config,
lib,
pkgs,
...
}: let
cfg = config.hive.kwallet;
in {
options.hive.kwallet = {
forUsers = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [];
description = ''
List of users that should unlock kwallet via pam.
'';
};
};
config = {
environment.systemPackages = with pkgs.kdePackages; [
kwallet
kwalletmanager
];
security.pam.services = builtins.listToAttrs (map (user: {
name = user;
value = {
kwallet.enable = true;
kwallet.forceRun = true;
kwallet.package = pkgs.kdePackages.kwallet-pam;
};
})
cfg.forUsers);
};
};
}

View File

@@ -1,5 +0,0 @@
{...}: {
imports = [
./layan.nix
];
}

View File

@@ -1,21 +0,0 @@
{
lib,
config,
pkgs,
...
}: let
cfg = config.hive.themes.layan;
in {
options.hive.themes.layan = {
enable = lib.mkEnableOption "Layan theme configuration";
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [
pkgs.hive.layan-qt6
pkgs.kdePackages.qtstyleplugin-kvantum
pkgs.unstable.layan-cursors
pkgs.layan-gtk-theme
pkgs.tela-circle-icon-theme
];
};
}