{
  config,
  lib,
  pkgs,
  inputs,
  system,
  sources,
  modulesPath,
  ...
}: let
  cfg = config.mods;
  keys = [
    "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKEio+Y5wBVD1wILaH2R3wV10FvVjiqy/4gGBWHOITTB muon@muon"
    "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKevYmkH7xvYoquBjnYZ7PJiVqf+GOh9fxAJBN6wZGBB gin4@hi.is"
    "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILmAOd9VbhyJeibt6Vrb101MNTk5W8+rh94Djv/C+pyu muon@muho"
  ];
in {
  # Hardware
  imports = [
    ./hardware-configuration.nix
    "${
      builtins.fetchTarball {
        url = "https://github.com/nix-community/disko/archive/refs/tags/v1.12.0.tar.gz";
        sha256 = "0wbx518d2x54yn4xh98cgm65wvj0gpy6nia6ra7ns4j63hx14fkq";
      }
    }/module.nix"
    ./disk-config.nix
    # (inputs.nixpkgs
    #   + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix")
  ];

  environment.systemPackages = with inputs.nix-alien.packages.${system}; [
    nix-alien
    pkgs.libratbag
    pkgs.piper
    pkgs.libpq
    pkgs.qmk
    pkgs.jq
  ];

  # System
  mods.user.name = "muon";
  networking.hostName = "murk";
  networking.hostId = "a2309090";
  mods.home.file = ./home.nix;
  nix.settings.trusted-users = ["root" "muon"];
  users.users.muon.extraGroups = ["docker"];

  # Modules
  mods.desktop.enable = true;
  mods.boot.enable = true;

  mods.theme.enable = true;
  mods.theme.scheme = "woodland";
  mods.theme.wallpaper = ./wallpaper.png;

  services.xserver.windowManager.i3.enable = true;
  # mods.desktop.wayland.enable = true;

  mods.impermanence.enable = true;

  virtualisation.docker.enable = true;

  users.users.muon.openssh.authorizedKeys.keys = keys;
  users.users.root.openssh.authorizedKeys.keys = keys;

  # Persist
  environment.persistence."/persist" = {
    directories = ["/etc/NetworkManager" "/var/lib/NetworkManager"];
  };

  # Hardware preferences
  environment.variables = {
    WINIT_HIDPI_FACTOR = "1";
    WINIT_X11_SCALE_FACTOR = "1";
  };

  ## Laptop
  powerManagement.enable = true;
  services.thermald.enable = true;
  services.tlp.enable = true;
  # services.xserver.dpi = lib.mkForce 180;
  # environment.variables = {
  #   GDK_SCALE = "2";
  #   GDK_DPI_SCALE = "0.5";
  #   _JAVA_OPTIONS = "-Dsun.java2d.uiScale=2";
  # };

  ## Monitors
  mods.monitors = {
    primary = {
      name = "eDP-1";
      config = {
        enable = true;
        mode = "2560x1600";
        position = "1264x1440";
        primary = true;
        rate = "60.00";
        dpi = 96;
        scale = {
          x = 0.5;
          y = 0.5;
        };
      };
    };
    left = {
      name = "DP-3-2";
      config = {
        enable = true;
        mode = "2560x1440";
        position = "0x0";
        rate = "60.00";
        dpi = 72;
      };
    };
    right = {
      name = "DP-3-1";
      config = {
        enable = true;
        mode = "2560x1440";
        position = "2560x0";
        rate = "60.00";
        dpi = 72;
      };
    };
  };

  ## Mouse
  services.libinput.mouse.accelProfile = "flat";

  ## Keyboard
  hardware.keyboard.qmk.enable = true;

  # Version of first install
  system.stateVersion = "23.05";
}
