My personal project and infrastructure archive
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
nomicon/infra/libkookie/roots/uwu.nix

164 lines
4.9 KiB

/* TOP LEVEL DEVICE CONFIGURATION FOR
*
* uwu (Thinkpad X230)
*
* This file only contains settings that are specific to this one
* device (hardware and things outside of nix, like partitions).
*
* This file is part of LIBKOOKIE, a collection of nix expressions.
* LIBKOOKIE is licensed under the GPL-3.0 (or later) -- see LICENSE
*/
{ lib, config, pkgs, ... } @ args:
let klib = (import <modules/harness/lib.nix> args);
in
{
###################################################################
# libkookie configuration
#
#
#
imports = with klib; [
# Load base modules required to bootstrap libkookie
<home-manager/nixos> <modules> <configuration/nix>
#################################################################
# Modules that require NixOS integration
#
<configuration/workstation/fonts>
<configuration/workstation/printing>
<configuration/workstation/xkblayout>
<configuration/workstation/yubikey>
<configuration/workstation/gpg>
# TODO: build a beter loader
<configuration/workstation/net/uwu.nix>
<configuration/workstation/time/local.nix>
#################################################################
# home-manager modules that exist entirely in userspace
#
(loadModule <configuration/base> "default")
# Set of base tools and system settings
(loadModule <configuration/workstation/audio> "default")
(loadModule <configuration/workstation/firefox> "default")
(loadModule <configuration/workstation/i3> "uwu")
(loadModule <configuration/workstation/kitty> "uwu")
(loadModule <configuration/workstation/mail> "default")
(loadModule <configuration/workstation/office> "default")
(loadModule <configuration/workstation/redshift> "default")
(loadModule <configuration/workstation/screenmsg> "default")
(loadModule <configuration/workstation/syncthing> "default")
(loadModule <configuration/workstation/devel> "default")
# Various other graphical tools
(loadModule <configuration/workstation/chat> "default")
(loadModule <configuration/workstation/creative> "default")
(loadModule <configuration/workstation/games> "default")
(loadModule <configuration/workstation/music> "default")
(loadModule <configuration/workstation/pass> "default")
];
# Configure i3 with the amdgpu driver
libkookie.ui.i3 = { enable = true; videoDrivers = [ "intel" ]; };
# Configure audio
libkookie.audio = { enable = true; discovery = true; };
# Enable fish shell handling on the system
libkookie.base.fish.enable = true;
# Configure mail handling
libkookie.workstation.mail = {
enable = true;
configPath = ../ext/mail;
mailArchive = "/home/office/mail";
access = { user = "spacekookie"; group = "spacekookie"; };
};
# Enable desired users
libkookie.activeUsers = [ (klib.load <configuration/users/spacekookie>) ];
#
#
#
#
###################################################################
###################################################################
# nixos base system options
#
#
#
boot.kernelModules = [ "kvm-intel" ];
boot.initrd.availableKernelModules =
[ "xhci_pci" "ehci_pci" "ahci" "sd_mod" "sdhci_pci" "i915" ];
hardware.enableRedistributableFirmware = true;
boot.loader.grub = {
copyKernels = true;
device = "/dev/disk/by-id/wwn-0x5002538f7080fa2a";
zfsSupport = true;
enableCryptodisk = true;
splashImage = ../configuration/grub-splash.png;
gfxmodeBios = "1366x768";
extraConfig = ''
GRUB_TIMEOUT=10
'';
};
boot.extraModprobeConfig = "options kvm_item nested=1";
boot.zfs.devNodes = "/dev"; # FIXME: Why do I set this?
boot.cleanTmpDir = true;
boot.tmpOnTmpfs = true;
boot.supportedFilesystems = [ "zfs" "exfat" ];
services.zfs.autoSnapshot.enable = true;
fileSystems."/" = {
device = "zroot";
fsType = "zfs";
encrypted = {
enable = true;
label = "lvm";
blkDev = "/dev/disk/by-uuid/f1440abd-99e3-46a8-aa36-7824972fee54";
};
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/672c497c-18aa-4b00-ac95-78e810363d81";
fsType = "ext3";
};
swapDevices = [
{ device = "/dev/disk/by-uuid/bd3d5c22-eed0-4371-ae25-456b8dfe9356"; }
];
nix.maxJobs = lib.mkDefault 4;
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
# owo
networking.wireguard.interfaces."intranet" = {
ips = [ "10.13.12.3" ];
privateKeyFile = "/var/lib/wg/private";
peers = [
{ publicKey = "ugHG/NOqM/9hde9EmWpu7XsCpjT3WQbjLK99IGHtdjQ=";
allowedIPs = [ "10.13.12.0/24" "10.172.171.0/24" ];
endpoint = "hyperion.kookie.space:51820";
persistentKeepalive = 25; }
];
};
system.stateVersion = "19.03";
users.users.spacekookie.hashedPassword = "$6$rounds=1000000$22ypycQ2AlCCv8iC$RrzyAbCX3D518nCgfR3MTqZhfK.GAclme7EQlKTlqH4oV1YvGd/aHdTfe59iMpf/J18tqEO2aSXsevTVQz2yW.";
}