feat(packs): opt-in package packs — media/office/dev/gaming/containers/compat

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Padreug 2026-06-28 06:48:37 +02:00
commit 095f2ccf29
8 changed files with 449 additions and 0 deletions

76
modules/packs/office.nix Normal file
View file

@ -0,0 +1,76 @@
# Office pack — browsers, communication, office suite, notes, password
# managers, sync/backup.
#
# Migrated from packages.nix `productivity` category, which is gated on
# features.office OR features.communication today; this pack reproduces
# the whole list to preserve parity (splitting office vs communication is
# a follow-up). Run through omni.lib.filterPackages so exclude applies.
{ config, lib, pkgs, ... }:
let
cfg = config.omni.packs.office;
in
{
options.omni.packs.office.enable =
lib.mkEnableOption "Office pack (browsers, comms, office suite, notes, backup)";
config = lib.mkIf cfg.enable {
environment.systemPackages = config.omni.lib.filterPackages (
with pkgs;
[
# Browsers
firefox
chromium
brave
qutebrowser
# Communication
# discord
# slack
# telegram-desktop
signal-desktop
element-desktop
ferdium
# zoom-us
# teams-for-linux
# Bitcoin
sparrow
# Office
libreoffice
onlyoffice-desktopeditors
wpsoffice
# Note taking
obsidian
# logseq
# joplin-desktop
# zettlr
# Spaced repetition / learning
anki
# Email
# thunderbird
# aerc
# neomutt
# Calendar
calcurse
khal
# Password managers
bitwarden-desktop
keepassxc
pass
# Sync and backup
syncthing
nextcloud-client
rclone
restic
borgbackup
]
);
};
}