{ config, pkgs, ... }:

{
  imports = [
    ./common-gui.nix
  ];

  environment.systemPackages = with pkgs; with gnome3; [
    i3
    i3status
    rofi
    rofi-pass
    feh
    gnome_keyring
    networkmanagerapplet
    nautilus # in closure of gnome-terminal anyhow
    pcmanfm
    # colord
    evince
    arandr
    xss-lock i3lock i3lock-color
    xdotool
    scrot
    pavucontrol
    pasystray
    dconf-editor
    unclutter-xfixes
    dunst

    xorg.xev

    # gnome3 core packages
    desktop_file_utils shared_mime_info
    glib gtk3
    glib_networking gvfs dconf
    gnome_settings_daemon
    gnome_themes_standard defaultIconTheme
    hicolor_icon_theme
  ];

  services.xserver = {
    enable = true;

    displayManager = {
      # slim.enable = true;
      # slim.defaultUser = "gebner";
      # # slim.autoLogin = true;

      lightdm.enable = true;
      # startx.enable = true;
      # sddm.enable = true;

      defaultSession = "i3wm";
    };

    desktopManager = {
      xterm.enable = false;

      session = [ {
        name = "i3wm";
        start = ''
          export XDG_DATA_DIRS=/run/current-system/sw/share/''${XDG_DATA_DIRS:+:}$XDG_DATA_DIRS
          export $(${pkgs.gnome3.gnome_keyring}/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh)
          export XDG_CURRENT_DESKTOP=X-Generic
          i3 &
          waitPID=$!
        '';
      } ];
    };

    updateDbusEnvironment = true;

    layout = "us";
    xkbVariant = "altgr-intl";
    xkbOptions = "caps:ctrl_modifier";
  };

  services.dbus.socketActivated = true;
  services.dbus.packages = with pkgs; [ dunst ];
  systemd.packages = [ pkgs.dunst ];

}