{ config, pkgs, ... }:

{
  # https://github.com/danieldk/nix-home/blob/master/home/cfg/desktop.nix
  # https://github.com/Martins3/My-Linux-Config/blob/master/nixpkgs/home/app/gnome.nix

  # gsettings (or dconf-editor) schemas are spread throughout the nix store.
  # One can use a script to add them to $XDG_DATA_DIRS and then execute a command.
  # Here is an example script:
  # https://github.com/NixOS/nixpkgs/issues/33277#issuecomment-354689755

  programs.dconf.enable = true;

  home-manager.users.yoda = { osConfig, config, pkgs, ... }: {
    programs.gnome-terminal.enable = true;
    programs.gnome-terminal.profile."74b90a31-5123-4a64-91a3-3cb31eb5cdb6" = {
      default = true;
      visibleName = "Yoda's Terminal";
      font = "DejaVu Sans Mono 11";
      audibleBell = false;

      # Theme: https://github.com/chriskempson/base16-default-schemes/blob/master/default-light.yaml
      # Where to place theme values: https://github.com/knopki/devops-at-home/blob/307921320d6147347e830d2c709f142b809d55b4/home/modules/theme/theme-gnome-terminal.nix#L16-L41
      colors = {
        backgroundColor = "#f8f8f8";
        foregroundColor = "#383838";
        cursor = {
          background = "#383838";
          foreground = "#f8f8f8";
        };
        palette = [
          "#f8f8f8"
          "#ab4642"
          "#a1b56c"
          "#f7ca88"
          "#7cafc2"
          "#ba8baf"
          "#86c1b9"
          "#383838"
          "#b8b8b8"
          "#dc9656"
          "#e8e8e8"
          "#d8d8d8"
          "#585858"
          "#282828"
          "#a16946"
          "#181818"
        ];
      };
    };

    dconf.settings = {
      "org/gnome/desktop/media-handling" = {
        # Settings > Removable Media > Never promt or start apps on media insertion
        autorun-never = true;
      };

      "org/gnome/settings-daemon/plugins/power" = {
        # Settings > Automatic Suspend > Plugged In
        sleep-inactive-ac-type = "nothing";
        # Settings > Automatic Suspend > On Battery Power
        sleep-inactive-battery-type = "suspend";
      };

      "org/gnome/desktop/privacy" = {
        # Settings > File History > Enabled
        remember-recent-files = true;
        # Settings > File History > File History Duration
        recent-files-max-age = 30;

        # Settings > Trash and Temporary Files > Automatically Delete Trash Content
        remove-old-trash-files = true;
        # Settings > Trash and Temporary Files > Automatically Delete Temporary Files
        remove-old-temp-files = true;
        # Settings > Trash and Temporary Files > Automatically Delete Period
        old-files-age = 30;
      };

      "org/gnome/settings-daemon/plugins/color" = {
        night-light-enabled = true;
        night-light-schedule-automatic = false;
        #night-light-temperature = "uint32 3700";
      };

      "org/gnome/mutter" = {
        dynamic-workspaces = true;
        workspaces-only-on-primary = true;
      };

      "org/gnome/desktop/interface" = {
        # Dark Style
        color-scheme = "prefer-dark";
        # Multitasking > General > Hot Corner
        enable-hot-corners = false;
        show-battery-percentage = true;
      };
    };
  };
}
