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";
|
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 = {
|
chiasson.desktop = {
|
||||||
niri.enable = true;
|
niri.enable = true;
|
||||||
|
|||||||
@@ -1,93 +1,26 @@
|
|||||||
# Shared Home Manager selection for all desktop hosts (14900k, t2mbp, ideapad, uConsole).
|
# Shared Home Manager selection for all desktop hosts (14900k, t2mbp, ideapad, uConsole).
|
||||||
# Wisdom slices resolved here (NixOS has `self`); toggles select what actually installs.
|
# Wisdom slices resolved here (NixOS has `self`); toggles select what actually installs.
|
||||||
{ self, inputs, ... }:
|
{ self, ... }:
|
||||||
{
|
{
|
||||||
flake.nixosModules.desktopHomeBase =
|
flake.nixosModules.desktopHomeBase =
|
||||||
{ self, lib, pkgs, ... }:
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
chiasson.system.chromiumHevc.enable = lib.mkDefault true;
|
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 =
|
chiasson.users.extraModules.olivier =
|
||||||
self.lib.wisdomCatalogExtraModules self
|
self.lib.wisdomCatalogExtraModules self
|
||||||
++ [
|
++ [
|
||||||
(
|
self.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 = {
|
|
||||||
# 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;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
)
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.firmware = [ pkgs.chromeos-sc7180-unredistributable-firmware ];
|
||||||
hardware.enableRedistributableFirmware = true;
|
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 ───────────────────────
|
# ─────────────────────── System bits ───────────────────────
|
||||||
chiasson.system = {
|
chiasson.system = {
|
||||||
audio.enable = true;
|
audio.enable = true;
|
||||||
|
|||||||
@@ -54,17 +54,6 @@
|
|||||||
# Dynamic function row on the Touch Bar (`tiny-dfr`; needs `DRM_APPLETBDRM` — see t2linux kernel opts).
|
# Dynamic function row on the Touch Bar (`tiny-dfr`; needs `DRM_APPLETBDRM` — see t2linux kernel opts).
|
||||||
hardware.apple.touchBar.enable = true;
|
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 ──────────────────────────
|
# ─────────────────────── Display Server & Desktop ──────────────────────────
|
||||||
chiasson.desktop = {
|
chiasson.desktop = {
|
||||||
niri = {
|
niri = {
|
||||||
|
|||||||
@@ -45,16 +45,6 @@
|
|||||||
chiasson.system.librepods.enable = true;
|
chiasson.system.librepods.enable = true;
|
||||||
chiasson.system.palera1n.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 ──────────────────────────
|
# ─────────────────────── Display Server & Desktop ──────────────────────────
|
||||||
|
|
||||||
chiasson.desktop = {
|
chiasson.desktop = {
|
||||||
|
|||||||
Reference in New Issue
Block a user