2024-06-09 18:31:39 +00:00
|
|
|
{ pkgs, config, lib, inputs, ... }: {
|
2023-10-08 14:57:57 +00:00
|
|
|
time.timeZone = "Europe/Amsterdam";
|
|
|
|
i18n.defaultLocale = "en_US.UTF-8";
|
|
|
|
|
2023-10-22 20:30:51 +00:00
|
|
|
services = {
|
2023-12-25 18:32:04 +00:00
|
|
|
gnome.gnome-keyring.enable = lib.mkForce false;
|
|
|
|
|
2023-10-22 20:30:51 +00:00
|
|
|
xserver = {
|
|
|
|
enable = true;
|
2023-11-10 10:33:41 +00:00
|
|
|
displayManager.gdm = { enable = true; };
|
2023-10-22 20:30:51 +00:00
|
|
|
desktopManager.gnome.enable = true;
|
2023-11-10 10:33:41 +00:00
|
|
|
excludePackages = with pkgs; [ xterm ];
|
2023-10-22 20:30:51 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
printing = {
|
2023-10-08 14:57:57 +00:00
|
|
|
enable = true;
|
2023-11-10 10:33:41 +00:00
|
|
|
drivers = [ pkgs.hplip pkgs.gutenprint ];
|
2023-10-08 14:57:57 +00:00
|
|
|
};
|
2024-05-25 14:37:37 +00:00
|
|
|
|
|
|
|
pipewire = {
|
|
|
|
enable = true;
|
|
|
|
alsa.enable = true;
|
|
|
|
alsa.support32Bit = true;
|
|
|
|
pulse.enable = true;
|
2024-06-09 18:31:39 +00:00
|
|
|
jack.enable = true;
|
2024-05-25 14:37:37 +00:00
|
|
|
};
|
2023-10-08 14:57:57 +00:00
|
|
|
};
|
|
|
|
|
2023-10-18 18:17:03 +00:00
|
|
|
users = {
|
|
|
|
users.pim = {
|
|
|
|
isNormalUser = true;
|
2024-01-20 15:51:25 +00:00
|
|
|
extraGroups = [ "wheel" "docker" "input" "wireshark" "dialout" ];
|
2023-10-18 18:17:03 +00:00
|
|
|
};
|
2023-10-08 14:57:57 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
environment = {
|
2023-12-16 15:12:13 +00:00
|
|
|
systemPackages = with pkgs; [
|
|
|
|
wget
|
|
|
|
curl
|
|
|
|
git
|
|
|
|
btop
|
|
|
|
ripgrep
|
|
|
|
vim
|
|
|
|
dogdns
|
|
|
|
tree
|
|
|
|
dig
|
2024-06-09 18:31:39 +00:00
|
|
|
gnomeExtensions.pop-shell
|
|
|
|
gnome.gnome-shell-extensions
|
2023-12-16 15:12:13 +00:00
|
|
|
];
|
2024-05-16 16:48:46 +00:00
|
|
|
gnome.excludePackages = with pkgs; with pkgs.gnome; [
|
|
|
|
totem
|
2023-10-16 09:30:17 +00:00
|
|
|
gnome-tour
|
2024-05-16 16:48:46 +00:00
|
|
|
epiphany
|
|
|
|
geary
|
2023-10-16 09:30:17 +00:00
|
|
|
gnome-console
|
2024-05-16 16:48:46 +00:00
|
|
|
gnome-music
|
|
|
|
gnome-calendar
|
2023-10-16 09:30:17 +00:00
|
|
|
];
|
2023-10-08 14:57:57 +00:00
|
|
|
};
|
|
|
|
|
2023-12-16 15:12:13 +00:00
|
|
|
system = {
|
|
|
|
stateVersion = "23.05";
|
|
|
|
|
|
|
|
activationScripts.diff = ''
|
|
|
|
if [[ -e /run/current-system ]]; then
|
|
|
|
${pkgs.nix}/bin/nix store diff-closures /run/current-system "$systemConfig"
|
|
|
|
fi
|
|
|
|
'';
|
|
|
|
};
|
2023-10-08 14:57:57 +00:00
|
|
|
|
2024-04-20 08:57:13 +00:00
|
|
|
programs.ssh.startAgent = true;
|
2023-10-08 14:57:57 +00:00
|
|
|
|
2024-05-25 14:37:37 +00:00
|
|
|
security = {
|
|
|
|
rtkit.enable = true;
|
|
|
|
|
|
|
|
sudo.extraConfig = ''
|
|
|
|
Defaults timestamp_timeout=30
|
|
|
|
'';
|
|
|
|
};
|
2023-10-08 14:57:57 +00:00
|
|
|
|
|
|
|
nix = {
|
|
|
|
package = pkgs.nixFlakes;
|
2024-04-29 13:19:17 +00:00
|
|
|
settings.trusted-users = [ "root" "pim" ];
|
|
|
|
|
2023-10-08 14:57:57 +00:00
|
|
|
extraOptions = ''
|
|
|
|
experimental-features = nix-command flakes
|
|
|
|
'';
|
2023-10-18 18:17:03 +00:00
|
|
|
|
|
|
|
gc = {
|
|
|
|
automatic = true;
|
|
|
|
persistent = true;
|
|
|
|
dates = "weekly";
|
2023-11-10 11:15:01 +00:00
|
|
|
options = "--delete-older-than 7d";
|
2023-10-18 18:17:03 +00:00
|
|
|
};
|
2023-10-08 14:57:57 +00:00
|
|
|
};
|
2023-10-14 17:08:02 +00:00
|
|
|
|
2023-10-22 20:30:51 +00:00
|
|
|
age = {
|
2023-11-10 10:33:41 +00:00
|
|
|
identityPaths = [ "/home/pim/.ssh/age_ed25519" ];
|
2023-10-14 17:08:02 +00:00
|
|
|
|
2023-10-22 20:30:51 +00:00
|
|
|
secrets = {
|
2024-05-26 15:12:52 +00:00
|
|
|
wg-quick-home-privkey.file = ./secrets/wg-quick-home-privkey.age;
|
2023-11-10 10:33:41 +00:00
|
|
|
wg-quick-home-preshared-key.file =
|
2024-05-26 15:12:52 +00:00
|
|
|
./secrets/wg-quick-home-preshared-key.age;
|
2023-10-22 20:30:51 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
networking = {
|
2024-05-25 14:37:37 +00:00
|
|
|
useDHCP = lib.mkDefault true;
|
|
|
|
|
2024-01-13 13:00:17 +00:00
|
|
|
wg-quick.interfaces = {
|
|
|
|
home = {
|
|
|
|
privateKeyFile = config.age.secrets.wg-quick-home-privkey.path;
|
2024-01-20 15:51:25 +00:00
|
|
|
address = [ "10.225.191.4/24" "fd11:5ee:bad:c0de::4/128" ];
|
2024-04-20 08:57:13 +00:00
|
|
|
dns = [ "192.168.30.131" ];
|
2024-01-13 13:00:17 +00:00
|
|
|
autostart = false;
|
2024-05-05 16:07:40 +00:00
|
|
|
mtu = 1412;
|
2024-01-13 13:00:17 +00:00
|
|
|
peers = [{
|
|
|
|
presharedKeyFile = config.age.secrets.wg-quick-home-preshared-key.path;
|
2024-01-21 11:11:52 +00:00
|
|
|
endpoint = "wg.kun.is:51820";
|
2024-01-13 13:00:17 +00:00
|
|
|
publicKey = "fa3mQ7ximJbH7cu2ZbWidto5xBGxEEfWvCCiUDk00Hg=";
|
2024-01-20 15:51:25 +00:00
|
|
|
allowedIPs = [ "0.0.0.0/0" "::/0" ];
|
2024-01-13 13:00:17 +00:00
|
|
|
}];
|
|
|
|
};
|
|
|
|
|
|
|
|
home-no-pihole = {
|
|
|
|
privateKeyFile = config.age.secrets.wg-quick-home-privkey.path;
|
2024-01-20 15:51:25 +00:00
|
|
|
address = [ "10.225.191.4/24" "fd11:5ee:bad:c0de::4/128" ];
|
2024-05-05 16:07:40 +00:00
|
|
|
dns = [ "192.168.10.1" ];
|
2024-01-13 13:00:17 +00:00
|
|
|
autostart = false;
|
2024-05-05 16:07:40 +00:00
|
|
|
mtu = 1412;
|
2024-01-13 13:00:17 +00:00
|
|
|
peers = [{
|
|
|
|
presharedKeyFile = config.age.secrets.wg-quick-home-preshared-key.path;
|
2024-01-21 11:11:52 +00:00
|
|
|
endpoint = "wg.kun.is:51820";
|
2024-01-13 13:00:17 +00:00
|
|
|
publicKey = "fa3mQ7ximJbH7cu2ZbWidto5xBGxEEfWvCCiUDk00Hg=";
|
2024-01-20 15:51:25 +00:00
|
|
|
allowedIPs = [ "0.0.0.0/0" "::/0" ];
|
2024-01-13 13:00:17 +00:00
|
|
|
}];
|
|
|
|
};
|
2023-10-14 17:08:02 +00:00
|
|
|
};
|
|
|
|
};
|
2023-10-18 18:17:03 +00:00
|
|
|
|
|
|
|
virtualisation.docker = {
|
|
|
|
enable = true;
|
|
|
|
rootless = {
|
|
|
|
enable = true;
|
|
|
|
setSocketVariable = true;
|
|
|
|
};
|
|
|
|
};
|
2023-12-25 18:32:04 +00:00
|
|
|
|
2024-05-25 14:37:37 +00:00
|
|
|
nixpkgs = {
|
|
|
|
hostPlatform = lib.mkDefault "x86_64-linux";
|
|
|
|
|
|
|
|
config = {
|
|
|
|
permittedInsecurePackages = [ "electron-25.9.0" ];
|
|
|
|
allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "vmware-horizon-client" "libfprint-2-tod1-goodix" "vmware-workstation" ];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
boot = {
|
|
|
|
kernelModules = [ "kvm-intel" ];
|
|
|
|
extraModulePackages = [ ];
|
|
|
|
|
|
|
|
initrd = {
|
2024-05-26 15:12:52 +00:00
|
|
|
availableKernelModules = [ "sd_mod" ];
|
2024-05-25 14:37:37 +00:00
|
|
|
kernelModules = [ ];
|
|
|
|
};
|
|
|
|
|
|
|
|
kernel.sysctl = {
|
|
|
|
"net.core.default_qdisc" = "fq";
|
|
|
|
"net.ipv4.tcp_congestion_control" = "bbr";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
hardware = {
|
|
|
|
cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
|
|
pulseaudio.enable = false;
|
2024-01-28 13:31:45 +00:00
|
|
|
};
|
2024-06-09 18:31:39 +00:00
|
|
|
|
|
|
|
stylix = {
|
|
|
|
base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-medium.yaml";
|
|
|
|
image = "${inputs.nixos-artwork}/wallpapers/nix-wallpaper-binary-blue.png";
|
|
|
|
|
|
|
|
cursor = {
|
|
|
|
package = pkgs.bibata-cursors;
|
|
|
|
name = "Bibata-Modern-Ice";
|
|
|
|
};
|
|
|
|
|
|
|
|
fonts = {
|
|
|
|
monospace = {
|
|
|
|
package = pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; };
|
|
|
|
name = "JetBrainsMono Nerd Font Mono";
|
|
|
|
};
|
|
|
|
|
|
|
|
sansSerif = {
|
|
|
|
package = pkgs.dejavu_fonts;
|
|
|
|
name = "DejaVu Sans";
|
|
|
|
};
|
|
|
|
|
|
|
|
serif = {
|
|
|
|
package = pkgs.dejavu_fonts;
|
|
|
|
name = "DejaVu Serif";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2023-10-08 14:57:57 +00:00
|
|
|
}
|