125 lines
3.4 KiB
Nix
125 lines
3.4 KiB
Nix
{ config, lib, inputs, pkgs, timeZone, ... }:
|
|
let
|
|
deskCfg = config.deskCfg;
|
|
in
|
|
{
|
|
imports = [
|
|
inputs.nixos-hardware.nixosModules.framework-12-13th-gen-intel
|
|
./nixos/hardware-configuration.nix
|
|
../../shared/modules/desktop/base.nix
|
|
../../shared/modules/desktop/stylix.nix
|
|
../../shared/modules/desktop/silent-boot.nix
|
|
../../shared/modules/desktop/greetd.nix
|
|
../../shared/modules/wm/niri.nix
|
|
];
|
|
|
|
deskCfg = {
|
|
userName = "jaci";
|
|
hostName = "jaci";
|
|
fullName = "Jaci Anderson";
|
|
de = "niri";
|
|
installGaming = true;
|
|
flakePath = "/home/jaci/nixos";
|
|
};
|
|
|
|
# Limit the number of generations to keep
|
|
boot.loader.systemd-boot.configurationLimit = 5;
|
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
|
|
|
# Enable systemd in initrd for better LUKS unlocking with Plymouth
|
|
boot.initrd.systemd.enable = true;
|
|
|
|
# Silent boot
|
|
silentBoot.enable = true;
|
|
|
|
# Plymouth — custom kiki pixel theme
|
|
boot.plymouth = {
|
|
enable = true;
|
|
theme = "kiki-pixel";
|
|
themePackages = [
|
|
(pkgs.runCommand "plymouth-kiki-theme" { } ''
|
|
mkdir -p $out/share/plymouth/themes/kiki
|
|
cp -r ${./kiki-plymouth-theme/kiki}/* $out/share/plymouth/themes/kiki/
|
|
substituteInPlace $out/share/plymouth/themes/kiki/kiki.plymouth \
|
|
--replace-fail "@IMAGEDIR@" "$out/share/plymouth/themes/kiki"
|
|
'')
|
|
(pkgs.runCommand "plymouth-kiki-pixel-theme" { } ''
|
|
mkdir -p $out/share/plymouth/themes/kiki-pixel
|
|
cp -r ${./kiki-plymouth-theme/kiki-pixel}/* $out/share/plymouth/themes/kiki-pixel/
|
|
substituteInPlace $out/share/plymouth/themes/kiki-pixel/kiki-pixel.plymouth \
|
|
--replace-fail "@IMAGEDIR@" "$out/share/plymouth/themes/kiki-pixel"
|
|
'')
|
|
];
|
|
};
|
|
|
|
# Perform garbage collection weekly to maintain low disk usage
|
|
nix.gc = {
|
|
automatic = true;
|
|
dates = "weekly";
|
|
options = "--delete-older-than 21d";
|
|
};
|
|
nix.settings.auto-optimise-store = true;
|
|
|
|
# IWD wireless backend
|
|
networking.wireless.iwd.enable = true;
|
|
|
|
# Extra groups for jaci user
|
|
main_user.extraGroups = [ "corectrl" ];
|
|
|
|
# Stylix overrides — light rose-pine-dawn theme with Reversal icons
|
|
stylix = {
|
|
base16Scheme = "${pkgs.base16-schemes}/share/themes/rose-pine-dawn.yaml";
|
|
polarity = "light";
|
|
fonts.sizes = {
|
|
applications = 14;
|
|
desktop = 14;
|
|
popups = 14;
|
|
terminal = 14;
|
|
};
|
|
iconTheme = {
|
|
package = pkgs.reversal-icon-theme;
|
|
light = "Reversal-dark";
|
|
dark = "Reversal";
|
|
};
|
|
};
|
|
|
|
# Intel graphics acceleration (Framework 12)
|
|
hardware.graphics.enable = true;
|
|
hardware.enableRedistributableFirmware = true;
|
|
|
|
# Intel iHD GPU
|
|
environment.sessionVariables.LIBVA_DRIVER_NAME = "iHD";
|
|
|
|
# Niri WM config
|
|
niriwm = {
|
|
enable = true;
|
|
useNonFree = true;
|
|
user = deskCfg.userName;
|
|
installGaming = deskCfg.installGaming;
|
|
systemPackages = with pkgs; [
|
|
libreoffice
|
|
];
|
|
};
|
|
|
|
# Jaci-specific: gnome-software for Flatpak management
|
|
environment.systemPackages = with pkgs; [
|
|
cryptsetup
|
|
gnome-software
|
|
];
|
|
|
|
# Disable pcscd (not needed on jaci)
|
|
services.pcscd.enable = false;
|
|
|
|
# Disable regreet — use direct niri-session via greetd
|
|
programs.regreet.enable = false;
|
|
services.greetd.settings.default_session = {
|
|
command = "${pkgs.niri}/bin/niri-session";
|
|
user = deskCfg.userName;
|
|
};
|
|
|
|
# Bluetooth name
|
|
hardware.bluetooth.settings.General.Name = "Jaci-Frame";
|
|
|
|
system.stateVersion = "23.11";
|
|
}
|