nixos-config/system/starlight/default.nix

142 lines
3.4 KiB
Nix

{ config, pkgs, lib, inputs, ... }:
{
imports = [
./boot-config.nix
./hardware-configuration.nix
./scripts.nix
../../sets/builder.nix
../../sets/disc.nix
../../sets/fpga.nix
../../sets/hacking.nix
../../sets/hardware.nix
../../sets/music.nix
../../sets/radio.nix
../../sets/secureBoot.nix
../../sets/sshd.nix
../../sets/virtualization.nix
../../sets/workstation.nix
inputs.nixos-hardware.nixosModules.common-cpu-amd
inputs.nixos-hardware.nixosModules.common-gpu-amd
inputs.private.nixosModules.starlight
];
# 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"
SUBSYSTEM=="usb", ATTR{idVendor}=="057e", ATTR{idProduct}=="3000", TAG+="uaccess", TAG+="udev-acl"
'';
networking.useDHCP = false;
networking.vswitches.vs0 = {
extraOvsctlCmds = ''
set Port vs0 tag=1
'';
interfaces = {
lan10g0 = { };
lan10g1 = { };
lan1g0 = { vlan = 4; };
"vs0.4" = {
vlan = 4;
type = "internal";
};
};
};
networking.interfaces."vs0" = {
useDHCP = true;
ipv6.addresses = [{
address = "2001:470:8b04:6900:6969:1454:7749:e591";
prefixLength = 128;
}];
};
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" ];
services.printing.drivers = [
(pkgs.brlaser.overrideAttrs (old: {
version = "unstable-2020-04-20";
src = pkgs.fetchFromGitHub {
owner = "pdewacht";
repo = "brlaser";
rev = "9d7ddda8383bfc4d205b5e1b49de2b8bcd9137f1";
sha256 = "sha256-pNkwJKdKhBO8u97GyvfxmyisaqIkzuk5UslWdaYFMLc=";
};
}))
];
# Home
home-manager.users.artemis = {
programs.git.signing.key =
lib.mkForce "3D2BB230F9FAF0C5183246DD4FDC96F161E7BA8A";
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";
};
"DP-3" = {
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 = "internet_time"
[[tile]]
type = "local_time"
format = "%a %b %e %H:%M %Z"
geoip_path = "${config.artemist.geoip}"
fallback_zone = "America/New_York"
[[tile]]
type = "utc_time"
format = "%FT%TZ (%s)"
'';
xdg.userDirs = {
music = "/media/data/Musik";
pictures = "/media/luna/photos";
};
};
# oh god
system.includeBuildDependencies = true;
# NixOS
system.stateVersion = "21.11";
}