This commit is contained in:
2026-02-28 19:41:14 +01:00
parent 0c81f68a63
commit 5f34d32807
53 changed files with 1303 additions and 1386 deletions

View File

@@ -0,0 +1,32 @@
{ den, ... }:
{
lux.bitwarden = den.lib.parametric {
includes = [
(
{ user, ... }:
{
homeManager =
{ pkgs, ... }:
{
programs.rbw.settings = {
email = user.email;
base_url = "https://vault.${user.serverDomain}";
};
};
}
)
];
homeManager =
{ pkgs, ... }:
{
home.packages = [ pkgs.bitwarden-desktop ];
programs.rbw = {
enable = true;
settings = {
pinentry = pkgs.pinentry-qt;
};
};
};
};
}

121
modules/apps/email.nix Normal file
View File

@@ -0,0 +1,121 @@
{ den, ... }:
{
lux.email = den.lib.parametric {
includes = [
(
{ user, ... }:
{
homeManager =
{ ... }:
{
programs.thunderbird = {
enable = true;
profiles.${user.name} = {
isDefault = true;
withExternalGnupg = true;
settings = {
# LAYOUT: Force 3-Pane Vertical View (Folders | List | Message)
"mail.ui.display.message_pane_vertical" = true;
# APPEARANCE: Enable "Cards View" (modern multi-line list)
# Note: 'cards' is the value for the new view
"mail.ui.display.thread_pane_view_type" = "cards";
# DENSITY: "Compact" is usually cleaner for tech-savvy users
"mail.uidensity" = 1; # 0=Default, 1=Compact, 2=Touch
# PRIVACY & CLEANUP
"privacy.donottrackheader.enabled" = true;
"mail.server.server2.hidden" = true; # Hide "Local Folders"
# Start page disable for faster boot
"mailnews.start_page.enabled" = false;
# Disable the "Get a new email address" feature in account manager
"mail.provider.enabled" = false;
"layout.css.devPixelsPerPx" = 0.85;
};
};
};
accounts.email.accounts = {
main = {
enable = true;
primary = true;
address = user.email;
imap = {
authentication = "plain";
host = "taylor.mxrouting.net";
port = 993;
tls.enable = true;
};
realName = user.realName;
smtp = {
authentication = "plain";
host = "taylor.mxrouting.net";
port = 465;
tls.enable = true;
};
userName = user.email;
thunderbird.enable = true;
};
old = {
enable = true;
address = user.emails.old;
imap = {
authentication = "plain";
host = "taylor.mxrouting.net";
port = 993;
tls.enable = true;
};
realName = user.realName;
smtp = {
authentication = "plain";
host = "taylor.mxrouting.net";
port = 465;
tls.enable = true;
};
userName = user.emails.old;
thunderbird.enable = true;
};
uni = {
enable = true;
flavor = "outlook.office365.com";
address = user.emails.uni;
realName = user.realName;
userName = user.emails.uni;
thunderbird = {
enable = true;
settings = id: {
"mail.smtpserver.smtp_${id}.authMethod" = 10;
"mail.server.server_${id}.authMethod" = 10;
};
};
};
work = {
enable = true;
flavor = "outlook.office365.com";
address = user.emails.work;
realName = user.realName;
userName = user.emails.work;
thunderbird = {
enable = true;
settings = id: {
"mail.smtpserver.smtp_${id}.authMethod" = 10;
"mail.server.server_${id}.authMethod" = 10;
};
};
};
};
};
}
)
];
};
}

12
modules/apps/helium.nix Normal file
View File

@@ -0,0 +1,12 @@
{ ... }:
{
lux.helium = {
homeManager =
{ pkgs, ... }:
{
home.packages = [
(pkgs.callPackage ../../programs/helium.nix { })
];
};
};
}

49
modules/apps/mpv.nix Normal file
View File

@@ -0,0 +1,49 @@
{
lux.mpv = {
homeManager =
{ pkgs, ... }:
{
programs.mpv = {
enable = true;
bindings = {
D = "cycle deband";
};
config = {
profile = "high-quality";
osc = "no";
border = "no";
vo = "gpu-next";
gpu-api = "vulkan";
hwdec = "vulkan";
demuxer-mkv-subtitle-preroll = "yes";
sub-auto = "fuzzy";
sub-gauss = 1.0;
sub-gray = "yes";
tone-mapping = "bt.2446a";
keep-open = "yes";
save-position-on-quit = "yes";
volume-max = 150;
deband = "yes";
deband-iterations = 2;
deband-threshold = 64;
deband-range = 17;
deband-grain = 12;
};
scripts = with pkgs.mpvScripts; [
modernz
thumbfast
mpris
autosub
];
};
};
};
}

86
modules/apps/pim.nix Normal file
View File

@@ -0,0 +1,86 @@
{ den, ... }:
{
lux.pim = den.lib.parametric {
includes = [
(
{ user, ... }:
{
homeManager =
{ config, ... }:
let
calendarsPath = "${config.xdg.dataHome}/calendars";
in
{
programs.pimsync.enable = true;
services.pimsync.enable = true;
programs.khal = {
# FIXME: Temporarily disabled because of bug in nixpkgs-unstable (27-02-26)
enable = false;
locale = {
timeformat = "%H:%M";
dateformat = "$m-$d";
};
};
programs.todoman = {
enable = true;
glob = "*/*";
extraConfig = ''
date_format = "%Y-%m-%d"
time_format = "%H:%M"
default_list = "personal"
default_due = 0
default_command = "list --sort priority,due"
humanize = True
'';
};
accounts.calendar = {
basePath = calendarsPath;
accounts = {
"radicale" = {
primary = true;
primaryCollection = "personal";
local = {
type = "filesystem";
fileExt = ".ics";
};
remote = {
url = "https://radicale.${user.serverDomain}/";
type = "caldav";
userName = user.name;
passwordCommand = [
"rbw"
"get"
"Radicale"
];
};
pimsync = {
enable = true;
extraPairDirectives = [
{
name = "collections";
params = [ "from b" ];
}
];
};
khal = {
enable = true;
type = "discover";
color = "light blue";
};
};
};
};
};
}
)
];
};
}

View File

@@ -0,0 +1,49 @@
{
inputs,
den,
lib,
...
}:
let
meshDevices = lib.listToAttrs (
lib.concatMap (
host:
lib.mapAttrsToList (
userName: user:
let
name = "${userName}@${host.name}";
in
{
inherit name;
value = {
inherit name;
id = user.syncthingId;
};
}
) (lib.filterAttrs (_: u: u ? syncthingId) host.users)
) (lib.attrValues den.hosts.x86_64-linux)
);
in
{
lux.syncthing = {
homeManager = {
services.syncthing = {
enable = true;
overrideDevices = true;
overrideFolders = true;
settings = {
folders = {
sync = {
path = "~/sync";
label = "sync";
devices = lib.attrNames meshDevices;
};
};
devices = meshDevices;
};
};
};
};
}