{ lib, config, ... }:
  let
    fs = import ../../lib/modules/partition/fs.nix;
  in {
    imports = [
      ../../lib/modules/valhalla.nix
    ];

    config = {
      valhalla = {
        partition = {
          os = {
            partitions = {
              Boot = {
                index = 1;
                type = "uefi";
                size = "+1G";
                format = fs.fat32;
                mountPoint = config.valhalla.boot.efiMountPoint;
              };

              Swap = {
                index = 2;
                type = "swap";
              };

              OS = {
                index = 3;
                label = lib.mkDefault config.valhalla.boot.label;
                type = "linux";
                format = fs.ext4;
                mountPoint = "/";
              };
            };
          };
        };

        users = {
          manuel = {
            displayName = "Manuel Thalmann";
            mailAddress = "m@nuth.ch";

            groups = [
              "wheel"
              "nix-users"
            ];

            defaultShell = "fish";

            rclone = {
              configurations = {
                nextcloud = {
                  dirName = "Nextcloud";
                };

                proton = {
                  dirName = "Proton";
                };
              };
            };
          };
        };

        timeZone = "Europe/Zurich";
        keyMap = "de_CH-latin1";
        keyboardLayout = "ch";

        i18n = {
          localeSettings =
            let defaultLocale = "en_US.UTF-8";
            in {
              LANG = "de_CH.UTF-8";
              LANGUAGE = defaultLocale;
              LC_MESSAGE = defaultLocale;
            };
        };

        git =
          let
            defaultBranch = "main";
          in {
            inherit defaultBranch;

            flow = {
              mainBranch = defaultBranch;
              devBranch = "dev";
            };

            aliases = {
              ahfange = "init";
              tuedezue = "add";
              beschuldig = "blame";
              zieh = "pull";
              druck = "push";
              machnah = "clone";
              hol = "fetch";
              zwiigab = "branch";
              buechiih = "commit";
              eich = "rebase";
              erd = "rebase";
              gahufwiifelde = "rebase";
              vergliich = "diff";
              tuezemme = "merge";
              versorg = "stash";
              markier = "tag";
              pflueckoepfel = "cherry-pick";
              pflueckhimbeeri = "cherry-pick";
              buechuus = "checkout";
              quaetsch = "merge --squash";
              pfudle = "push --force";
              beschuldigung = "blame";
              zwiigli = "branch";
              tagebuech = "log";
              versteck = "stash";
              zuestand = "status";
              markierig = "tag";
            };
          };
      };
    };
  }