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.
164 lines
4.9 KiB
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.";
|
|
}
|
|
|