2024-03-31 12:59:24 +01:00
|
|
|
{
|
2024-06-07 06:17:37 +01:00
|
|
|
config,
|
2024-03-31 12:59:24 +01:00
|
|
|
pkgs,
|
2024-05-11 15:41:19 +01:00
|
|
|
iosevkaCustom,
|
2024-03-31 12:59:24 +01:00
|
|
|
...
|
|
|
|
}: {
|
2024-05-11 15:41:19 +01:00
|
|
|
nix = {
|
|
|
|
enable = true;
|
|
|
|
settings = {
|
|
|
|
cores = 0;
|
|
|
|
max-jobs = "auto";
|
|
|
|
trusted-users = ["root"];
|
|
|
|
experimental-features = ["nix-command" "flakes"];
|
|
|
|
auto-optimise-store = true;
|
|
|
|
};
|
|
|
|
channel.enable = true;
|
|
|
|
gc = {
|
|
|
|
automatic = true;
|
|
|
|
options = "--delete-older-than 7d";
|
|
|
|
};
|
|
|
|
optimise.automatic = true;
|
|
|
|
extraOptions = ''
|
|
|
|
keep-outputs = false
|
|
|
|
keep-derivations = false
|
|
|
|
min-free = ${toString (100 * 1024 * 1024)}
|
|
|
|
max-free = ${toString (1024 * 1024 * 1024)}
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
nixpkgs.config.allowUnfree = true;
|
2024-06-07 06:17:37 +01:00
|
|
|
system = {
|
|
|
|
stateVersion = "23.05";
|
|
|
|
autoUpgrade = {
|
|
|
|
enable = true;
|
|
|
|
persistent = true;
|
2024-06-25 06:50:05 +01:00
|
|
|
allowReboot = false;
|
2024-06-07 06:17:37 +01:00
|
|
|
flake = "git+${config.nix.registry.my-nixos.to.url}";
|
|
|
|
dates = "02:00";
|
|
|
|
randomizedDelaySec = "45min";
|
|
|
|
flags = [
|
2024-06-25 06:50:05 +01:00
|
|
|
"--accept-flake-config"
|
2024-06-07 06:17:37 +01:00
|
|
|
"--option"
|
|
|
|
"extra-binary-caches"
|
|
|
|
"https://nix.xenia.me.uk"
|
|
|
|
];
|
|
|
|
};
|
|
|
|
};
|
2024-02-25 06:32:13 +00:00
|
|
|
boot.loader = {
|
|
|
|
systemd-boot.enable = true;
|
|
|
|
efi.canTouchEfiVariables = true;
|
|
|
|
};
|
2023-10-09 11:40:25 +01:00
|
|
|
networking = {
|
|
|
|
networkmanager.enable = true;
|
2024-02-25 06:32:13 +00:00
|
|
|
firewall.enable = true;
|
2024-01-30 14:21:50 +00:00
|
|
|
nameservers = ["9.9.9.9"];
|
2023-10-09 11:40:25 +01:00
|
|
|
};
|
2024-05-11 15:41:19 +01:00
|
|
|
users.users.root.openssh.authorizedKeys.keys = [
|
|
|
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINI1dWlS16Keil0MGPWmMsBzx8F9ylfz+fRwxUr8/tZ/ ion"
|
|
|
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC4M1zV3yLMMI1tYwdY9QDXJDlOBugm7UXKC+Xk89yHq pixelifytica@Vanguard"
|
|
|
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICPypUUGVAdpl0SHrUDVw0RureuFNsljrXQvrf0uc055 pixelifytica@Northstar"
|
|
|
|
];
|
2023-10-09 11:40:25 +01:00
|
|
|
environment = {
|
2024-06-05 15:23:52 +01:00
|
|
|
pathsToLink = ["/share/zsh"];
|
2024-03-08 08:10:36 +00:00
|
|
|
sessionVariables = {
|
|
|
|
XDG_CONFIG_HOME = "$HOME/.config";
|
|
|
|
XDG_CACHE_HOME = "$HOME/.cache";
|
|
|
|
XDG_DATA_HOME = "$HOME/.local/share";
|
|
|
|
XDG_STATE_HOME = "$HOME/.local/state";
|
|
|
|
};
|
2023-12-12 06:31:18 +00:00
|
|
|
systemPackages = with pkgs; [
|
|
|
|
libsecret
|
2024-05-30 13:37:32 +01:00
|
|
|
coreutils-full
|
2024-05-11 16:15:46 +01:00
|
|
|
gnumake
|
2024-01-12 08:19:20 +00:00
|
|
|
git
|
2024-05-27 10:18:56 +01:00
|
|
|
file
|
2023-12-12 06:31:18 +00:00
|
|
|
zip
|
|
|
|
unzip
|
2024-05-30 13:37:32 +01:00
|
|
|
curl
|
|
|
|
wget
|
2024-05-27 10:18:56 +01:00
|
|
|
dig
|
2024-02-20 15:36:16 +00:00
|
|
|
wireguard-tools
|
2024-05-30 16:21:36 +01:00
|
|
|
(quickemu.override {qemu = qemu_full;})
|
2023-12-12 06:31:18 +00:00
|
|
|
];
|
2023-10-09 11:40:25 +01:00
|
|
|
localBinInPath = true;
|
|
|
|
};
|
2024-02-25 06:32:13 +00:00
|
|
|
programs = {
|
|
|
|
command-not-found.enable = false;
|
|
|
|
ssh.startAgent = true;
|
|
|
|
nano = {
|
|
|
|
enable = true;
|
|
|
|
syntaxHighlight = true;
|
|
|
|
nanorc = ''
|
|
|
|
set nowrap
|
|
|
|
set tabstospaces
|
|
|
|
set tabsize 2
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
};
|
2023-10-11 08:28:27 +01:00
|
|
|
services = {
|
|
|
|
upower.enable = true;
|
|
|
|
power-profiles-daemon.enable = true;
|
2023-10-20 22:33:34 +01:00
|
|
|
system76-scheduler = {
|
|
|
|
enable = true;
|
|
|
|
useStockConfig = true;
|
|
|
|
};
|
2023-10-11 08:28:27 +01:00
|
|
|
};
|
2024-06-19 13:55:24 +01:00
|
|
|
security.rtkit.enable = true;
|
2023-10-09 11:40:25 +01:00
|
|
|
virtualisation.podman.enable = true;
|
|
|
|
time.timeZone = "Europe/London";
|
2024-06-17 08:46:29 +01:00
|
|
|
i18n.defaultLocale = "en_GB.UTF-8";
|
|
|
|
console = {
|
|
|
|
font = iosevkaCustom.names.iosevka-custom-nerdfont;
|
|
|
|
useXkbConfig = true;
|
2023-10-09 11:40:25 +01:00
|
|
|
};
|
2024-02-25 06:32:13 +00:00
|
|
|
fonts = {
|
2024-05-11 15:41:19 +01:00
|
|
|
packages = with pkgs;
|
|
|
|
with iosevkaCustom.packages; [
|
|
|
|
iosevka-custom-nerdfont
|
|
|
|
iosevka-custom-aile
|
2024-03-12 13:53:20 +00:00
|
|
|
(nerdfonts.override {fonts = ["NerdFontsSymbolsOnly"];}) # Status bar
|
|
|
|
emacs-all-the-icons-fonts # Emacs
|
|
|
|
weather-icons # Emacs
|
|
|
|
lmodern # LaTeX
|
2024-05-11 15:41:19 +01:00
|
|
|
noto-fonts-emoji # Emoji
|
2024-02-25 06:32:13 +00:00
|
|
|
];
|
2024-03-31 12:59:24 +01:00
|
|
|
fontconfig = {
|
|
|
|
enable = true;
|
2024-05-11 15:41:19 +01:00
|
|
|
defaultFonts = with iosevkaCustom.names; {
|
|
|
|
serif = [iosevka-custom-aile];
|
|
|
|
sansSerif = [iosevka-custom-aile];
|
|
|
|
monospace = [iosevka-custom-nerdfont];
|
|
|
|
emoji = ["Noto Color Emoji"];
|
2024-03-31 12:59:24 +01:00
|
|
|
};
|
|
|
|
};
|
2024-02-25 06:32:13 +00:00
|
|
|
};
|
2023-10-09 11:40:25 +01:00
|
|
|
}
|