Refactor desktop home configuration and introduce caching module
- Simplified `desktop-home-base.nix` by removing legacy git and application settings, delegating them to a new `desktop-home-defaults.nix` module for better organization. - Added a caching configuration for `chiasson.system.caching.attic` in `desktop-home-base.nix`, enabling caching features with customizable options. - Updated host-specific configurations to remove direct caching settings, ensuring a cleaner and more modular setup.
This commit is contained in:
@@ -47,15 +47,6 @@
|
||||
LIBVA_DRM_DEVICE = "/dev/dri/renderD128";
|
||||
};
|
||||
|
||||
chiasson.system.caching.attic = {
|
||||
enable = true;
|
||||
cacheName = "nixos-new";
|
||||
endpoint = "http://192.168.2.238:8080/";
|
||||
publicKey = "nixos-new:8NySIcT0HP7KvGQKgBRWoWESxxRA8BVYo8S85UNpNX0=";
|
||||
tokenFile = config.sops.secrets."caching/attic/token".path;
|
||||
push.enable = true;
|
||||
userCli.enable = true;
|
||||
};
|
||||
|
||||
chiasson.desktop = {
|
||||
niri.enable = true;
|
||||
|
||||
@@ -1,93 +1,26 @@
|
||||
# Shared Home Manager selection for all desktop hosts (14900k, t2mbp, ideapad, uConsole).
|
||||
# Wisdom slices resolved here (NixOS has `self`); toggles select what actually installs.
|
||||
{ self, inputs, ... }:
|
||||
{ self, ... }:
|
||||
{
|
||||
flake.nixosModules.desktopHomeBase =
|
||||
{ self, lib, pkgs, ... }:
|
||||
{ config, lib, ... }:
|
||||
{
|
||||
chiasson.system.chromiumHevc.enable = lib.mkDefault true;
|
||||
|
||||
chiasson.system.caching.attic = lib.mkDefault {
|
||||
enable = true;
|
||||
cacheName = "nixos-new";
|
||||
endpoint = "http://192.168.2.238:8080/";
|
||||
publicKey = "nixos-new:8NySIcT0HP7KvGQKgBRWoWESxxRA8BVYo8S85UNpNX0=";
|
||||
tokenFile = config.sops.secrets."caching/attic/token".path;
|
||||
push.enable = true;
|
||||
userCli.enable = true;
|
||||
};
|
||||
|
||||
chiasson.users.extraModules.olivier =
|
||||
self.lib.wisdomCatalogExtraModules self
|
||||
++ [
|
||||
(
|
||||
{ lib, pkgs, ... }:
|
||||
let
|
||||
aarch64 = pkgs.stdenv.hostPlatform.isAarch64;
|
||||
in
|
||||
{
|
||||
programs.git = {
|
||||
enable = lib.mkDefault true;
|
||||
settings.user = {
|
||||
name = "OlivierChiasson";
|
||||
email = "olivierchiasson@hotmail.fr";
|
||||
};
|
||||
};
|
||||
|
||||
#TODO[epic=Moderate] Check if git-crypt should belong in desktop-home-base.
|
||||
home.packages = [ pkgs.git-crypt ];
|
||||
|
||||
chiasson.home = {
|
||||
# Catalog of `chiasson.home.*` toggles — host `home.nix` sets `enable = true` to override `mkDefault false`.
|
||||
shell = {
|
||||
fish.enable = lib.mkDefault true;
|
||||
ohMyPosh.enable = lib.mkDefault true;
|
||||
yazi.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
terminals.kitty.enable = lib.mkDefault true;
|
||||
|
||||
filebrowsers.nemo.enable = lib.mkDefault true;
|
||||
|
||||
browsers = {
|
||||
chrome.enable = lib.mkDefault false;
|
||||
chromiumHevc = {
|
||||
enable = lib.mkDefault true;
|
||||
packages = lib.mkDefault (
|
||||
if aarch64 then
|
||||
[ "chromium" ]
|
||||
else
|
||||
[ "google-chrome" ]
|
||||
);
|
||||
} // lib.optionalAttrs (!aarch64) {
|
||||
# Chromium + NVIDIA VA-API → frame pool errors in Jellyfin; gecko may fare better on NVIDIA.
|
||||
vaapi.gpu = lib.mkDefault "intel";
|
||||
};
|
||||
edge.enable = lib.mkDefault false;
|
||||
flow.enable = lib.mkDefault false;
|
||||
orion.enable = lib.mkDefault false;
|
||||
zen.enable = lib.mkDefault false;
|
||||
};
|
||||
|
||||
editors = {
|
||||
cursor.enable = lib.mkDefault true;
|
||||
kate.enable = lib.mkDefault false;
|
||||
obsidian.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
apps = {
|
||||
discord.enable = lib.mkDefault false;
|
||||
localsend.enable = lib.mkDefault true;
|
||||
pokeclicker.enable = lib.mkDefault false;
|
||||
spotify = {
|
||||
enable = lib.mkDefault false;
|
||||
openDiscoveryFirewall = lib.mkDefault false;
|
||||
};
|
||||
};
|
||||
|
||||
desktop = {
|
||||
screenshot = {
|
||||
enable = lib.mkDefault true;
|
||||
swiftshareApiKeyFile = "/run/secrets/swiftshare/API_KEY"; #TODO[epic=sops] redo this by passing sops file output directly
|
||||
};
|
||||
# WhiteSur GTK/icons, Phinger cursor, DMS matugen for GTK (+ qt6ct for Qt apps).
|
||||
theming.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
hardware.uconsoleGamepad.enable = lib.mkDefault false;
|
||||
};
|
||||
}
|
||||
)
|
||||
self.homeManagerModules.desktopHomeDefaults
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
# Shared HM defaults for desktop hosts (git identity, wisdom catalog toggles).
|
||||
{ ... }: {
|
||||
flake.homeManagerModules.desktopHomeDefaults =
|
||||
{ lib, pkgs, ... }:
|
||||
let
|
||||
aarch64 = pkgs.stdenv.hostPlatform.isAarch64;
|
||||
in
|
||||
{
|
||||
programs.git = {
|
||||
enable = lib.mkDefault true;
|
||||
settings.user = {
|
||||
name = "OlivierChiasson";
|
||||
email = "olivierchiasson@hotmail.fr";
|
||||
};
|
||||
};
|
||||
|
||||
#TODO[epic=Moderate] Check if git-crypt should belong in desktop-home-base.
|
||||
home.packages = [ pkgs.git-crypt ];
|
||||
|
||||
chiasson.home = {
|
||||
shell = {
|
||||
fish.enable = lib.mkDefault true;
|
||||
ohMyPosh.enable = lib.mkDefault true;
|
||||
yazi.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
terminals.kitty.enable = lib.mkDefault true;
|
||||
|
||||
filebrowsers.nemo.enable = lib.mkDefault true;
|
||||
|
||||
browsers = {
|
||||
chrome.enable = lib.mkDefault false;
|
||||
chromiumHevc = {
|
||||
enable = lib.mkDefault true;
|
||||
packages = lib.mkDefault (
|
||||
if aarch64 then
|
||||
[ "chromium" ]
|
||||
else
|
||||
[ "google-chrome" ]
|
||||
);
|
||||
} // lib.optionalAttrs (!aarch64) {
|
||||
vaapi.gpu = lib.mkDefault "intel";
|
||||
};
|
||||
edge.enable = lib.mkDefault false;
|
||||
flow.enable = lib.mkDefault false;
|
||||
orion.enable = lib.mkDefault false;
|
||||
zen.enable = lib.mkDefault false;
|
||||
};
|
||||
|
||||
editors = {
|
||||
cursor.enable = lib.mkDefault true;
|
||||
kate.enable = lib.mkDefault false;
|
||||
obsidian.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
apps = {
|
||||
discord.enable = lib.mkDefault false;
|
||||
localsend.enable = lib.mkDefault true;
|
||||
pokeclicker.enable = lib.mkDefault false;
|
||||
spotify = {
|
||||
enable = lib.mkDefault false;
|
||||
openDiscoveryFirewall = lib.mkDefault false;
|
||||
};
|
||||
};
|
||||
|
||||
desktop = {
|
||||
screenshot = {
|
||||
enable = lib.mkDefault true;
|
||||
swiftshareApiKeyFile = "/run/secrets/swiftshare/API_KEY"; #TODO[epic=sops] redo this by passing sops file output directly
|
||||
};
|
||||
theming.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
hardware.uconsoleGamepad.enable = lib.mkDefault false;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -51,17 +51,6 @@
|
||||
hardware.firmware = [ pkgs.chromeos-sc7180-unredistributable-firmware ];
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
|
||||
# ─────────────────────── Attic (substitution + push + CLI token) ───────
|
||||
chiasson.system.caching.attic = {
|
||||
enable = true;
|
||||
cacheName = "nixos-new";
|
||||
endpoint = "http://192.168.2.238:8080/";
|
||||
publicKey = "nixos-new:8NySIcT0HP7KvGQKgBRWoWESxxRA8BVYo8S85UNpNX0=";
|
||||
tokenFile = config.sops.secrets."caching/attic/token".path;
|
||||
push.enable = true;
|
||||
userCli.enable = true;
|
||||
};
|
||||
|
||||
# ─────────────────────── System bits ───────────────────────
|
||||
chiasson.system = {
|
||||
audio.enable = true;
|
||||
|
||||
@@ -54,17 +54,6 @@
|
||||
# Dynamic function row on the Touch Bar (`tiny-dfr`; needs `DRM_APPLETBDRM` — see t2linux kernel opts).
|
||||
hardware.apple.touchBar.enable = true;
|
||||
|
||||
# ─────────────────────── Attic (pull + push + CLI token) ────────────────────
|
||||
chiasson.system.caching.attic = {
|
||||
enable = true;
|
||||
cacheName = "nixos-new";
|
||||
endpoint = "http://192.168.2.238:8080/";
|
||||
publicKey = "nixos-new:8NySIcT0HP7KvGQKgBRWoWESxxRA8BVYo8S85UNpNX0=";
|
||||
tokenFile = config.sops.secrets."caching/attic/token".path;
|
||||
push.enable = true;
|
||||
userCli.enable = true;
|
||||
};
|
||||
|
||||
# ─────────────────────── Display Server & Desktop ──────────────────────────
|
||||
chiasson.desktop = {
|
||||
niri = {
|
||||
|
||||
@@ -45,16 +45,6 @@
|
||||
chiasson.system.librepods.enable = true;
|
||||
chiasson.system.palera1n.enable = true;
|
||||
|
||||
# ─────────────────────── Attic (pull + push + CLI token) ────────────────────
|
||||
chiasson.system.caching.attic = {
|
||||
enable = true;
|
||||
cacheName = "nixos-new";
|
||||
endpoint = "http://192.168.2.238:8080/";
|
||||
publicKey = "nixos-new:8NySIcT0HP7KvGQKgBRWoWESxxRA8BVYo8S85UNpNX0=";
|
||||
tokenFile = config.sops.secrets."caching/attic/token".path;
|
||||
push.enable = true;
|
||||
userCli.enable = true;
|
||||
};
|
||||
# ─────────────────────── Display Server & Desktop ──────────────────────────
|
||||
|
||||
chiasson.desktop = {
|
||||
|
||||
Reference in New Issue
Block a user