{
  lib,
  pkgs,
  ...
}:
let
  inherit (lib.marleyos) enabled;
in
{
  imports = [ ./autorandr.nix ];

  home.keyboard.options = [ "apple:alupckeys" ];

  # FIXME: Remove once we are on NixOS
  targets.genericLinux = enabled;

  # FIXME: Remove this once nvim is set up
  home.packages = with pkgs; [
    nixfmt-rfc-style
    nil
    statix
    manix
  ];

  marleyos = {
    isDesktop = true;
    nixGL = enabled;

    appearance = {
      base = enabled;
      gtk = enabled;
      qt = enabled;
    };
    # TODO: Seperate out into graphical/shell/tui?
    programs = {
      amfora = enabled;
      bat = enabled;
      btop = enabled;
      calibre = enabled;
      cava = enabled;
      cheat = enabled;
      curl = enabled;
      eza = enabled;
      figlet = enabled;
      fish = enabled;
      fzf = enabled;
      gh = enabled;
      git = enabled;
      glow = enabled;
      gpg = enabled;
      hyfetch = enabled;
      journalctl = enabled;
      just = enabled;
      lazygit = enabled;
      less = enabled;
      man = enabled;
      ncmpcpp = enabled;
      neo = enabled;
      nh = enabled;
      pidgin = enabled;
      rbw = enabled;
      ripgrep = enabled;
      ssh = enabled;
      starship = enabled;
      systemctl = enabled;
      tmux = enabled;
      wezterm = enabled;
      wget = enabled;
      zathura = enabled;
      zoxide = enabled;
    };
    services = {
      clipboard = enabled;
      syncthing = enabled;
    };
    xorg = {
      xsession = enabled;
      i3 = enabled;
    };
  };

  home.stateVersion = "24.05";
}
