···11+Hosts
22+=====
33+44+> [!CAUTION]
55+> This hosts system and home configurations are public for your own learning and
66+> research. They are not meant to be used with any hardware other than mine.
77+> Trying to build and deploy them to other systems without appropriate changes
88+> can render your machines unbootable and damage data.
99+1010+> [!NOTE]
1111+> I do not provide copy/pastable commands that would build/switch/install any
1212+> of these configurations because I mean what I wrote in the block before!
1313+1414+A list of all hosts currently in use by me. this covers all the
1515+devices i can name on my behalf. Not all devices in this list are
1616+managed through nix or even run it.
1717+1818+* `mimas`: My currently used main host.
1919+* ~~`enceladeus`~~: A secondary laptop, rarely used but still updated.
2020+* ~~`thetys`~~: A nixos VM solely used in the office for work related things, discontinued
2121+* ~~`dione`~~: company provided android phone, discontinued
2222+* `rhea`: self owned phone
2323+* ~~`titan`~~: MacOS VM to play and experiment with, discontinued
2424+* ~~`hyperion`~~: Linux-Aarch64 VM to play and experiment with, discontinued
2525+* `phoebe`: TuxedoOS (Ubuntu derivative) laptop, HM only.
-13
README.org
···11-* Hosts
22-33-A list of all hosts currently in use by me. this covers all the
44-devices i can name on my behalf. Not all devices in this list are
55-managed through nix or even run it.
66-77-+ =mimas= :: My currently used main host.
88-+ =enceladeus= :: A secondary laptop, rarely used but still updated.
99-+ =thetys= :: A nixos VM solely used in the office for work related things, discontinued
1010-+ =dione= :: company provided android phone, discontinued
1111-+ =rhea= :: self owned phone
1212-+ =titan= :: MacOS VM to play and experiment with
1313-+ =hyperion= :: Linux-Aarch64 VM to play and experiment with
···11+_: {pkgs, ...}: {
22+ xdg.configFile."ghostty/config".text =
33+ # toml
44+ ''
55+ font-family = "Departure Mono"
66+77+ ## uncomment once keybindings have been set to something I am familiar
88+ ## with. The bar contains the menu, which I need for splits for nowโฆ
99+ # gtk-titlebar = false
1010+1111+ theme = "catppuccin-mocha"
1212+ '';
1313+1414+ home.packages = [pkgs.ghostty];
1515+}
+1-1
home/modules/programs/nixpkgs/default.nix
···66 allowed = config.nixpkgs.allowedUnfree;
77in {
88 options.nixpkgs.allowedUnfree = lib.mkOption {
99- type = lib.types.listOf lib.types.string;
99+ type = lib.types.listOf lib.types.str;
1010 default = [];
1111 description = ''
1212 Allows for unfree packages by their name.
···11-# Edit this configuration file to define what should be installed on
22-# your system. Help is available in the configuration.nix(5) man page
33-# and in the NixOS manual (accessible by running โnixos-helpโ).
44-_: {
55- config,
66- pkgs,
77- lib,
88- ...
99-}: {
1010- nix.allowedUnfree = ["b43-firmware" "zerotierone"];
1111- nixpkgs.config.contentAddressedByDefault = false;
1212-1313- # nixpkgs.hostPlatform.gcc.arch = "core2";
1414- # nixpkgs.hostPlatform.system = "x86_64-linux";
1515- # nixpkgs.buildPlatform.gcc.arch = "haswell";
1616- # nixpkgs.buildPlatform.system = "x86_64-linux";
1717-1818- nixpkgs.overlays = [
1919- # (final: prev: {
2020- # abseil-cpp = nixpkgs.legacyPackages.${final.system}.abseil-cpp;
2121- # #bash = prev.bash.override { stdenv = nixpkgs.legacyPackages.${final.system}.stdenv; };
2222- # })
2323- ];
2424-2525- services.lvm.boot.thin.enable = true;
2626- boot.kernelPackages = pkgs.linuxPackages_5_15; # TODO: Figure why I have this and nothing newer?
2727- services.lvm.dmeventd.enable = true;
2828- boot.blacklistedKernelModules = ["rtl8xxxu"];
2929- boot.extraModulePackages = with config.boot.kernelPackages; [
3030- rtl8192eu
3131- ];
3232-3333- boot.kernel.sysctl = {
3434- "vm.swappiness" = 75;
3535- };
3636-3737- # The global useDHCP flag is deprecated, therefore explicitly set to false here.
3838- # Per-interface useDHCP will be mandatory in the future, so this generated config
3939- # replicates the default behaviour.
4040- networking.networkmanager.enable = true;
4141- networking.networkmanager.unmanaged = [
4242- "mac:0c:60:76:3f:c1:31"
4343- ];
4444- networking.enableB43Firmware = true;
4545-4646- networking.useDHCP = false;
4747- networking.interfaces.enp0s25.useDHCP = false;
4848- networking.interfaces.wlan0.useDHCP = false;
4949- networking.hostId = "62a007d6"; # required by ZFS
5050-5151- # Configure network proxy if necessary
5252- # networking.proxy.default = "http://user:password@proxy:port/";
5353- # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
5454-5555- # Select internationalisation properties.
5656- i18n.defaultLocale = "en_US.UTF-8";
5757- console = {
5858- font = "Lat2-Terminus16";
5959- keyMap = "de";
6060- };
6161-6262- # Set your time zone.
6363- time.timeZone = "Europe/Berlin";
6464-6565- # List packages installed in system profile. To search, run:
6666- # $ nix search wget
6767- environment.systemPackages = with pkgs; [
6868- unison # Sadly required on the host for unison copy to work :(
6969- ];
7070-7171- # Some programs need SUID wrappers, can be configured further or are
7272- # started in user sessions.
7373- programs.gnupg.agent = {
7474- enable = true;
7575- enableSSHSupport = true;
7676- };
7777- programs.zsh.enable = true;
7878-7979- # List services that you want to enable:
8080-8181- # Enable the OpenSSH daemon.
8282- services.openssh.enable = true;
8383-8484- # Open ports in the firewall.
8585- networking.firewall.allowedTCPPorts = [9002];
8686- # networking.firewall.allowedUDPPorts = [ ... ];
8787- # Or disable the firewall altogether.
8888- # networking.firewall.enable = false;
8989- networking.firewall.trustedInterfaces = [
9090- "ztrta4jrxj"
9191- ];
9292-9393- # Enable CUPS to print documents.
9494- # services.printing.enable = true;
9595-9696- # Enable sound.
9797- sound.enable = true;
9898- hardware.pulseaudio.enable = true;
9999-100100- # Enable the X11 windowing system.
101101- services.xserver.enable = true;
102102- services.xserver.layout = "de";
103103- # services.xserver.xkbOptions = "eurosign:e";
104104-105105- # Enable touchpad support.
106106- services.xserver.libinput.enable = true;
107107-108108- # Enable the KDE Desktop Environment.
109109- services.xserver.displayManager.lightdm.enable = true;
110110- services.xserver.desktopManager.plasma5.enable = false;
111111- services.xserver.windowManager.awesome.enable = true;
112112-113113- virtualisation.docker.enable = false;
114114-115115- # Define a user account. Don't forget to set a password with โpasswdโ.
116116- users.users = {
117117- nmelzer = {
118118- isNormalUser = true;
119119- shell = pkgs.zsh;
120120- extraGroups = ["wheel" "networkmanager"];
121121- };
122122-123123- aroemer = {
124124- isNormalUser = true;
125125- };
126126-127127- proemer = {
128128- isNormalUser = true;
129129- };
130130- };
131131-132132- services.prometheus = {
133133- exporters = {
134134- node = {
135135- enable = true;
136136- enabledCollectors = ["systemd"];
137137- port = 9002;
138138- };
139139- };
140140- };
141141-142142- # This value determines the NixOS release with which your system is to be
143143- # compatible, in order to avoid breaking some software such as database
144144- # servers. You should change this only after NixOS release notes say you
145145- # should.
146146- system.stateVersion = "19.09"; # Did you read the comment?
147147-148148- security.sudo.extraRules = [
149149- {
150150- commands = [
151151- {
152152- command = "/run/current-system/sw/bin/nixos-rebuild";
153153- options = ["NOPASSWD"];
154154- }
155155- ];
156156- groups = ["wheel"];
157157- }
158158- ];
159159-}
+1-8
nixos/configurations/hardware/enceladeus.nix
···11# Do not modify this file! It was generated by โnixos-generate-configโ
22# and may be overwritten by future invocations. Please make changes
33# to /etc/nixos/configuration.nix instead.
44-{
55- config,
66- lib,
77- pkgs,
88- ...
99-}: {
1010- imports = [];
1111-44+{lib, ...}: {
125 boot.initrd.availableKernelModules = ["uhci_hcd" "ehci_pci" "ahci" "firewire_ohci" "usbhid" "usb_storage" "sd_mod" "sr_mod" "sdhci_pci"];
136 boot.initrd.kernelModules = ["dm-snapshot"];
147 boot.kernelModules = ["kvm-intel" "wl"];
-2
nixos/configurations/hardware/hyperion.nix
···22# and may be overwritten by future invocations. Please make changes
33# to /etc/nixos/configuration.nix instead.
44{
55- config,
65 lib,
77- pkgs,
86 modulesPath,
97 ...
108}: {
+55
nixos/configurations/hardware/janus.nix
···11+# Do not modify this file! It was generated by โnixos-generate-configโ
22+# and may be overwritten by future invocations. Please make changes
33+# to /etc/nixos/configuration.nix instead.
44+{
55+ config,
66+ lib,
77+ pkgs,
88+ modulesPath,
99+ ...
1010+}: {
1111+ imports = [
1212+ (modulesPath + "/installer/scan/not-detected.nix")
1313+ ];
1414+1515+ boot.initrd.availableKernelModules = ["xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" "sdhci_pci"];
1616+ boot.initrd.kernelModules = ["dm-snapshot"];
1717+ boot.initrd.luks.devices.cryptroot.device = "/dev/disk/by-partlabel/nixoscrypt";
1818+ boot.kernelModules = ["kvm-intel"];
1919+ boot.extraModulePackages = [];
2020+2121+ fileSystems."/" = {
2222+ device = "/dev/mainpool/vdo-root";
2323+ fsType = "xfs";
2424+ };
2525+2626+ fileSystems."/boot" = {
2727+ device = "/dev/nvme0n1p1";
2828+ fsType = "vfat";
2929+ };
3030+3131+ fileSystems."/nix" = {
3232+ device = "/dev/mainpool/vdo-nix";
3333+ fsType = "xfs";
3434+ };
3535+3636+ fileSystems."/home" = {
3737+ device = "/dev/mainpool/vdo-home";
3838+ fsType = "xfs";
3939+ };
4040+4141+ swapDevices = [];
4242+4343+ # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
4444+ # (the default) this is the recommended approach. When using systemd-networkd it's
4545+ # still possible to use this option, but it's recommended to use it in conjunction
4646+ # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
4747+ networking.useDHCP = lib.mkDefault true;
4848+ # networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
4949+ # networking.interfaces.enp56s0u1u1.useDHCP = lib.mkDefault true;
5050+ # networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true;
5151+5252+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
5353+ powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
5454+ hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
5555+}