nix/system/configuration.nix
atagen 7485de646a current
linted
2025-02-02 17:07:42 +11:00

144 lines
3.1 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.nixd.overlays.default
inputs.niri.overlays.niri
self.overlays.rice
self.overlays.murex
self.overlays.murex-starship
self.overlays.murex-jump
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 ]};
}
'';
};
services.kmscon.useXkbConfig = true;
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" ];
}