nix/system/configuration.nix
2025-02-23 16:23:14 +11:00

139 lines
3 KiB
Nix

{
inputs,
self,
lib,
pkgs,
mainUser,
...
}:
let
getFlakePackage = package: inputs."${package}".packages.x86_64-linux.default;
in
{
# these settings propagate to home-manager's nixpkgs
nixpkgs = {
overlays = [
inputs.nix-rice.overlays.default
inputs.helix.overlays.default
inputs.nil.overlays.nil
inputs.niri.overlays.niri
self.overlays.rice
self.overlays.comfyui
self.overlays.comfyui-plugins
];
config = {
allowUnfree = true;
allowUnfreePredicate = _: true;
cudaSupport = true;
};
};
nix = {
# add flake inputs to our registry to allow global use
registry = lib.mapAttrs (_: value: { flake = value; }) inputs;
settings = {
# trusted-users = ["bolt" "plank"];
experimental-features = [
"nix-command"
"flakes"
"pipe-operator"
];
substitute = true;
};
extraOptions = ''
keep-outputs = true
keep-derivations = true
'';
optimise.automatic = true;
# package = pkgs.lix;
};
imports = [
./modules/network.nix
./modules/term.nix
./modules/systemdboot.nix
./modules/sound.nix
./modules/sydney.nix
./modules/docs.nix
./modules/nix-meta.nix
./modules/anal-retentive.nix
./modules/niri.nix
./modules/culr.nix
];
programs.meat = {
enable = true;
flake = "/home/${mainUser}/.nix";
};
hardware.enableRedistributableFirmware = true;
hardware.enableAllFirmware = true;
boot.tmp.useTmpfs = true;
# services.udev.extraHwdb = ''
# evdev:atkbd:*
# KEYBOARD_KEY_3a=esc
# '';
services.xserver.xkb.options = "caps:swapescape";
# services.xserver.xkb.extraLayouts."swap" = {
# description = "caps swap";
# languages = [ "eng" ];
# symbolsFile = pkgs.writeText "keyboard" ''
# xkb_symbols
# {
# include "us(basic)"
# key <CAPS> {[ Escape ]};
# }
# '';
# };
console.useXkbConfig = true;
services.libinput.enable = true;
hardware.graphics.enable = true;
hardware.graphics.enable32Bit = true;
services.udisks2.enable = true;
# services.flatpak.enable = true;
security.polkit.enable = true;
xdg.autostart.enable = true;
xdg.portal.enable = true;
# services.tailscale.enable = true;
# TODO - move these to more appropriate places
environment.systemPackages = with pkgs; [
curl
eza
git
jujutsu
];
# services.atuin.enable = true;
programs.nh = {
enable = true;
clean.enable = true;
clean.extraArgs = "--keep-since 3d --keep 3";
package = getFlakePackage "nh";
};
programs.nix-index-database.comma.enable = true;
programs.nix-index.enableZshIntegration = false;
programs.nix-index.enableBashIntegration = false;
# gnome/freedesktop compat stuff
programs.dconf.enable = true;
services.gvfs.enable = true;
# give cpuset to user
systemd.services."user@".serviceConfig.Delegate = "memory pids cpu cpuset";
systemd.user.extraConfig = "LogLevel=debug";
system.nixos.tags = [ "fatcock" ];
}