diff options
29 files changed, 701 insertions, 528 deletions
diff --git a/asset/dir_colors b/asset/dir_colors deleted file mode 100644 index bbe79d9..0000000 --- a/asset/dir_colors +++ /dev/null @@ -1,218 +0,0 @@ -# Configuration file for dircolors, a utility to help you set the -# LS_COLORS environment variable used by GNU ls with the --color option. -# Copyright (C) 1996-2015 Free Software Foundation, Inc. -# Copying and distribution of this file, with or without modification, -# are permitted provided the copyright notice and this notice are preserved. -# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the -# slackware version of dircolors) are recognized but ignored. -# Below, there should be one TERM entry for each termtype that is colorizable -TERM Eterm -TERM ansi -TERM color-xterm -TERM con132x25 -TERM con132x30 -TERM con132x43 -TERM con132x60 -TERM con80x25 -TERM con80x28 -TERM con80x30 -TERM con80x43 -TERM con80x50 -TERM con80x60 -TERM cons25 -TERM console -TERM cygwin -TERM dtterm -TERM eterm-color -TERM gnome -TERM gnome-256color -TERM hurd -TERM jfbterm -TERM konsole -TERM kterm -TERM linux -TERM linux-c -TERM mach-color -TERM mach-gnu-color -TERM mlterm -TERM putty -TERM putty-256color -TERM rxvt -TERM rxvt-256color -TERM rxvt-cygwin -TERM rxvt-cygwin-native -TERM rxvt-unicode -TERM rxvt-unicode-256color -TERM rxvt-unicode256 -TERM screen -TERM screen-256color -TERM screen-256color-bce -TERM screen-bce -TERM screen-w -TERM screen.Eterm -TERM screen.rxvt -TERM screen.linux -TERM st -TERM st-256color -TERM terminator -TERM vt100 -TERM xterm -TERM xterm-16color -TERM xterm-256color -TERM xterm-88color -TERM xterm-color -TERM xterm-debian -TERM xterm-termite -TERM xterm-kitty -# Below are the color init strings for the basic file types. A color init -# string consists of one or more of the following numeric codes: -# Attribute codes: -# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed -# Text color codes: -# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white -# Background color codes: -# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white -#NORMAL 00 # no color code at all -#FILE 00 # regular file: use no color at all -RESET 0 # reset to "normal" color -DIR 00;32 # directory -LINK 01;36 # symbolic link. (If you set this to 'target' instead of a - # numerical value, the color is as for the file pointed to.) -MULTIHARDLINK 00 # regular file with more than one link -FIFO 40;33 # pipe -SOCK 01;35 # socket -DOOR 01;35 # door -BLK 40;33;01 # block device driver -CHR 40;33;01 # character device driver -ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file ... -MISSING 00 # ... and the files they point to -SETUID 37;41 # file that is setuid (u+s) -SETGID 30;43 # file that is setgid (g+s) -CAPABILITY 30;41 # file with capability -STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w) -OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky -STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable -# This is for files with execute permission: -EXEC 01;32 -# List any file extensions like '.gz' or '.tar' that you would like ls -# to colorize below. Put the extension, a space, and the color init string. -# (and any comments you want to add after a '#') -# If you use DOS-style suffixes, you may want to uncomment the following: -#.cmd 01;32 # executables (bright green) -#.exe 01;32 -#.com 01;32 -#.btm 01;32 -#.bat 01;32 -# Or if you want to colorize scripts even if they do not have the -# executable bit actually set. -#.sh 01;32 -#.csh 01;32 - # archives or compressed (bright red) -.tar 01;31 -.tgz 01;31 -.arc 01;31 -.arj 01;31 -.taz 01;31 -.lha 01;31 -.lz4 01;31 -.lzh 01;31 -.lzma 01;31 -.tlz 01;31 -.txz 01;31 -.tzo 01;31 -.t7z 01;31 -.zip 01;31 -.z 01;31 -.Z 01;31 -.dz 01;31 -.gz 01;31 -.lrz 01;31 -.lz 01;31 -.lzo 01;31 -.xz 01;31 -.bz2 01;31 -.bz 01;31 -.tbz 01;31 -.tbz2 01;31 -.tz 01;31 -.deb 01;31 -.rpm 01;31 -.jar 01;31 -.war 01;31 -.ear 01;31 -.sar 01;31 -.rar 01;31 -.alz 01;31 -.ace 01;31 -.zoo 01;31 -.cpio 01;31 -.7z 01;31 -.rz 01;31 -.cab 01;31 -# image formats -.jpg 01;35 -.jpeg 01;35 -.gif 01;35 -.bmp 01;35 -.pbm 01;35 -.pgm 01;35 -.ppm 01;35 -.tga 01;35 -.xbm 01;35 -.xpm 01;35 -.tif 01;35 -.tiff 01;35 -.png 01;35 -.svg 01;35 -.svgz 01;35 -.mng 01;35 -.pcx 01;35 -.mov 01;35 -.mpg 01;35 -.mpeg 01;35 -.m2v 01;35 -.mkv 01;35 -.webm 01;35 -.ogm 01;35 -.mp4 01;35 -.m4v 01;35 -.mp4v 01;35 -.vob 01;35 -.qt 01;35 -.nuv 01;35 -.wmv 01;35 -.asf 01;35 -.rm 01;35 -.rmvb 01;35 -.flc 01;35 -.avi 01;35 -.fli 01;35 -.flv 01;35 -.gl 01;35 -.dl 01;35 -.xcf 01;35 -.xwd 01;35 -.yuv 01;35 -.cgm 01;35 -.emf 01;35 -# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions -.ogv 01;35 -.ogx 01;35 -# audio formats -.aac 00;36 -.au 00;36 -.flac 00;36 -.m4a 00;36 -.mid 00;36 -.midi 00;36 -.mka 00;36 -.mp3 00;36 -.mpc 00;36 -.ogg 00;36 -.ra 00;36 -.wav 00;36 -# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions -.oga 00;36 -.opus 00;36 -.spx 00;36 -.xspf 00;36 diff --git a/configuration.nix b/configuration.nix index 920bf70..538745d 100644 --- a/configuration.nix +++ b/configuration.nix @@ -1,29 +1,44 @@ -{ config, pkgs, ... }: - +{ config, pkgs, pkgs-personal, hostname, ... }: { - system.stateVersion = "18.09"; - imports = [ - ./fish.nix - ./host/current.nix ./user/common.nix + (./host + ("/" + hostname + ".nix")) ]; + console.keyMap = "de"; + i18n = { - consoleKeyMap = "de"; defaultLocale = "en_US.UTF-8"; + supportedLocales = [ + "en_US.UTF-8/UTF-8" + "de_DE.UTF-8/UTF-8" + ]; }; time.timeZone = "Europe/Berlin"; nixpkgs.config.allowUnfree = true; + nix = { + package = pkgs.nixUnstable; + + settings = { + allowed-users = [ "common" ]; + trusted-users = [ "root" "common" ]; + }; + + extraOptions = '' + experimental-features = nix-command flakes + ''; + }; + networking.nameservers = [ "1.1.1.1" "2606:4700:4700::1111" ]; programs = { + fish.enable = true; bash.enableCompletion = true; gnupg.agent = { enable = true; @@ -33,22 +48,22 @@ services.openssh = { enable = true; - passwordAuthentication = false; - permitRootLogin = "no"; + settings = { + PasswordAuthentication = false; + PermitRootLogin = "no"; + X11Forwarding = true; + }; }; environment = { - systemPackages = let - # use latest nvim - nixpkgs-unstable = import <nixpkgs-unstable> { }; - mypkgs = import <mypkgs> { pkgs = nixpkgs-unstable; }; - in [ - pkgs.psmisc - pkgs.htop - pkgs.git - pkgs.silver-searcher - pkgs.renameutils - mypkgs.custom-neovim + systemPackages = with pkgs; [ + psmisc + htop + git + p7zip + silver-searcher + renameutils + pkgs-personal.custom-neovim ]; variables = { diff --git a/fish.nix b/fish.nix deleted file mode 100644 index d1e46c9..0000000 --- a/fish.nix +++ /dev/null @@ -1,76 +0,0 @@ -{ pkgs, ... }: - -{ - programs.fish = { - enable = true; - - shellInit = '' - set fish_greeting "" - ''; - - interactiveShellInit = '' - eval (dircolors -c ${./asset/dir_colors}) - - set fish_color_normal white - set fish_color_command magenta --bold - set fish_color_param green - set fish_color_error brred - set fish_color_operator cyan - set fish_color_comment white - set fish_color_cwd green - set fish_color_quote brown - set fish_color_autosuggestion 555 - set fish_color_redirection white - ''; - - promptInit = '' - function fish_prompt - set last_status $status - - if not set -q __fish_prompt_normal - set -g __fish_prompt_normal (set_color normal) - end - - switch $USER - case root - if not set -q __fish_prompt_cwd - if set -q fish_color_cwd_root - set -g __fish_prompt_cwd (set_color $fish_color_cwd_root) - else - set -g __fish_prompt_cwd (set_color $fish_color_cwd) - end - end - - case '*' - if not set -q __fish_prompt_cwd - set -g __fish_prompt_cwd (set_color $fish_color_cwd) - end - end - - echo -n -s 'λ ' "$__fish_prompt_cwd" (prompt_pwd) "$__fish_prompt_normal" - - if test $IN_NIX_SHELL - if test $NIX_SHELL_NAME - echo -n -s ' (' $NIX_SHELL_NAME ')' - else - echo -n -s ' (nix-shell)' - end - end - - if test $last_status -gt 0 - set_color $fish_color_cwd_root - echo -n -s ' ● ' - set_color normal - else - echo -n -s ' ● ' - end - end - - function fish_right_prompt - set_color $fish_color_autosuggestion - date '+%H:%M:%S' - set_color normal - end - ''; - }; -} diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..30935f7 --- /dev/null +++ b/flake.lock @@ -0,0 +1,63 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1701952659, + "narHash": "sha256-TJv2srXt6fYPUjxgLAL0cy4nuf1OZD4KuA1TrCiQqg0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "b4372c4924d9182034066c823df76d6eaf1f4ec4", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1629271619, + "narHash": "sha256-by9D3OkEKk4rOzJIMbC0uP2wP3Bt81auP5xmbmPg2a8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "7bbca9877caed472c6b5866ea09302cfcdce3dbf", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-21.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "pkgs-personal": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1629367653, + "narHash": "sha256-TYovgHylzgcVC7M714mPVdCCsnHV9Uh2DiLWhi/KWe8=", + "owner": "KnairdA", + "repo": "pkgs", + "rev": "5e27bc6838920fe2948bc0953a519232bced0397", + "type": "github" + }, + "original": { + "owner": "KnairdA", + "ref": "master", + "repo": "pkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs", + "pkgs-personal": "pkgs-personal" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..15d4326 --- /dev/null +++ b/flake.nix @@ -0,0 +1,31 @@ +{ + description = "System environment of Adrian Kummerlaender"; + + inputs = { + nixpkgs.url = github:NixOS/nixpkgs/nixos-23.11; + pkgs-personal.url = github:KnairdA/pkgs/master; + }; + + outputs = { self, nixpkgs, pkgs-personal, ... }: let + config = hostname: nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { + inherit pkgs-personal; + inherit hostname; + }; + modules = [ ./configuration.nix ]; + }; + + hostnames = builtins.map + (h: builtins.replaceStrings [ ".nix" ] [ "" ] h) + (builtins.filter + (h: h != "") + (nixpkgs.lib.mapAttrsToList + (name: type: if type == "regular" then name else "") + (builtins.readDir ./host))); + + in { + nixosConfigurations = builtins.listToAttrs + (map (h: { name = h; value = config h; }) hostnames); + }; +} diff --git a/host/asterix.nix b/host/asterix.nix index 75b23b0..6909832 100644 --- a/host/asterix.nix +++ b/host/asterix.nix @@ -52,4 +52,6 @@ }; powerManagement.powertop.enable = true; + + system.stateVersion = "18.09"; } diff --git a/host/athena.nix b/host/athena.nix index c37318f..6a7d266 100644 --- a/host/athena.nix +++ b/host/athena.nix @@ -4,6 +4,7 @@ imports = [ ./hardware/athena.nix ./software/desktop + ./software/desktop/xterm.nix ]; boot = { @@ -12,12 +13,13 @@ efi.canTouchEfiVariables = true; }; - initrd.luks.devices = [ { - name = "encrypted"; - device = "/dev/nvme0n1p2"; - preLVM = true; - allowDiscards = true; - } ]; + initrd.luks.devices = { + encrypted = { + device = "/dev/nvme0n1p2"; + preLVM = true; + allowDiscards = true; + }; + }; }; networking = { @@ -51,7 +53,7 @@ acpid.enable = true; xserver = { - videoDrivers = [ "intel" ]; + videoDrivers = [ "nvidia" ]; synaptics = { enable = true; @@ -61,9 +63,49 @@ minSpeed = "1.5"; }; }; + + printing = { + enable = true; + drivers = [ pkgs.hplip ]; + }; + + avahi = { + enable = true; + nssmdns = true; + }; + }; + + hardware.nvidia = { + package = pkgs.linuxPackages.nvidia_x11; + prime = { + offload.enable = true; + + intelBusId = "PCI:0:2:0"; + nvidiaBusId = "PCI:1:0:0"; + }; + powerManagement.enable = true; }; - virtualisation.libvirtd.enable = true; + environment.systemPackages = [ + pkgs.zenith-nvidia + pkgs.virt-manager + (pkgs.writeScriptBin "nvidia-offload" '' + export __NV_PRIME_RENDER_OFFLOAD=1 + export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0 + export __GLX_VENDOR_LIBRARY_NAME=nvidia + export __VK_LAYER_NV_optimus=NVIDIA_only + exec -a "$0" "$@" + '') + ]; + + virtualisation = { + libvirtd.enable = true; + docker = { + enable = true; + enableNvidia = true; + }; + }; + users.users.common.extraGroups = [ "docker" ]; hardware.trackpoint = { enable = true; @@ -73,22 +115,18 @@ hardware.bluetooth.enable = true; - hardware.opengl.extraPackages = [ pkgs.intel-ocl ]; - services.tlp = { enable = true; - extraConfig = '' - RESTORE_DEVICE_STATE_ON_STARTUP=1 - DEVICES_TO_DISABLE_ON_STARTUP="wwan" - ''; + settings = { + RESTORE_DEVICE_STATE_ON_STARTUP = 1; + START_CHARGE_THRESH_BAT0 = 75; + STOP_CHARGE_THRESH_BAT0 = 85; + CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; + ENERGY_PERF_POLICY_ON_BAT = "powersave"; + }; }; powerManagement.powertop.enable = true; - i18n = { - consoleFont = "ter-132n"; - consolePackages = [ pkgs.terminus_font ]; - }; - - boot.earlyVconsoleSetup = true; + system.stateVersion = "21.11"; } diff --git a/host/atlas.nix b/host/atlas.nix new file mode 100644 index 0000000..4611ed7 --- /dev/null +++ b/host/atlas.nix @@ -0,0 +1,89 @@ +{ pkgs, ... }: + +{ + imports = [ + ./hardware/atlas.nix + ./software/desktop + ./software/desktop/xterm.nix + ]; + + networking = { + hostName = "atlas"; + networkmanager.enable = true; + }; + + services.xserver = { + videoDrivers = [ "nvidia" ]; + }; + + hardware.nvidia.package = pkgs.linuxPackages.nvidia_x11; + + environment.systemPackages = with pkgs; [ + nvtop + ]; + + virtualisation.docker = { + enable = true; + enableNvidia = true; + autoPrune = { + enable = true; + dates = "daily"; + }; + }; + users.users.common.extraGroups = [ "docker" ]; + + networking.wireguard.interfaces = { + wg0 = { + ips = [ "10.100.0.3/24" ]; + + privateKeyFile = "/etc/wireguard/private"; + + peers = [ + { # automatix + publicKey = "B0tkjq+5SfECKx1gWEP5JVWOIaRWL2JNE7iSpMmN4F0="; + allowedIPs = [ "10.100.0.0/24" ]; + endpoint = "kummerlaender.eu:54321"; + persistentKeepalive = 10; + } + ]; + }; + }; + + networking.firewall = { + enable = true; + interfaces."wg0".allowedTCPPorts = [ 5900 8080 8888 ]; + }; + + services.printing = { + enable = true; + drivers = [ pkgs.hplip ]; + }; + + services.gitlab-runner = { + enable = true; + services = { + openlb-ci = { + executor = "shell"; + registrationConfigFile = "/etc/gitlab-runner.conf"; + tagList = [ "nix" "has-gpu" ]; + limit = 1; + }; + openlb-ci-extra = { + executor = "shell"; + registrationConfigFile = "/etc/gitlab-runner.conf"; + tagList = [ "nix" "gcc" "clang" "mpi" "cuda" "has-flake" ]; + limit = 4; + }; + }; + }; + + systemd.services.gitlab-runner.serviceConfig = { + CPUQuota = "400%"; + MemoryHigh = "8G"; + }; + + users.users.gitlab-runner.isNormalUser = true; + nix.settings.allowed-users = [ "gitlab-runner" ]; + + system.stateVersion = "23.11"; +} diff --git a/host/automatix.nix b/host/automatix.nix index d95f12e..7c6edd0 100644 --- a/host/automatix.nix +++ b/host/automatix.nix @@ -12,10 +12,11 @@ boot.loader.grub = { enable = true; - version = 2; device = "/dev/sda"; }; + nix.settings.allowed-users = [ "public" ]; + networking = { hostName = "automatix"; @@ -53,4 +54,32 @@ openDefaultPorts = true; }; }; + + systemd.timers."generate-ical-of-org-agenda" = { + enable = true; + wantedBy = [ "timers.target" ]; + timerConfig = { + OnCalendar = "daily"; + Persistent = true; + Unit = "generate-ical-of-org-agenda.service"; + }; + }; + + systemd.services."generate-ical-of-org-agenda" = { + enable = true; + script = "${pkgs.emacs-nox}/bin/emacs -batch -l /var/lib/syncthing/org-cal-export.el"; + serviceConfig = { + Type = "oneshot"; + User = "syncthing"; + }; + }; + + users.users.syncthing.shell = pkgs.bash; + + security.acme = { + acceptTerms = true; + defaults.email = "key@kummerlaender.eu"; + }; + + system.stateVersion = "18.09"; } diff --git a/host/hardware/athena.nix b/host/hardware/athena.nix index 0682645..508507a 100644 --- a/host/hardware/athena.nix +++ b/host/hardware/athena.nix @@ -1,31 +1,32 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, ... }: +{ config, lib, pkgs, modulesPath, ... }: { imports = - [ <nixpkgs/nixos/modules/installer/scan/not-detected.nix> + [ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; - boot.kernelModules = [ "kvm-intel" ]; + boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" "sdhci_pci" ]; + boot.initrd.kernelModules = [ "dm-snapshot" ]; + boot.kernelModules = [ "kvm-intel" "fuse" ]; boot.extraModulePackages = [ ]; fileSystems."/" = - { device = "/dev/disk/by-uuid/a382b969-52d6-4946-ae8a-5da3f612410c"; + { device = "/dev/disk/by-uuid/3af135f5-9bfe-4ab4-abb3-2e93caad08ea"; fsType = "ext4"; }; fileSystems."/boot" = - { device = "/dev/disk/by-uuid/CC5B-E0DA"; + { device = "/dev/disk/by-uuid/6290-9BB5"; fsType = "vfat"; }; swapDevices = - [ { device = "/dev/disk/by-uuid/96edaf95-23ce-4859-b82f-048711d2a8d2"; } + [ { device = "/dev/disk/by-uuid/b3845af4-030a-4bba-bad8-89c548bde40f"; } ]; - nix.maxJobs = lib.mkDefault 4; powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/host/hardware/atlas.nix b/host/hardware/atlas.nix new file mode 100644 index 0000000..61bca06 --- /dev/null +++ b/host/hardware/atlas.nix @@ -0,0 +1,37 @@ +{ config, lib, pkgs, modulesPath, ... }: + +{ + boot = { + initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; + initrd.kernelModules = [ ]; + kernelModules = [ "kvm-intel" ]; + extraModulePackages = [ ]; + + loader = { + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; + }; + }; + + fileSystems."/" = { + device = "/dev/disk/by-uuid/34f1948d-36a7-4c1f-95fe-5dc7dd53a46e"; + fsType = "ext4"; + }; + + boot.initrd.luks.devices = { + "luks-f6c3a1a8-bc09-4fcd-a979-4fe82dc4dc71".device = "/dev/disk/by-uuid/f6c3a1a8-bc09-4fcd-a979-4fe82dc4dc71"; + "luks-49b6b8ab-1d8f-43d3-ba58-d548316f197a".device = "/dev/disk/by-uuid/49b6b8ab-1d8f-43d3-ba58-d548316f197a"; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/D45E-0E82"; + fsType = "vfat"; + }; + + swapDevices = [ { device = "/dev/disk/by-uuid/f198c957-dc39-4973-86c0-8fde06672ff9"; } ]; + + networking.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/host/hardware/hephaestus.nix b/host/hardware/hephaestus.nix new file mode 100644 index 0000000..69a69cf --- /dev/null +++ b/host/hardware/hephaestus.nix @@ -0,0 +1,30 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ "dm-snapshot" ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/4137e9a6-a4cd-4758-a9db-ae684d17e4de"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/0CF7-ED16"; + fsType = "vfat"; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/b4d536f0-9b83-44a8-84f3-f44c1deee870"; } + ]; + +} diff --git a/host/hardware/idefix.nix b/host/hardware/idefix.nix new file mode 100644 index 0000000..73795f8 --- /dev/null +++ b/host/hardware/idefix.nix @@ -0,0 +1,50 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot = { + initrd = { + availableKernelModules = [ "ahci" "xhci_pci" "usb_storage" "sd_mod" "rtsx_usb_sdmmc" ]; + kernelModules = [ ]; + secrets = { + "/crypto_keyfile.bin" = null; + }; + # Enable swap on luks + luks.devices."luks-d66399c9-3eb8-4ebc-9855-9aae346feabf".device = "/dev/disk/by-uuid/d66399c9-3eb8-4ebc-9855-9aae346feabf"; + luks.devices."luks-d66399c9-3eb8-4ebc-9855-9aae346feabf".keyFile = "/crypto_keyfile.bin"; + luks.devices."luks-1747c7bf-b0e6-4202-8e00-393c0e5a01f2".device = "/dev/disk/by-uuid/1747c7bf-b0e6-4202-8e00-393c0e5a01f2"; + }; + kernelModules = [ "kvm-intel" ]; + extraModulePackages = [ ]; + loader = { + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; + efi.efiSysMountPoint = "/boot/efi"; + }; + }; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/a368ee22-54d1-45ff-b61b-529b9b438e52"; + fsType = "ext4"; + }; + + + fileSystems."/boot/efi" = + { device = "/dev/disk/by-uuid/F393-BC14"; + fsType = "vfat"; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/51ac8775-7ff6-4869-addb-fe139198e7c8"; } + ]; + + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + + hardware.bluetooth.enable = true; +} diff --git a/host/hardware/majestix.nix b/host/hardware/majestix.nix deleted file mode 100644 index 5c78ed8..0000000 --- a/host/hardware/majestix.nix +++ /dev/null @@ -1,31 +0,0 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, ... }: - -{ - imports = - [ <nixpkgs/nixos/modules/installer/scan/not-detected.nix> - ]; - - boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usbhid" "sd_mod" "sr_mod" ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/6eb9a8c7-0384-4c47-9e4e-24d2ed57fc2e"; - fsType = "ext4"; - }; - - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/e8a055f9-4293-4a55-9974-9ca39bf209cd"; - fsType = "ext2"; - }; - - swapDevices = - [ { device = "/dev/disk/by-uuid/b27d07d6-bc07-4e7c-bd14-2b67c89dbf20"; } - ]; - - nix.maxJobs = lib.mkDefault 8; - powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; -} diff --git a/host/hephaestus.nix b/host/hephaestus.nix new file mode 100644 index 0000000..3c22dbe --- /dev/null +++ b/host/hephaestus.nix @@ -0,0 +1,71 @@ +{ pkgs, ... }: + +{ + imports = [ + ./hardware/hephaestus.nix + ./software/desktop + ./software/desktop/xterm.nix + ./software/desktop/teensy.nix + ]; + + boot = { + loader = { + systemd-boot = { + enable = true; + configurationLimit = 3; + }; + efi.canTouchEfiVariables = true; + }; + + initrd.luks.devices = { + encrypted = { + device = "/dev/nvme0n1p5"; + preLVM = true; + allowDiscards = true; + }; + }; + }; + + networking = { + hostName = "hephaestus"; + firewall.enable = false; + networkmanager.enable = true; + }; + + services.xserver = { + videoDrivers = [ "nvidia" ]; |