{ config, pkgs, lib, ... }:
with lib.hm.gvariant;
{
  imports = [
    ../modules/home-manager/browser.nix
    ../modules/home-manager/code.nix
    ../modules/home-manager/fish.nix
    ../modules/home-manager/flatpaks.nix
    ../modules/home-manager/gnome-shell-customization.nix
    ../modules/home-manager/keepassxc.nix
    ../modules/home-manager/obsidian.nix
    ../modules/home-manager/owncloud-client.nix
    ../modules/home-manager/thunderbird.nix
  ];

  ## Home Manager configuration
  home.stateVersion = "24.05";
  # Let Home Manager install and manage itself.
  programs.home-manager.enable = true;

  ## Basic configuration
  home.username = "remy";
  home.homeDirectory = "/home/remy";

  #home.file.<filepath> = <content>;
  
  ## Utils relevant to this user only
  programs.git = {
    enable = true;
    userName = "Remy Moll";
    userEmail = "me@moll.re";
  };
  

  ## Gnome keyboard and mouse settings
  dconf.settings = {
    # set the keyboard layout to german
    "org/gnome/desktop/input-sources" = {
      current = mkUint32 0;
      sources = [ (mkTuple [ "xkb" "de" ]) (mkTuple [ "xkb" "ch" ]) (mkTuple [ "xkb" "us" ]) ];
      xkb-options = [ "lv3:ralt_switch" ];
    };

    "org/gnome/desktop/peripherals/keyboard" = {
      numlock-state = true;
    };

    "org/gnome/desktop/peripherals/mouse" = {
      natural-scroll = false;
      speed = 0.20851063829787231;
    };

    "org/gnome/desktop/peripherals/touchpad" = {
      tap-to-click = true;
      two-finger-scrolling-enabled = true;
      speed = 0.16872427983539096;
    };
  };
}