{ config, lib, pkgs, home-manager, ... }:

{

  imports = [
    ctucxConfig.configure.mobileDevice
    ctucxConfig.configure.thunderbolt
    ctucxConfig.configure.fonts
    ctucxConfig.configure.bluetooth

    ctucxConfig.services.swaylock
    ctucxConfig.services.pipewire
    ctucxConfig.services.syncthing

    ctucxConfig.programs.ddcutil
    ctucxConfig.programs.ausweisapp
    ctucxConfig.programs.thunar
    ctucxConfig.programs.gpg
  ];

  users.users.katja.extraGroups = [ "dialout" ];

  nixpkgs.config.allowUnfree = true;

  hardware.opengl = {
    enable        = true;
    driSupport    = true;
    extraPackages = with pkgs; [
      vaapiIntel
      vaapiVdpau
      libvdpau-va-gl
      intel-media-driver
    ];
  };

  programs.dconf.enable = true;

  services = {
    nscd.enable         = true;
    getty.autologinUser = "katja";
    dbus.packages       = [ pkgs.dconf ];
  };

  home-manager.users.katja = {
    manual.html.enable = true;

    services.gnome-keyring.enable = true;

    imports = [
      ctucxConfig.homeManager.configure.xdg

      ctucxConfig.homeManager.services.waybar
      ctucxConfig.homeManager.services.mako
      ctucxConfig.homeManager.services.wlsunset
      ctucxConfig.homeManager.services.easyeffects

      ctucxConfig.homeManager.programs.alacritty
      ctucxConfig.homeManager.programs.git
      ctucxConfig.homeManager.programs.ssh

      ctucxConfig.homeManager.programs.firefox
      ctucxConfig.homeManager.programs.thunderbird
      ctucxConfig.homeManager.programs.fractal
      ctucxConfig.homeManager.programs.tuba
      ctucxConfig.homeManager.programs.paper-plane

      ctucxConfig.homeManager.programs.libreoffice

      ctucxConfig.homeManager.programs.zathura
      ctucxConfig.homeManager.programs.imv
      ctucxConfig.homeManager.programs.mpv

      ctucxConfig.homeManager.programs.bitwarden-cli
    ];

    home.sessionVariables = {
      QT_QPA_PLATFORMTHEME = "gnome";
    };

    home.packages = with pkgs; [
      pkgs.qgnomeplatform
    ];

    gtk = {
      enable = true;

      iconTheme = {
        name    = "Adwaita";
        package = pkgs.gnome3.adwaita-icon-theme;
      };

      font   = {
        name    = "Dejavu Sans";
        package = pkgs.dejavu_fonts;
      };

      gtk3.extraConfig  = {
        gtk-application-prefer-dark-theme = true;
        gtk-recent-files-limit            = 10;
      };
    };
  };

}