137 lines
2.8 KiB
Nix
137 lines
2.8 KiB
Nix
{
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}: {
|
|
imports = [
|
|
./programs.nix
|
|
];
|
|
|
|
nixpkgs.config.allowUnfreePredicate = let
|
|
whitelist = with pkgs;
|
|
map lib.getName [
|
|
discord
|
|
steam
|
|
steamcmd
|
|
steam-unwrapped
|
|
|
|
winbox
|
|
|
|
obsidian
|
|
gitkraken
|
|
];
|
|
in
|
|
pkg: builtins.elem (lib.getName pkg) whitelist;
|
|
|
|
boot.loader = {
|
|
efi = {
|
|
canTouchEfiVariables = true;
|
|
efiSysMountPoint = "/boot/efi";
|
|
};
|
|
grub = {
|
|
efiSupport = true;
|
|
device = "nodev";
|
|
# useOSProber = true;
|
|
};
|
|
};
|
|
|
|
# Enable initrd hook for virtual console customisation
|
|
# aka cool colours when bootting yay!!
|
|
console = {
|
|
enable = true;
|
|
earlySetup = true; # initrd pre hook
|
|
keyMap = "us";
|
|
font = "Lat2-Terminus16";
|
|
# ANSI 24-bit color definitions (theme: dracula)
|
|
colors = [
|
|
"21222c"
|
|
"ff5555"
|
|
"50fa7b"
|
|
"f1fa8c"
|
|
"bd93f9"
|
|
"ff79c6"
|
|
"8be9fd"
|
|
"f8f8f2"
|
|
"6272a4"
|
|
"ff6e6e"
|
|
"69ff94"
|
|
"ffffa5"
|
|
"d6acff"
|
|
"ff92df"
|
|
"a4ffff"
|
|
"ffffff"
|
|
];
|
|
};
|
|
|
|
hardware = {
|
|
graphics = {
|
|
enable = true;
|
|
enable32Bit = true;
|
|
};
|
|
|
|
bluetooth = {
|
|
enable = true;
|
|
powerOnBoot = true;
|
|
};
|
|
};
|
|
|
|
virtualisation.docker.enable = true;
|
|
|
|
services = {
|
|
# systemd-resolved provides network name resolution
|
|
# to local processes via a D-Bus interface.
|
|
resolved = {
|
|
enable = true;
|
|
dnssec = "true";
|
|
domains = ["~."];
|
|
# Use CloudFlare's WARP+ 1.1.1.1 DNS service
|
|
fallbackDns = [
|
|
"1.1.1.1#one.one.one.one"
|
|
"1.0.0.1#one.one.one.one"
|
|
];
|
|
dnsovertls = "true";
|
|
};
|
|
|
|
# Multimedia Framework
|
|
# With backwards compatability for alsa/pulseaudio/jack
|
|
pipewire = {
|
|
enable = true;
|
|
audio.enable = true;
|
|
wireplumber.enable = true;
|
|
|
|
alsa.enable = true;
|
|
alsa.support32Bit = true;
|
|
pulse.enable = true;
|
|
jack.enable = true;
|
|
};
|
|
};
|
|
|
|
security = {
|
|
rtkit.enable = true; # I *think* this is for pipewire
|
|
sudo.wheelNeedsPassword = lib.mkDefault true;
|
|
};
|
|
|
|
# ---- ENVIRONMENT VARIABLES ----
|
|
environment = {
|
|
# always install "dev" derivation outputs
|
|
extraOutputsToInstall = ["dev" "man"];
|
|
|
|
sessionVariables = {
|
|
# folder names with capitalisation look awful!
|
|
XDG_DOWNLOAD_DIR = "$HOME/downloads";
|
|
};
|
|
};
|
|
|
|
documentation = {
|
|
enable = true;
|
|
doc.enable = true; # install /share/doc packages
|
|
man.enable = true; # install manpages
|
|
info.enable = true; # install GNU info
|
|
dev.enable = true; # install docs intended for developers
|
|
nixos = {
|
|
enable = true; # install NixOS documentation (ie man -k nix, & nixos-help)
|
|
options.splitBuild = true;
|
|
includeAllModules = false;
|
|
};
|
|
};
|
|
}
|