Evie Litherland-Smith
68b4a7b063
Move system/home/default.nix into system/default.nix, system/home/desktop/default.nix into system/desktop.nix to reduce unnecessary duplication. Moved everything in home/desktop up to home/ and adjusted paths accordingly. Moved wallpapers up to system/ since it makes sense with where it's used. Merge allowUnfreePredicate into single place again since it seems to override rather than combine if used multiple times. Install NoMachine on all machines again by default.
243 lines
5.8 KiB
Nix
243 lines
5.8 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
inputs,
|
|
username,
|
|
hostName,
|
|
...
|
|
}:
|
|
{
|
|
imports = [
|
|
inputs.home-manager.nixosModules.home-manager
|
|
inputs.stylix.nixosModules.stylix
|
|
./${hostName}.nix
|
|
./hardware-configuration/${hostName}.nix
|
|
];
|
|
nix = {
|
|
enable = true;
|
|
package = pkgs.nixVersions.latest;
|
|
settings = {
|
|
cores = 0;
|
|
max-jobs = "auto";
|
|
trusted-users = [
|
|
"root"
|
|
username
|
|
];
|
|
experimental-features = [
|
|
"nix-command"
|
|
"flakes"
|
|
];
|
|
auto-optimise-store = true;
|
|
substituters = [ "https://nix.xenia.me.uk" ];
|
|
trusted-public-keys = [ "nix.xenia.me.uk:tlgwOaG5KMLjQUk2YaErS8mAG69ZCr3PaHXZYi+Y5eI=" ];
|
|
};
|
|
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
|
|
channel.enable = true;
|
|
gc = {
|
|
automatic = true;
|
|
options = "--delete-older-than 7d";
|
|
};
|
|
optimise.automatic = true;
|
|
registry.my-nixos = {
|
|
from = {
|
|
type = "indirect";
|
|
id = "my-nixos";
|
|
};
|
|
to = {
|
|
type = "git";
|
|
url = "https://git.xenia.me.uk/pixelifytica/nixos.git?ref=main";
|
|
};
|
|
};
|
|
extraOptions = ''
|
|
keep-outputs = false
|
|
keep-derivations = false
|
|
min-free = ${toString (100 * 1024 * 1024)}
|
|
max-free = ${toString (1024 * 1024 * 1024)}
|
|
'';
|
|
};
|
|
nixpkgs.config.allowUnfreePredicate =
|
|
pkg:
|
|
builtins.elem (lib.getName pkg) [
|
|
"steam"
|
|
"steam-unwrapped"
|
|
"steam-original"
|
|
"steam-run"
|
|
"nomachine-client"
|
|
];
|
|
system.autoUpgrade = {
|
|
enable = true;
|
|
persistent = true;
|
|
allowReboot = false;
|
|
flake = "git+${config.nix.registry.my-nixos.to.url}";
|
|
dates = "02:00";
|
|
randomizedDelaySec = "5min";
|
|
fixedRandomDelay = true;
|
|
flags = [
|
|
"--option"
|
|
"extra-binary-caches"
|
|
"https://nix.xenia.me.uk"
|
|
];
|
|
};
|
|
systemd.services = lib.mkIf config.system.autoUpgrade.enable {
|
|
nixos-upgrade.serviceConfig = {
|
|
CPUQuota = "75%";
|
|
CPUWeight = 20;
|
|
IOWeight = 20;
|
|
};
|
|
};
|
|
boot.loader = {
|
|
systemd-boot.enable = true;
|
|
efi.canTouchEfiVariables = true;
|
|
};
|
|
networking = {
|
|
inherit hostName;
|
|
networkmanager.enable = true;
|
|
firewall.enable = true;
|
|
nameservers = [ "9.9.9.9" ];
|
|
};
|
|
users.users =
|
|
let
|
|
authorizedKeys.keys = [
|
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINI1dWlS16Keil0MGPWmMsBzx8F9ylfz+fRwxUr8/tZ/ ion"
|
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC4M1zV3yLMMI1tYwdY9QDXJDlOBugm7UXKC+Xk89yHq pixelifytica@Vanguard"
|
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICPypUUGVAdpl0SHrUDVw0RureuFNsljrXQvrf0uc055 pixelifytica@Northstar"
|
|
];
|
|
in
|
|
{
|
|
root.openssh = {
|
|
inherit authorizedKeys;
|
|
};
|
|
${username} = {
|
|
isNormalUser = true;
|
|
group = "users";
|
|
description = "Evie Litherland-Smith";
|
|
extraGroups = [
|
|
"networkmanager"
|
|
"wheel"
|
|
"video"
|
|
"input"
|
|
"uinput"
|
|
"dialout"
|
|
];
|
|
initialHashedPassword = "$y$j9T$tHIPQt09Kf3KH2eIRze3g/$2mwSlcq27DTGvHNPJ5EP9/1CfL3bXP0F6oS/Vuffmn3";
|
|
openssh = {
|
|
inherit authorizedKeys;
|
|
};
|
|
};
|
|
};
|
|
home-manager = {
|
|
useGlobalPkgs = true;
|
|
useUserPackages = true;
|
|
backupFileExtension = "backup";
|
|
users.${username} = {
|
|
imports = [
|
|
./home/shell/default.nix
|
|
./home/scripts/default.nix
|
|
./home/password-store/default.nix
|
|
];
|
|
home = {
|
|
inherit username;
|
|
homeDirectory = "/home/${username}";
|
|
};
|
|
programs.home-manager.enable = true;
|
|
};
|
|
extraSpecialArgs = {
|
|
inherit inputs;
|
|
};
|
|
};
|
|
environment = {
|
|
sessionVariables = {
|
|
XDG_CONFIG_HOME = "$HOME/.config";
|
|
XDG_CACHE_HOME = "$HOME/.cache";
|
|
XDG_DATA_HOME = "$HOME/.local/share";
|
|
XDG_STATE_HOME = "$HOME/.local/state";
|
|
};
|
|
systemPackages = with pkgs; [
|
|
coreutils-full
|
|
gnumake
|
|
git
|
|
file
|
|
zip
|
|
unzip
|
|
p7zip
|
|
curl
|
|
wget
|
|
dig
|
|
wireguard-tools
|
|
quickemu
|
|
distrobox
|
|
];
|
|
localBinInPath = true;
|
|
};
|
|
programs = {
|
|
command-not-found.enable = false;
|
|
ssh.startAgent = true;
|
|
nano = {
|
|
enable = true;
|
|
syntaxHighlight = true;
|
|
nanorc = ''
|
|
set nowrap
|
|
set tabstospaces
|
|
set tabsize 2
|
|
'';
|
|
};
|
|
};
|
|
services = {
|
|
upower.enable = true;
|
|
power-profiles-daemon.enable = true;
|
|
system76-scheduler = {
|
|
enable = true;
|
|
useStockConfig = true;
|
|
};
|
|
};
|
|
security.rtkit.enable = true;
|
|
virtualisation.podman.enable = true;
|
|
location = {
|
|
latitude = 51.7;
|
|
longitude = -1.2;
|
|
provider = "manual";
|
|
};
|
|
time.timeZone = "Europe/London";
|
|
i18n.defaultLocale = "en_GB.UTF-8";
|
|
console.useXkbConfig = true;
|
|
stylix = {
|
|
enable = true;
|
|
image = ./wallpapers/tropic_island_day.jpg;
|
|
base16Scheme = ./one-light.yaml; # Base24 scheme
|
|
polarity = "light";
|
|
opacity.popups = 0.8;
|
|
cursor = {
|
|
package = pkgs.volantes-cursors;
|
|
name = "volantes_cursors";
|
|
size = 32;
|
|
};
|
|
fonts = {
|
|
serif = {
|
|
package = inputs.iosevka-custom.outputs.packages.${pkgs.system}.iosevka-custom-etoile;
|
|
name = inputs.iosevka-custom.outputs.names.iosevka-custom-etoile;
|
|
};
|
|
sansSerif = {
|
|
package = inputs.iosevka-custom.outputs.packages.${pkgs.system}.iosevka-custom-aile;
|
|
name = inputs.iosevka-custom.outputs.names.iosevka-custom-aile;
|
|
};
|
|
monospace = {
|
|
package = pkgs.nerdfonts.override { fonts = [ "Iosevka" ]; };
|
|
name = "Iosevka Nerd Font";
|
|
};
|
|
sizes = {
|
|
applications = 12;
|
|
desktop = 14;
|
|
popups = 16;
|
|
terminal = 12;
|
|
};
|
|
};
|
|
};
|
|
fonts.packages = with pkgs; [
|
|
dejavu_fonts # General compatibility
|
|
liberation_ttf # Documents
|
|
lmodern # LaTeX
|
|
(nerdfonts.override { fonts = [ "NerdFontsSymbolsOnly" ]; })
|
|
];
|
|
}
|