mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 04:19:19 -08:00
hosts/koishi: v330-14arr -> x270
This commit is contained in:
parent
34fd56c791
commit
ec66fd0377
15 changed files with 380 additions and 287 deletions
|
|
@ -1,5 +1,4 @@
|
||||||
{ meta, tf, config, pkgs, lib, sources, ... }: with lib; {
|
{ meta, tf, config, pkgs, lib, sources, ... }: with lib; {
|
||||||
|
|
||||||
imports = with meta; [
|
imports = with meta; [
|
||||||
profiles.hardware.ms-7b86
|
profiles.hardware.ms-7b86
|
||||||
profiles.hardware.razer
|
profiles.hardware.razer
|
||||||
|
|
@ -18,232 +17,234 @@
|
||||||
services.zfs
|
services.zfs
|
||||||
];
|
];
|
||||||
|
|
||||||
deploy.tf = {
|
|
||||||
resources.goliath = {
|
config = {
|
||||||
provider = "null";
|
deploy.tf = {
|
||||||
type = "resource";
|
resources.goliath = {
|
||||||
connection = {
|
provider = "null";
|
||||||
port = head config.services.openssh.ports;
|
type = "resource";
|
||||||
host = config.network.addresses.private.nixos.ipv4.address;
|
connection = {
|
||||||
|
port = head config.services.openssh.ports;
|
||||||
|
host = config.network.addresses.private.nixos.ipv4.address;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
boot.supportedFilesystems = [ "zfs" "xfs" ];
|
boot.supportedFilesystems = [ "zfs" "xfs" ];
|
||||||
|
|
||||||
fileSystems = {
|
fileSystems = {
|
||||||
"/" = {
|
"/" = {
|
||||||
device = "rpool/ephemeral/root";
|
device = "rpool/ephemeral/root";
|
||||||
fsType = "zfs";
|
fsType = "zfs";
|
||||||
|
};
|
||||||
|
"/nix" = {
|
||||||
|
device = "rpool/local/nix";
|
||||||
|
fsType = "zfs";
|
||||||
|
};
|
||||||
|
"/home" = {
|
||||||
|
device = "rpool/ephemeral/home";
|
||||||
|
fsType = "zfs";
|
||||||
|
};
|
||||||
|
"/persist/root" = {
|
||||||
|
device = "rpool/persist/root";
|
||||||
|
fsType = "zfs";
|
||||||
|
neededForBoot = true;
|
||||||
|
};
|
||||||
|
"/persist/home" = {
|
||||||
|
device = "rpool/persist/home";
|
||||||
|
fsType = "zfs";
|
||||||
|
neededForBoot = true;
|
||||||
|
};
|
||||||
|
"/boot" = {
|
||||||
|
device = "/dev/disk/by-uuid/AED6-D0D1";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
"/mnt/xstore" = {
|
||||||
|
device = "/dev/disk/by-uuid/64269102-a278-4919-9118-34e37f4afdb0";
|
||||||
|
fsType = "xfs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
"/nix" = {
|
|
||||||
device = "rpool/local/nix";
|
|
||||||
fsType = "zfs";
|
|
||||||
};
|
|
||||||
"/home" = {
|
|
||||||
device = "rpool/ephemeral/home";
|
|
||||||
fsType = "zfs";
|
|
||||||
};
|
|
||||||
"/persist/root" = {
|
|
||||||
device = "rpool/persist/root";
|
|
||||||
fsType = "zfs";
|
|
||||||
neededForBoot = true;
|
|
||||||
};
|
|
||||||
"/persist/home" = {
|
|
||||||
device = "rpool/persist/home";
|
|
||||||
fsType = "zfs";
|
|
||||||
neededForBoot = true;
|
|
||||||
};
|
|
||||||
"/boot" = {
|
|
||||||
device = "/dev/disk/by-uuid/AED6-D0D1";
|
|
||||||
fsType = "vfat";
|
|
||||||
};
|
|
||||||
"/mnt/xstore" = {
|
|
||||||
device = "/dev/disk/by-uuid/64269102-a278-4919-9118-34e37f4afdb0";
|
|
||||||
fsType = "xfs";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
boot.initrd.postDeviceCommands = mkIf (config.fileSystems."/".fsType == "zfs") (mkAfter ''
|
boot.initrd.postDeviceCommands = mkIf (config.fileSystems."/".fsType == "zfs") (mkAfter ''
|
||||||
zfs rollback -r ${config.fileSystems."/".device}@blank
|
zfs rollback -r ${config.fileSystems."/".device}@blank
|
||||||
zfs rollback -r ${config.fileSystems."/home".device}@blank
|
zfs rollback -r ${config.fileSystems."/home".device}@blank
|
||||||
'');
|
'');
|
||||||
|
|
||||||
programs.fuse.userAllowOther = true;
|
programs.fuse.userAllowOther = true;
|
||||||
|
|
||||||
environment.persistence."/persist/root" = {
|
environment.persistence."/persist/root" = {
|
||||||
directories = [
|
|
||||||
"/var/log"
|
|
||||||
"/var/lib/systemd/coredump"
|
|
||||||
"/var/lib/acme"
|
|
||||||
"/var/lib/yggdrasil"
|
|
||||||
"/var/lib/kat/secrets"
|
|
||||||
];
|
|
||||||
files = [
|
|
||||||
"/etc/machine-id"
|
|
||||||
"/etc/nix/id_rsa"
|
|
||||||
"/etc/ssh/ssh_host_rsa_key"
|
|
||||||
"/etc/ssh/ssh_host_rsa_key.pub"
|
|
||||||
"/etc/ssh/ssh_host_ed25519_key"
|
|
||||||
"/etc/ssh/ssh_host_ed25519_key.pub"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
secrets.persistentRoot = mkForce "/persist/root/var/lib/kat/secrets";
|
|
||||||
|
|
||||||
home-manager.users.kat = {
|
|
||||||
secrets.persistentRoot = mkForce "/persist/home/.cache/kat/secrets";
|
|
||||||
|
|
||||||
home.persistence."/persist/home" = {
|
|
||||||
allowOther = true;
|
|
||||||
directories = [
|
directories = [
|
||||||
".cache/kat/secrets"
|
"/var/log"
|
||||||
".cache/rbw"
|
"/var/lib/systemd/coredump"
|
||||||
".cache/nix"
|
"/var/lib/acme"
|
||||||
".local/share/z"
|
"/var/lib/yggdrasil"
|
||||||
".local/share/vim"
|
"/var/lib/kat/secrets"
|
||||||
".local/share/nvim"
|
|
||||||
".local/share/task"
|
|
||||||
".local/share/dino"
|
|
||||||
".local/share/weechat"
|
|
||||||
".local/share/Mumble"
|
|
||||||
".local/share/direnv"
|
|
||||||
".config/Mumble"
|
|
||||||
".config/Element"
|
|
||||||
".config/hedgedoc"
|
|
||||||
".ApacheDirectoryStudio"
|
|
||||||
".gnupg"
|
|
||||||
".mozilla"
|
|
||||||
"neorg"
|
|
||||||
"docs"
|
|
||||||
"media"
|
|
||||||
"mail"
|
|
||||||
"projects"
|
|
||||||
"shared"
|
|
||||||
];
|
];
|
||||||
files = [
|
files = [
|
||||||
".ssh/known_hosts"
|
"/etc/machine-id"
|
||||||
".zsh_history"
|
"/etc/nix/id_rsa"
|
||||||
|
"/etc/ssh/ssh_host_rsa_key"
|
||||||
|
"/etc/ssh/ssh_host_rsa_key.pub"
|
||||||
|
"/etc/ssh/ssh_host_ed25519_key"
|
||||||
|
"/etc/ssh/ssh_host_ed25519_key.pub"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [
|
secrets.persistentRoot = mkForce "/persist/root/var/lib/kat/secrets";
|
||||||
{ device = "/dev/disk/by-uuid/89831a0f-93e6-4d30-85e4-09061259f140"; }
|
|
||||||
{ device = "/dev/disk/by-uuid/8f944315-fe1c-4095-90ce-50af03dd5e3f"; }
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.loader = {
|
home-manager.users.kat = {
|
||||||
systemd-boot.enable = true;
|
secrets.persistentRoot = mkForce "/persist/home/.cache/kat/secrets";
|
||||||
efi.canTouchEfiVariables = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
deploy.profile.hardware.acs-override = true;
|
home.persistence."/persist/home" = {
|
||||||
|
allowOther = true;
|
||||||
users.users.kat.extraGroups = singleton "openrazer";
|
directories = [
|
||||||
|
".cache/kat/secrets"
|
||||||
hardware = {
|
".cache/rbw"
|
||||||
displays = {
|
".cache/nix"
|
||||||
"HDMI-A-1" = {
|
".local/share/z"
|
||||||
res = "1920x1080";
|
".local/share/vim"
|
||||||
pos = "0 0";
|
".local/share/nvim"
|
||||||
};
|
".local/share/task"
|
||||||
"DVI-D-1" = {
|
".local/share/dino"
|
||||||
res = "1920x1200";
|
".local/share/weechat"
|
||||||
pos = "1920 0";
|
".local/share/Mumble"
|
||||||
};
|
".local/share/direnv"
|
||||||
"DP-1" = {
|
".config/Mumble"
|
||||||
res = "1920x1080";
|
".config/Element"
|
||||||
pos = "3840 0";
|
".config/hedgedoc"
|
||||||
};
|
".ApacheDirectoryStudio"
|
||||||
};
|
".gnupg"
|
||||||
bamboo.display = "HDMI-A-1";
|
".mozilla"
|
||||||
openrazer.enable = true;
|
"neorg"
|
||||||
};
|
"docs"
|
||||||
|
"media"
|
||||||
environment.systemPackages = [
|
"mail"
|
||||||
pkgs.razergenie
|
"projects"
|
||||||
];
|
"shared"
|
||||||
|
];
|
||||||
boot.modprobe.modules = {
|
files = [
|
||||||
vfio-pci =
|
".ssh/known_hosts"
|
||||||
let
|
".zsh_history"
|
||||||
vfio-pci-ids = [
|
|
||||||
"1002:67df"
|
|
||||||
"1002:aaf0" # RX 580
|
|
||||||
"1912:0014" # Renesas USB 3
|
|
||||||
"1022:149c" # CPU USB 3
|
|
||||||
];
|
];
|
||||||
in
|
|
||||||
mkIf (vfio-pci-ids != [ ]) {
|
|
||||||
options.ids = concatStringsSep "," vfio-pci-ids;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.udev.extraRules = ''
|
swapDevices = [
|
||||||
SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="1532", ATTRS{idProduct}=="0067", GROUP="vfio"
|
{ device = "/dev/disk/by-uuid/89831a0f-93e6-4d30-85e4-09061259f140"; }
|
||||||
SUBSYSTEM=="block", ACTION=="add", ATTRS{model}=="HFS256G32TNF-N3A", ATTRS{wwid}=="t10.ATA HFS256G32TNF-N3A0A MJ8BN15091150BM1Z ", OWNER="kat"
|
{ device = "/dev/disk/by-uuid/8f944315-fe1c-4095-90ce-50af03dd5e3f"; }
|
||||||
'';
|
];
|
||||||
|
|
||||||
networking = {
|
boot.loader = {
|
||||||
hostId = "617050fc";
|
systemd-boot.enable = true;
|
||||||
useDHCP = false;
|
efi.canTouchEfiVariables = true;
|
||||||
/*useNetworkd = true;*/
|
};
|
||||||
interfaces = {
|
|
||||||
enp34s0.ipv4.addresses = singleton {
|
deploy.profile.hardware.acs-override = true;
|
||||||
inherit (config.network.addresses.private.nixos.ipv4) address;
|
|
||||||
prefixLength = 24;
|
users.users.kat.extraGroups = singleton "openrazer";
|
||||||
|
|
||||||
|
hardware = {
|
||||||
|
displays = {
|
||||||
|
"HDMI-A-1" = {
|
||||||
|
res = "1920x1080";
|
||||||
|
pos = "0 0";
|
||||||
|
};
|
||||||
|
"DVI-D-1" = {
|
||||||
|
res = "1920x1200";
|
||||||
|
pos = "1920 0";
|
||||||
|
};
|
||||||
|
"DP-1" = {
|
||||||
|
res = "1920x1080";
|
||||||
|
pos = "3840 0";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
defaultGateway = config.network.privateGateway;
|
bamboo.display = "HDMI-A-1";
|
||||||
firewall.allowPing = true;
|
openrazer.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*systemd.network = {
|
environment.systemPackages = [
|
||||||
networks.enp34s0 = {
|
pkgs.razergenie
|
||||||
matchConfig.Name = "enp34s0";
|
];
|
||||||
bridge = singleton "br";
|
|
||||||
|
boot.modprobe.modules = {
|
||||||
|
vfio-pci =
|
||||||
|
let
|
||||||
|
vfio-pci-ids = [
|
||||||
|
"1002:67df"
|
||||||
|
"1002:aaf0" # RX 580
|
||||||
|
"1912:0014" # Renesas USB 3
|
||||||
|
"1022:149c" # CPU USB 3
|
||||||
|
];
|
||||||
|
in
|
||||||
|
mkIf (vfio-pci-ids != [ ]) {
|
||||||
|
options.ids = concatStringsSep "," vfio-pci-ids;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
networks.br = {
|
|
||||||
matchConfig.Name = "br";
|
services.udev.extraRules = ''
|
||||||
address = singleton "${config.network.addresses.private.nixos.ipv4.address}/24";
|
SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="1532", ATTRS{idProduct}=="0067", GROUP="vfio"
|
||||||
gateway = singleton config.network.privateGateway;
|
SUBSYSTEM=="block", ACTION=="add", ATTRS{model}=="HFS256G32TNF-N3A", ATTRS{wwid}=="t10.ATA HFS256G32TNF-N3A0A MJ8BN15091150BM1Z ", OWNER="kat"
|
||||||
|
'';
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
hostId = "617050fc";
|
||||||
|
useDHCP = false;
|
||||||
|
/*useNetworkd = true;*/
|
||||||
|
interfaces = {
|
||||||
|
enp34s0.ipv4.addresses = singleton {
|
||||||
|
inherit (config.network.addresses.private.nixos.ipv4) address;
|
||||||
|
prefixLength = 24;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
defaultGateway = config.network.privateGateway;
|
||||||
|
firewall.allowPing = true;
|
||||||
};
|
};
|
||||||
netdevs.br = {
|
|
||||||
netdevConfig = {
|
/*systemd.network = {
|
||||||
Name = "br";
|
networks.enp34s0 = {
|
||||||
Kind = "bridge";
|
matchConfig.Name = "enp34s0";
|
||||||
MACAddress = "00:d8:61:c7:f4:9d";
|
bridge = singleton "br";
|
||||||
};
|
};
|
||||||
};
|
networks.br = {
|
||||||
};*/
|
matchConfig.Name = "br";
|
||||||
|
address = singleton "${config.network.addresses.private.nixos.ipv4.address}/24";
|
||||||
|
gateway = singleton config.network.privateGateway;
|
||||||
|
};
|
||||||
|
netdevs.br = {
|
||||||
|
netdevConfig = {
|
||||||
|
Name = "br";
|
||||||
|
Kind = "bridge";
|
||||||
|
MACAddress = "00:d8:61:c7:f4:9d";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};*/
|
||||||
|
|
||||||
services.avahi.enable = true;
|
services.avahi.enable = true;
|
||||||
|
|
||||||
network = {
|
network = {
|
||||||
addresses = {
|
addresses = {
|
||||||
private = {
|
private = {
|
||||||
|
enable = true;
|
||||||
|
nixos = {
|
||||||
|
ipv4.address = "192.168.1.1";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
yggdrasil = {
|
||||||
enable = true;
|
enable = true;
|
||||||
nixos = {
|
pubkey = "a7110d0a1dc9ec963d6eb37bb6922838b8088b53932eae727a9136482ce45d47";
|
||||||
ipv4.address = "192.168.1.1";
|
listen.enable = false;
|
||||||
|
listen.endpoints = [ "tcp://0.0.0.0:0" ];
|
||||||
|
};
|
||||||
|
firewall = {
|
||||||
|
public.interfaces = [ "br" "enp34s0" ];
|
||||||
|
private = {
|
||||||
|
interfaces = singleton "yggdrasil";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
yggdrasil = {
|
|
||||||
enable = true;
|
system.stateVersion = "21.11";
|
||||||
pubkey = "a7110d0a1dc9ec963d6eb37bb6922838b8088b53932eae727a9136482ce45d47";
|
|
||||||
listen.enable = false;
|
|
||||||
listen.endpoints = [ "tcp://0.0.0.0:0" ];
|
|
||||||
};
|
|
||||||
firewall = {
|
|
||||||
public.interfaces = [ "br" "enp34s0" ];
|
|
||||||
private = {
|
|
||||||
interfaces = singleton "yggdrasil";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
system.stateVersion = "21.11";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,11 @@
|
||||||
{ meta, config, pkgs, lib, ... }: with lib; {
|
{ meta, config, pkgs, lib, ... }: with lib; {
|
||||||
options.home-manager.users = let
|
|
||||||
userBase16Extend = { config, nixos, ... }: {
|
|
||||||
base16.alias.default = "atelier.atelier-cave-light";
|
|
||||||
};
|
|
||||||
in mkOption {
|
|
||||||
type = types.attrsOf (types.submoduleWith {
|
|
||||||
modules = singleton userBase16Extend;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
imports = with meta; [
|
imports = with meta; [
|
||||||
profiles.hardware.v330-14arr
|
profiles.hardware.x270
|
||||||
profiles.gui
|
profiles.gui
|
||||||
|
profiles.light
|
||||||
profiles.network
|
profiles.network
|
||||||
users.kat.guiFull
|
users.kat.guiFull
|
||||||
services.nginx
|
services.dnscrypt-proxy
|
||||||
services.restic
|
|
||||||
services.zfs
|
|
||||||
];
|
];
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
|
|
@ -31,41 +20,29 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
boot.supportedFilesystems = singleton "zfs";
|
fileSystems = {
|
||||||
|
"/" = {
|
||||||
fileSystems = {
|
device = "/dev/disk/by-uuid/31bfd91b-bdba-47a9-81bf-c96e0adc88e3";
|
||||||
"/" = {
|
fsType = "xfs";
|
||||||
device = "rpool/safe/root";
|
|
||||||
fsType = "zfs";
|
|
||||||
};
|
|
||||||
"/home" = {
|
|
||||||
device = "rpool/safe/home";
|
|
||||||
fsType = "zfs";
|
|
||||||
};
|
|
||||||
"/nix" = {
|
|
||||||
device = "rpool/local/nix";
|
|
||||||
fsType = "zfs";
|
|
||||||
};
|
|
||||||
"/boot" = {
|
|
||||||
device = "/dev/disk/by-uuid/2552-18F2";
|
|
||||||
fsType = "vfat";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
"/boot" = {
|
||||||
|
device = "/dev/disk/by-uuid/89A2-ED28";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
swapDevices = [{ device = "/dev/disk/by-uuid/87ff4f68-cc00-494e-8eba-050469c3bf03"; }];
|
swapDevices =
|
||||||
|
[ { device = "/dev/disk/by-uuid/96952382-7f56-46b5-8c84-1f0130f68b63"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||||
boot = {
|
boot = {
|
||||||
|
supportedFilesystems = singleton "xfs";
|
||||||
|
initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/8dd300d3-c432-47b6-8466-55682cd1c1a1";
|
||||||
loader = {
|
loader = {
|
||||||
systemd-boot.enable = true;
|
systemd-boot.enable = true;
|
||||||
efi.canTouchEfiVariables = true;
|
efi.canTouchEfiVariables = true;
|
||||||
};
|
};
|
||||||
modprobe.modules = {
|
|
||||||
iwlwifi = {
|
|
||||||
options = {
|
|
||||||
wd_disable = 1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware.displays = {
|
hardware.displays = {
|
||||||
|
|
@ -78,9 +55,13 @@
|
||||||
networking = {
|
networking = {
|
||||||
hostId = "dddbb888";
|
hostId = "dddbb888";
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
wireless.interfaces = singleton "wlp2s0";
|
wireless = {
|
||||||
|
enable = true;
|
||||||
|
userControlled.enable = true;
|
||||||
|
interfaces = singleton "wlp3s0";
|
||||||
|
};
|
||||||
interfaces = {
|
interfaces = {
|
||||||
wlp2s0.ipv4.addresses = singleton {
|
wlp3s0.ipv4.addresses = singleton {
|
||||||
inherit (config.network.addresses.private.nixos.ipv4) address;
|
inherit (config.network.addresses.private.nixos.ipv4) address;
|
||||||
prefixLength = 24;
|
prefixLength = 24;
|
||||||
};
|
};
|
||||||
|
|
@ -104,12 +85,12 @@
|
||||||
listen.endpoints = [ "tcp://0.0.0.0:0" ];
|
listen.endpoints = [ "tcp://0.0.0.0:0" ];
|
||||||
};
|
};
|
||||||
firewall = {
|
firewall = {
|
||||||
public.interfaces = [ "enp1s0" "wlp2s0" ];
|
public.interfaces = [ "enp1s0" "wlp3s0" ];
|
||||||
private.interfaces = singleton "yggdrasil";
|
private.interfaces = singleton "yggdrasil";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
system.stateVersion = "20.09";
|
system.stateVersion = "21.11";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ with lib;
|
||||||
vfio = mkEnableOption "VFIO";
|
vfio = mkEnableOption "VFIO";
|
||||||
shared = mkEnableOption "Shared System";
|
shared = mkEnableOption "Shared System";
|
||||||
trusted = mkEnableOption "Trusted Submodule";
|
trusted = mkEnableOption "Trusted Submodule";
|
||||||
|
light = mkEnableOption "Light mode";
|
||||||
cross = {
|
cross = {
|
||||||
enable = mkEnableOption "cross/emulated compilation";
|
enable = mkEnableOption "cross/emulated compilation";
|
||||||
aarch64 = mkOption {
|
aarch64 = mkOption {
|
||||||
|
|
@ -42,6 +43,7 @@ with lib;
|
||||||
};
|
};
|
||||||
eeepc-1015pem = mkEnableOption "Asus Eee PC 1015PEM";
|
eeepc-1015pem = mkEnableOption "Asus Eee PC 1015PEM";
|
||||||
v330-14arr = mkEnableOption "Lenovo Ideapad v330-14ARR";
|
v330-14arr = mkEnableOption "Lenovo Ideapad v330-14ARR";
|
||||||
|
x270 = mkEnableOption "Lenovo Thinkpad x270";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
home-manager.users = mkOption {
|
home-manager.users = mkOption {
|
||||||
|
|
@ -55,6 +57,7 @@ with lib;
|
||||||
trusted = mkEnableOption "Trusted Submodule" // {
|
trusted = mkEnableOption "Trusted Submodule" // {
|
||||||
default = meta.trusted ? secrets;
|
default = meta.trusted ? secrets;
|
||||||
};
|
};
|
||||||
|
light = mkEnableOption "Light mode";
|
||||||
cross = {
|
cross = {
|
||||||
enable = mkEnableOption "cross/emulated compilation";
|
enable = mkEnableOption "cross/emulated compilation";
|
||||||
aarch64 = mkOption {
|
aarch64 = mkOption {
|
||||||
|
|
@ -88,6 +91,7 @@ with lib;
|
||||||
};
|
};
|
||||||
eeepc-1015pem = mkEnableOption "Asus Eee PC 1015PEM";
|
eeepc-1015pem = mkEnableOption "Asus Eee PC 1015PEM";
|
||||||
v330-14arr = mkEnableOption "Lenovo Ideapad v330-14ARR";
|
v330-14arr = mkEnableOption "Lenovo Ideapad v330-14ARR";
|
||||||
|
x270 = mkEnableOption "Lenovo Thinkpad x270";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = {
|
config = {
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,14 @@
|
||||||
wifi
|
wifi
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
x270 = {
|
||||||
|
imports = [
|
||||||
|
x270
|
||||||
|
intel
|
||||||
|
laptop
|
||||||
|
wifi
|
||||||
|
];
|
||||||
|
};
|
||||||
eeepc-1015pem = {
|
eeepc-1015pem = {
|
||||||
imports = [
|
imports = [
|
||||||
eeepc-1015pem
|
eeepc-1015pem
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,45 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }: with lib; {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
This hardware profile corresponds to any machine which has an AMD Ryzen processor.
|
This hardware profile corresponds to any machine which has an AMD Ryzen processor.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
{
|
options.home-manager.users = let
|
||||||
deploy.profile.hardware.ryzen = true;
|
waybarExtend = { config, ... }: {
|
||||||
|
options = {
|
||||||
boot = {
|
programs.waybar.settings = mkOption {
|
||||||
kernelModules = [
|
type = with types; listOf (submodule waybarExtend2);
|
||||||
"msr"
|
};
|
||||||
"ryzen_smu"
|
};
|
||||||
"kvm-amd"
|
};
|
||||||
];
|
waybarExtend2 = { config, ... }: {
|
||||||
kernelParams = [ "amd_iommu=on" ];
|
config = {
|
||||||
|
modules.temperature.hwmon-path = "/sys/devices/pci0000:00/0000:00:18.3/hwmon/hwmon2/temp2_input";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in mkOption {
|
||||||
|
type = types.attrsOf (types.submoduleWith {
|
||||||
|
modules = singleton waybarExtend;
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware.cpu.amd.updateMicrocode = true;
|
config = {
|
||||||
|
deploy.profile.hardware.ryzen = true;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
boot = {
|
||||||
lm_sensors
|
kernelModules = [
|
||||||
ryzen-smu-monitor_cpu
|
"msr"
|
||||||
ryzen-monitor
|
"ryzen_smu"
|
||||||
];
|
"kvm-amd"
|
||||||
|
];
|
||||||
|
kernelParams = [ "amd_iommu=on" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.cpu.amd.updateMicrocode = true;
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
lm_sensors
|
||||||
|
ryzen-smu-monitor_cpu
|
||||||
|
ryzen-monitor
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
45
config/profiles/hardware/x270.nix
Normal file
45
config/profiles/hardware/x270.nix
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
{ config, lib, ... }: with lib;
|
||||||
|
|
||||||
|
/*
|
||||||
|
This hardware profile corresponds to the Lenovo Thinkpad x270.
|
||||||
|
*/
|
||||||
|
|
||||||
|
{
|
||||||
|
options.home-manager.users = let
|
||||||
|
userTouchpadExtend = { config, nixos, ... }: {
|
||||||
|
wayland.windowManager.sway.config.input."2:7:SynPS/2_Synaptics_TouchPad" = {
|
||||||
|
dwt = "enabled";
|
||||||
|
tap = "enabled";
|
||||||
|
natural_scroll = "enabled";
|
||||||
|
middle_emulation = "enabled";
|
||||||
|
click_method = "clickfinger";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
waybarExtend = { config, ... }: {
|
||||||
|
options = {
|
||||||
|
programs.waybar.settings = mkOption {
|
||||||
|
type = with types; listOf (submodule waybarExtend2);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
waybarExtend2 = { config, ... }: {
|
||||||
|
config = {
|
||||||
|
modules.temperature.hwmon-path = "/sys/devices/pci0000:00/0000:00:18.3/hwmon/hwmon2/temp2_input";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in mkOption {
|
||||||
|
type = types.attrsOf (types.submoduleWith {
|
||||||
|
modules = [ userTouchpadExtend waybarExtend ];
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
deploy.profile.hardware.x270 = true;
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
initrd.availableKernelModules =
|
||||||
|
[ "xhci_pci" "nvme" "usb_storage" "sd_mod" "sr_mod" "rtsx_usb_sdmmc" ];
|
||||||
|
kernelModules = [ "kvm-intel" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
19
config/profiles/light.nix
Normal file
19
config/profiles/light.nix
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
{ config, lib, ... }: with lib; {
|
||||||
|
options.home-manager.users = let
|
||||||
|
lightModeExtend = { config, nixos, ... }: {
|
||||||
|
gtk.iconTheme.name = mkForce "Papirus-Light";
|
||||||
|
base16 = {
|
||||||
|
alias.default = "atelier.atelier-cave-light";
|
||||||
|
defaultSchemeName = "atelier.atelier-cave-light";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in mkOption {
|
||||||
|
type = types.attrsOf (types.submoduleWith {
|
||||||
|
modules = singleton lightModeExtend;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
deploy.profile.light = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -15,7 +15,7 @@ let
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
optionalAttrs (builtins.getEnv "CI_PLATFORM" == "") {
|
optionalAttrs (builtins.getEnv "CI_PLATFORM" == "impure") {
|
||||||
home.packages = [ doom-emacs pkgs.sqlite ];
|
home.packages = [ doom-emacs pkgs.sqlite ];
|
||||||
|
|
||||||
home.file.".emacs.d/init.el".text = ''
|
home.file.".emacs.d/init.el".text = ''
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,8 @@
|
||||||
gtk = {
|
gtk = {
|
||||||
enable = true;
|
enable = true;
|
||||||
iconTheme = {
|
iconTheme = {
|
||||||
name = "Numix-Square";
|
name = "Papirus-Dark";
|
||||||
package = pkgs.numix-icon-theme-square;
|
package = pkgs.papirus-icon-theme;
|
||||||
};
|
};
|
||||||
theme = {
|
theme = {
|
||||||
name = "Adementary-dark";
|
name = "Adementary-dark";
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
{
|
{
|
||||||
services.gammastep = {
|
services.gammastep = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
tray = true;
|
||||||
latitude = "51.5074";
|
latitude = "51.5074";
|
||||||
longitude = "0.1278";
|
longitude = "0.1278";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -90,7 +90,8 @@ let lockCommand = config.programs.swaylock.script; in
|
||||||
"Escape" = "mode default";
|
"Escape" = "mode default";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
bars = [{ command = "${pkgs.waybar}/bin/waybar"; }];
|
# bars = [{ command = "${pkgs.waybar}/bin/waybar"; }];
|
||||||
|
bars = [];
|
||||||
|
|
||||||
input = {
|
input = {
|
||||||
"*" = {
|
"*" = {
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,24 @@
|
||||||
{ config, lib, pkgs, kw, ... }:
|
{ config, lib, pkgs, kw, ... }: with lib;
|
||||||
|
|
||||||
{
|
{
|
||||||
xdg.configFile."waybar/style.css" = { inherit (kw.sassTemplate { name = "waybar-style"; src = ./waybar.sass; }) source; };
|
xdg.configFile."waybar/style.css" = { inherit (kw.sassTemplate { name = "waybar-style"; src = ./waybar.sass; }) source; };
|
||||||
|
|
||||||
|
systemd.user.services.waybar.Service.Environment = singleton "NOTMUCH_CONFIG=${config.home.sessionVariables.NOTMUCH_CONFIG}";
|
||||||
|
|
||||||
programs.waybar = {
|
programs.waybar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
systemd.enable = true;
|
||||||
settings = [{
|
settings = [{
|
||||||
modules-left = [ "sway/workspaces" "sway/mode" "sway/window" ];
|
modules-left = [ "sway/workspaces" "sway/mode" "sway/window" ];
|
||||||
modules-center = [ "clock" "clock#s" "clock#arc" "clock#miku" "clock#hex" ];
|
modules-center = [ "clock" "clock#s" "clock#arc" "clock#miku" "clock#hex" ];
|
||||||
modules-right = [
|
modules-right = [
|
||||||
"pulseaudio"
|
"pulseaudio"
|
||||||
|
"custom/mail"
|
||||||
"cpu"
|
"cpu"
|
||||||
"memory"
|
"memory"
|
||||||
"temperature"
|
"temperature"
|
||||||
"battery"
|
"battery"
|
||||||
|
"backlight"
|
||||||
"network"
|
"network"
|
||||||
"idle_inhibitor"
|
"idle_inhibitor"
|
||||||
"custom/konawall"
|
"custom/konawall"
|
||||||
|
|
@ -30,6 +35,10 @@
|
||||||
icon-size = 12;
|
icon-size = 12;
|
||||||
spacing = 2;
|
spacing = 2;
|
||||||
};
|
};
|
||||||
|
backlight = {
|
||||||
|
format = "{icon} {percent}%";
|
||||||
|
format-icons = ["" ""];
|
||||||
|
};
|
||||||
"custom/gpg-status" = {
|
"custom/gpg-status" = {
|
||||||
format = "{}";
|
format = "{}";
|
||||||
interval = 300;
|
interval = 300;
|
||||||
|
|
@ -41,20 +50,26 @@
|
||||||
interval = "once";
|
interval = "once";
|
||||||
return-type = "json";
|
return-type = "json";
|
||||||
exec = "${pkgs.waybar-konawall}/bin/konawall-status";
|
exec = "${pkgs.waybar-konawall}/bin/konawall-status";
|
||||||
exec-on-event = true;
|
|
||||||
on-click = "${pkgs.waybar-konawall}/bin/konawall-toggle";
|
on-click = "${pkgs.waybar-konawall}/bin/konawall-toggle";
|
||||||
on-click-right = "systemctl --user restart konawall";
|
on-click-right = "systemctl --user restart konawall";
|
||||||
|
signal = 8;
|
||||||
|
};
|
||||||
|
"custom/mail" = {
|
||||||
|
format = " {}";
|
||||||
|
interval = 30;
|
||||||
|
exec = "${pkgs.notmuch-arc}/bin/notmuch count tag:flagged OR tag:inbox AND NOT tag:killed";
|
||||||
};
|
};
|
||||||
cpu = { format = " {usage}%"; };
|
cpu = { format = " {usage}%"; };
|
||||||
memory = { format = " {percentage}%"; };
|
memory = { format = " {percentage}%"; };
|
||||||
temperature = {
|
temperature = {
|
||||||
format = " {temperatureC}°C";
|
format = "{icon} {temperatureC}°C";
|
||||||
hwmon-path = "/sys/devices/pci0000:00/0000:00:18.3/hwmon/hwmon2/temp2_input";
|
format-icons = ["" "" ""];
|
||||||
|
critical-threshold = 80;
|
||||||
};
|
};
|
||||||
idle_inhibitor = {
|
idle_inhibitor = {
|
||||||
format = "{icon}";
|
format = "{icon}";
|
||||||
format-icons = {
|
format-icons = {
|
||||||
activated = "";
|
activated = "";
|
||||||
deactivated = "";
|
deactivated = "";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -65,8 +80,8 @@
|
||||||
critical = 15;
|
critical = 15;
|
||||||
};
|
};
|
||||||
format = "{icon} {capacity}%";
|
format = "{icon} {capacity}%";
|
||||||
format-charging = " {capacity}%";
|
format-charging = " {capacity}%";
|
||||||
format-plugged = " {capacity}%";
|
format-plugged = " {capacity}%";
|
||||||
format-alt = "{icon} {time}";
|
format-alt = "{icon} {time}";
|
||||||
format-icons = [ "" "" "" "" "" ];
|
format-icons = [ "" "" "" "" "" ];
|
||||||
};
|
};
|
||||||
|
|
@ -96,9 +111,6 @@
|
||||||
tooltip-format = "{:%A, %F %T %z (%Z)}";
|
tooltip-format = "{:%A, %F %T %z (%Z)}";
|
||||||
timezones = [
|
timezones = [
|
||||||
"Europe/London"
|
"Europe/London"
|
||||||
"America/Vancouver"
|
|
||||||
"Europe/Berlin"
|
|
||||||
"Pacific/Auckland"
|
|
||||||
];
|
];
|
||||||
interval = 1;
|
interval = 1;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,12 @@
|
||||||
text-shadow: none
|
text-shadow: none
|
||||||
box-shadow: none
|
box-shadow: none
|
||||||
|
|
||||||
|
tooltip
|
||||||
|
background: $base00t
|
||||||
|
border-radius: 1em
|
||||||
|
label
|
||||||
|
color: $base07
|
||||||
|
|
||||||
#mode
|
#mode
|
||||||
color: $base06
|
color: $base06
|
||||||
padding: 0 4px
|
padding: 0 4px
|
||||||
|
|
@ -66,9 +72,9 @@
|
||||||
@extend %extend_1
|
@extend %extend_1
|
||||||
background: $base0Ct
|
background: $base0Ct
|
||||||
|
|
||||||
#custom-weather
|
#custom-mail
|
||||||
@extend %extend_1
|
@extend %extend_1
|
||||||
background: $base00t
|
background: $base0Ft
|
||||||
|
|
||||||
#custom-konawall
|
#custom-konawall
|
||||||
@extend %extend_1
|
@extend %extend_1
|
||||||
|
|
@ -103,6 +109,8 @@
|
||||||
menu
|
menu
|
||||||
background: $base00t
|
background: $base00t
|
||||||
border-radius: 1em
|
border-radius: 1em
|
||||||
|
color: $base07
|
||||||
|
|
||||||
|
|
||||||
.modules-left
|
.modules-left
|
||||||
margin: 2px 4px
|
margin: 2px 4px
|
||||||
|
|
@ -173,11 +181,5 @@
|
||||||
color: $base06
|
color: $base06
|
||||||
border-bottom: 2px solid transparent
|
border-bottom: 2px solid transparent
|
||||||
|
|
||||||
tooltip
|
|
||||||
background: $base00t
|
|
||||||
border-radius: 1em
|
|
||||||
label
|
|
||||||
color: $base07
|
|
||||||
|
|
||||||
window#waybar.empty #window
|
window#waybar.empty #window
|
||||||
opacity: 0
|
opacity: 0
|
||||||
|
|
|
||||||
|
|
@ -41,10 +41,10 @@
|
||||||
"homepage": "",
|
"homepage": "",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "emacs-overlay",
|
"repo": "emacs-overlay",
|
||||||
"rev": "aa581fc7bce89b3abc60124de8dcc3b7c7a9277c",
|
"rev": "5fa26165cf34adbe693b159093ea15f24f7f7ea4",
|
||||||
"sha256": "160v5hsswcvyai1hc6r0gs00z9gm30qgqlgy0sk1x8iwcqslx3wz",
|
"sha256": "137a51jmk2h9mrp959ds6n1gdgg7wmvwhjxjjd6njcs40k38rshj",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://github.com/nix-community/emacs-overlay/archive/aa581fc7bce89b3abc60124de8dcc3b7c7a9277c.tar.gz",
|
"url": "https://github.com/nix-community/emacs-overlay/archive/5fa26165cf34adbe693b159093ea15f24f7f7ea4.tar.gz",
|
||||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||||
},
|
},
|
||||||
"hexchen": {
|
"hexchen": {
|
||||||
|
|
@ -89,10 +89,10 @@
|
||||||
"homepage": null,
|
"homepage": null,
|
||||||
"owner": "kittywitch",
|
"owner": "kittywitch",
|
||||||
"repo": "nixexprs",
|
"repo": "nixexprs",
|
||||||
"rev": "33418f835c61697569feb9d8753134f7c4143d5a",
|
"rev": "fc6a343976f4afa61850484ac2ace2202f7b9576",
|
||||||
"sha256": "023wma4xv5pshjfdvv9r67nbzwryh0m38vprnnf7ikl1g29a53wi",
|
"sha256": "0f1p8yqgbbp5jjkmsa1jbk78p1kr4x6slcx8bmzya65kcw9n2ajx",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://github.com/kittywitch/nixexprs/archive/33418f835c61697569feb9d8753134f7c4143d5a.tar.gz",
|
"url": "https://github.com/kittywitch/nixexprs/archive/fc6a343976f4afa61850484ac2ace2202f7b9576.tar.gz",
|
||||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||||
},
|
},
|
||||||
"niv": {
|
"niv": {
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit 33418f835c61697569feb9d8753134f7c4143d5a
|
Subproject commit fc6a343976f4afa61850484ac2ace2202f7b9576
|
||||||
Loading…
Add table
Add a link
Reference in a new issue