nixos-config/system/starlight/default.nix

106 lines
2.6 KiB
Nix

{ config, pkgs, lib, ... }:
{
imports = [
./boot-config.nix
./hardware-configuration.nix
./scripts.nix
./vfio.nix
../../sets/builder.nix
../../sets/cpu/amd.nix
../../sets/fpga.nix
../../sets/gpu/amd.nix
../../sets/hacking.nix
../../sets/hardware.nix
../../sets/krb5.nix
../../sets/radio.nix
../../sets/sshd.nix
../../sets/virtualization.nix
../../sets/workstation.nix
../../sets/1password.nix
];
# Network
networking.hostName = "starlight";
services.udev.extraRules = ''
KERNEL=="eth*", ATTR{address}=="00:0f:53:16:15:9c", NAME="lan10g0"
KERNEL=="eth*", ATTR{address}=="00:0f:53:16:15:9d", NAME="lan10g1"
KERNEL=="eth*", ATTR{address}=="b4:2e:99:3d:07:66", NAME="lan1g0"
'';
networking.bridges.br0 = {
rstp = true;
interfaces = [ "lan10g0" "lan10g1" "lan1g0" ];
};
networking.interfaces.br0 = {
useDHCP = true;
ipv6.addresses = [{
address = "2001:470:8b04:6900:6969:1454:7749:e591";
prefixLength = 128;
}];
};
networking.dhcpcd.allowInterfaces = [ "br0" ];
networking.vlans."br0.5" = {
id = 5;
interface = "br0";
};
networking.bridges.brvm = {
rstp = false;
interfaces = [ "br0.5" ];
};
services.openssh.extraConfig = ''
HostCertificate ${./starlight-cert.pub}
'';
# Filesystems
services.btrfs.autoScrub = {
enable = true;
fileSystems = [ "/" "/media/data" ];
};
# Skye user for luna
users.users.skye = {
isSystemUser = true;
uid = 1001;
group = "users";
};
# Packages
boot.binfmt.emulatedSystems = [ "aarch64-linux" "riscv64-linux" ];
environment.systemPackages = with pkgs; [
(weechat.override {
configure = { availablePlugins, ... }: {
plugins = (builtins.attrValues availablePlugins);
scripts = [ weechatScripts.weechat-matrix ];
};
})
];
hardware.opengl.extraPackages = with pkgs; [ vulkan-validation-layers ];
# Home
home-manager.users.artemis = {
programs.mpv.defaultProfiles = [ "gpu-hq" ];
wayland.windowManager.sway.config.output = {
"DP-1" = { pos = "0 0"; mode = "3840x2160@59.997Hz"; scale = "2"; };
"DP-2" = { pos = "1920 0"; mode = "3840x2160@59.997Hz"; scale = "2"; };
"HDMI-A-1" = { pos = "3840 0"; mode = "3840x2160@60Hz"; scale = "2"; };
};
# no toTOML generator so I guess we have to do this
xdg.configFile."rustybar/config.toml".text = ''
[[tile]]
type = "load"
[[tile]]
type = "memory"
[[tile]]
type = "hostname"
[[tile]]
type = "time"
format = "%Y-%m-%dT%H:%M:%S"
'';
};
# NixOS
system.stateVersion = "21.11";
}