This commit is contained in:
mjallen18
2025-12-23 21:04:21 -06:00
parent 8f08f24761
commit d981fb20c2
68 changed files with 957 additions and 543 deletions

View File

@@ -7,7 +7,7 @@
...
}:
let
inherit (lib.${namespace}) enabled disabled;
inherit (lib.${namespace}) enabled;
in
{
home = {

View File

@@ -1,4 +1,9 @@
{ config, lib, namespace, ... }:
{
config,
lib,
namespace,
...
}:
with lib;
let
cfg = config.${namespace}.programs.btop;

View File

@@ -225,7 +225,7 @@ in
halign = "center";
valign = "center";
}
# weather
# weather
{
monitor = cfg.primaryDisplay;
text = "cmd[update:30000] waybar-weather --hyprlock";
@@ -236,7 +236,7 @@ in
halign = "right";
valign = "bottom";
}
# media
# media
{
monitor = cfg.primaryDisplay;
text = "cmd[update:1000] waybar-media";

View File

@@ -1,4 +1,9 @@
{ lib, pkgs, namespace, ... }:
{
lib,
pkgs,
namespace,
...
}:
with lib;
{
options.${namespace}.programs.hyprland = {

View File

@@ -1,4 +1,9 @@
{ lib, config, namespace, ... }:
{
lib,
config,
namespace,
...
}:
with lib;
let
cfg = config.${namespace}.programs.kitty;
@@ -12,7 +17,7 @@ in
shellIntegration.enableZshIntegration = true;
settings = {
bold_font = "auto";
bold_font = "auto";
italic_font = "auto";
bold_italic_font = "auto";
mouse_hide_wait = "2.0";

View File

@@ -1,8 +1,5 @@
{ lib, namespace, ... }:
with lib;
let
inherit (lib.${namespace}) mkOpt;
in
{
options.${namespace}.programs.kitty = {
enable = mkEnableOption "enable kitty terminal";

View File

@@ -1,4 +1,9 @@
{ config, lib, namespace, ... }:
{
config,
lib,
namespace,
...
}:
with lib;
let
cfg = config.${namespace}.programs.mako;

View File

@@ -2,13 +2,12 @@
config,
lib,
pkgs,
namespace,
namespace,
...
}:
with lib;
let
cfg = config.${namespace}.programs.nwg-dock;
palette = import cfg.theme.file;
in
{
imports = [ ./options.nix ];

View File

@@ -8,7 +8,6 @@
with lib;
let
cfg = config.${namespace}.programs.nwg-drawer;
palette = import cfg.theme.file;
in
{
imports = [ ./options.nix ];

View File

@@ -1,4 +1,9 @@
{ config, lib, namespace, ... }:
{
config,
lib,
namespace,
...
}:
with lib;
let
cfg = config.${namespace}.programs.nwg-panel;

View File

@@ -1,4 +1,9 @@
{ lib, pkgs, namespace, ... }:
{
lib,
pkgs,
namespace,
...
}:
with lib;
{
options.${namespace}.programs.nwg-panel = {

View File

@@ -1,13 +1,12 @@
{
config,
lib,
namespace,
pkgs,
...
}:
let
git-token = config.sops.secrets."github-token".path;
update-checker = pkgs.writeScriptBin "update-checker" ''
#!/usr/bin/env nix-shell
#! nix-shell -i python3 --pure

View File

@@ -1,4 +1,9 @@
{ config, lib, namespace, ... }:
{
config,
lib,
namespace,
...
}:
with lib;
let
cfg = config.${namespace}.programs.waybar;
@@ -383,15 +388,15 @@ in
"custom/power" = {
format = " ";
tooltip = false;
tooltip = false;
menu = "on-click";
menu-file = "~/.config/waybar/power_menu.xml";
menu-actions = {
shutdown = "shutdown";
reboot = "reboot";
suspend = "systemctl suspend";
hibernate = "systemctl hibernate";
lock = "pidof hyprlock || hyprlock";
shutdown = "shutdown";
reboot = "reboot";
suspend = "systemctl suspend";
hibernate = "systemctl hibernate";
lock = "pidof hyprlock || hyprlock";
};
};
}

View File

@@ -1,8 +1,12 @@
{ config, lib, namespace, ... }:
{
config,
lib,
namespace,
...
}:
with lib;
let
cfg = config.${namespace}.programs.wlogout;
palette = import cfg.theme.file;
in
{
imports = [ ./options.nix ];

View File

@@ -1,8 +1,12 @@
{ config, lib, namespace, ... }:
{
config,
lib,
namespace,
...
}:
with lib;
let
cfg = config.${namespace}.programs.wofi;
palette = import cfg.theme.file;
in
{
imports = [ ./options.nix ];

View File

@@ -1,8 +1,4 @@
{
config,
lib,
pkgs,
namespace,
...
}:
{

View File

@@ -1,4 +1,9 @@
{ config, pkgs, system, ... }:
{
config,
pkgs,
system,
...
}:
let
# # Pull from global theme options
# themeSize = "standard"; # "standard" | "compact"
@@ -95,4 +100,4 @@ in
};
};
};
}
}

View File

@@ -1,7 +1,6 @@
{
config,
lib,
pkgs,
namespace,
...
}:

View File

@@ -1,7 +1,6 @@
{
config,
lib,
pkgs,
namespace,
...
}:
@@ -60,52 +59,61 @@
"uv"
"webkitgtk"
];
cacheDir = "/var/cache/ccache"; # default location
cacheDir = "/var/cache/ccache"; # default location
};
nixpkgs.overlays = [
(self: super: {
(_self: super: {
"linux_rpi-bcm2711" = super."linux_rpi-bcm2711".override { stdenv = super.ccacheStdenv; };
})
(self: super: {
(_self: super: {
"mesa" = super."mesa".override { buildPackages.stdenv = super.ccacheStdenv; };
})
(self: super: {
(_self: super: {
"webkitgtk_4_1" = super.stable."webkitgtk_4_1".override { clangStdenv = super.ccacheStdenv; };
})
(self: super: {
(_self: super: {
"webkitgtk_6_0" = super."webkitgtk_6_0".override { clangStdenv = super.ccacheStdenv; };
})
(self: super: {
"jellyfin-ffmpeg" = super."jellyfin-ffmpeg".override { ffmpeg_7-full = super.ffmpeg_7-full.override { stdenv = super.ccacheStdenv; }; };
(_self: super: {
"jellyfin-ffmpeg" = super."jellyfin-ffmpeg".override {
ffmpeg_7-full = super.ffmpeg_7-full.override { stdenv = super.ccacheStdenv; };
};
})
# (self: super: {
# "ffmpeg-headless-rpi" = super."ffmpeg-headless-rpi".override { ffmpeg = super.ffmpeg_7.override { stdenv = super.ccacheStdenv; }; };
# })
# todo: make these work
(self: super: {
(_self: super: {
pcsx2 = super.pcsx2.override {
llvmPackages = super.llvmPackages // {
stdenv = super.ccacheStdenv;
};
};
})
(self: super: {
(_self: super: {
driversi686Linux = super.driversi686Linux // {
mesa = super.driversi686Linux.mesa.override { stdenv = super.ccacheStdenv; buildPackages.stdenv = super.ccacheStdenv; };
mesa = super.driversi686Linux.mesa.override {
stdenv = super.ccacheStdenv;
buildPackages.stdenv = super.ccacheStdenv;
};
};
})
(self: super: {
(_self: super: {
kdePackages = super.kdePackages // {
qt3d = super.kdePackages.qt3d.override { qtbase = super.kdePackages.qtbase.override { stdenv = super.ccacheStdenv; }; };
qt3d = super.kdePackages.qt3d.override {
qtbase = super.kdePackages.qtbase.override { stdenv = super.ccacheStdenv; };
};
# qtbase = super.kdePackages.qtbase.override { stdenv = super.ccacheStdenv; };
qtwebengine = super.kdePackages.qtwebengine.override { stdenv = super.ccacheStdenv; };
};
})
(self: super: {
(_self: super: {
linuxAndFirmware = super.linuxAndFirmware // {
linuxPackages_rpi4 = super.linuxAndFirmware.linuxPackages_rpi4.override { stdenv = super.ccacheStdenv; };
linuxPackages_rpi4 = super.linuxAndFirmware.linuxPackages_rpi4.override {
stdenv = super.ccacheStdenv;
};
};
})
];

View File

@@ -1,6 +1,15 @@
{ config, namespace, lib, pkgs, ... }:
{
config,
namespace,
lib,
pkgs,
...
}:
let
hasGui = config.${namespace}.desktop.hyprland.enable || config.${namespace}.desktop.gnome.enable || config.${namespace}.desktop.cosmic.enable;
hasGui =
config.${namespace}.desktop.hyprland.enable
|| config.${namespace}.desktop.gnome.enable
|| config.${namespace}.desktop.cosmic.enable;
in
{
security = {
@@ -37,12 +46,15 @@ in
};
};
environment.systemPackages = with pkgs; [
age-plugin-yubikey
libsecret
yubikey-manager
yubikey-personalization
] ++ (if hasGui then [ yubioath-flutter ] else [ ]);
environment.systemPackages =
with pkgs;
[
age-plugin-yubikey
libsecret
yubikey-manager
yubikey-personalization
]
++ (if hasGui then [ yubioath-flutter ] else [ ]);
services = {
yubikey-agent.enable = true;

View File

@@ -1,5 +1,10 @@
{ lib, pkgs, system, ... }:
let
{
lib,
pkgs,
system,
...
}:
let
isArm = "aarch64-linux" == system;
in
{

View File

@@ -26,8 +26,8 @@ let
disableUpdateCheck = true;
extraEnvironment = cfg.extraEnvironment;
extraGroups = [
"admin"
"wheel"
"admin"
"wheel"
];
}
// optionalAttrs (cfg.hashedPassword != null) {

View File

@@ -7,7 +7,6 @@
let
name = "collabora";
cfg = config.${namespace}.services.${name};
jwtSecretFile = config.sops.secrets."jallen-nas/onlyoffice-key".path;
collaboraConfig = lib.${namespace}.mkModule {
inherit config name;
@@ -40,7 +39,7 @@ let
# Restrict loading documents from WOPI Host
storage.wopi = {
"@allow" = true;
host = ["cloud.mjallen.dev"];
host = [ "cloud.mjallen.dev" ];
};
# Set FQDN of server

View File

@@ -0,0 +1,42 @@
{
lib,
config,
namespace,
...
}:
with lib;
let
name = "dispatcharr";
cfg = config.${namespace}.services.${name};
dispatcharrConfig = lib.${namespace}.mkModule {
inherit config name;
serviceName = "podman-${name}";
description = "dispatcharr podman container";
options = { };
moduleConfig = {
virtualisation.oci-containers.containers.${name} = {
autoStart = true;
image = "ghcr.io/dispatcharr/dispatcharr";
extraOptions = [ "--device=/dev/dri" ];
volumes = [
"${cfg.configDir}/dispatcharr:/data"
"${cfg.dataDir}/movies:/movies"
"${cfg.dataDir}/tv:/tv"
];
ports = [
"${toString cfg.port}:9191"
];
environment = {
DISPATCHARR_ENV = "aio";
PUID = cfg.puid;
PGID = cfg.pgid;
TZ = cfg.timeZone;
};
};
};
};
in
{
imports = [ dispatcharrConfig ];
}

View File

@@ -249,10 +249,10 @@ let
size = "small";
widgets = [
{
type = "adguard";
url = "http://pi4.local:3000";
username = "mjallen";
password = "BogieDudie1";
type = "adguard";
url = "http://pi4.local:3000";
username = "mjallen";
password = "BogieDudie1";
}
];
}

View File

@@ -55,7 +55,7 @@ let
};
users.groups.glances = { };
};
};
};
in
{

View File

@@ -16,7 +16,7 @@ let
description = "immich";
options = { };
moduleConfig = {
# Enable immich service
# Enable immich service
services.immich = {
enable = true;
port = cfg.port;

View File

@@ -15,26 +15,26 @@ let
description = "lubelogger";
options = { };
moduleConfig = {
virtualisation.oci-containers.containers.lubelogger = {
autoStart = true;
image = "ghcr.io/hargata/lubelogger";
ports = [ "${toString cfg.port}:8080" ];
volumes = [
"${cfg.configDir}/lubelogger:/App/data"
"${cfg.configDir}/lubelogger/keys:/root/.aspnet/DataProtection-Keys"
];
environmentFiles = [
"${cfg.configDir}/lubelogger/lubelogger.env"
];
environment = {
PUID = toString config.users.users.nix-apps.uid;
PGID = toString config.users.groups.jallen-nas.gid;
TZ = "America/Chicago";
virtualisation.oci-containers.containers.lubelogger = {
autoStart = true;
image = "ghcr.io/hargata/lubelogger";
ports = [ "${toString cfg.port}:8080" ];
volumes = [
"${cfg.configDir}/lubelogger:/App/data"
"${cfg.configDir}/lubelogger/keys:/root/.aspnet/DataProtection-Keys"
];
environmentFiles = [
"${cfg.configDir}/lubelogger/lubelogger.env"
];
environment = {
PUID = toString config.users.users.nix-apps.uid;
PGID = toString config.users.groups.jallen-nas.gid;
TZ = "America/Chicago";
};
};
};
};
};
in
in
{
imports = [ lubeloggerConfig ];
}

View File

@@ -1,4 +1,9 @@
{ config, lib, namespace, ... }:
{
config,
lib,
namespace,
...
}:
let
name = "minecraft";
cfg = config.${namespace}.services.${name};

View File

@@ -5,7 +5,6 @@
...
}:
let
inherit (lib.${namespace}) mkOpt mkReverseProxyOpt;
name = "ntfy";
cfg = config.${namespace}.services.${name};

View File

@@ -5,10 +5,8 @@
...
}:
let
inherit (lib.${namespace}) mkOpt mkReverseProxyOpt;
inherit (lib.${namespace}) mkOpt;
cfg = config.${namespace}.services.onlyoffice;
jwtSecretFile = config.sops.secrets."jallen-nas/onlyoffice-key".path;
in
{
options.${namespace}.services.onlyoffice = with lib; {

View File

@@ -57,7 +57,7 @@ let
OC_SYSTEM_USER_ID = cfg.puid;
OC_LOG_LEVEL = "info";
APP_PROVIDER_PROVIDERS = "collabora";
APP_PROVIDER_COLLABORA_NAME = "Collabora";

View File

@@ -6,7 +6,6 @@
}:
with lib;
let
inherit (lib.${namespace}) mkOpt mkReverseProxyOpt;
name = "unmanic";
cfg = config.${namespace}.services.${name};