{ pkgs, lib, config, ... }:
let
  cpu = config.deviceSpecific.cpu;
  device = config.device;
  isShared = config.deviceSpecific.isShared;
in {
  services.xserver = {
    enable = true;
    enableTCP = true;
    libinput = {
      enable = true;
      sendEventsMode = "disabled-on-external-mouse";
      middleEmulation = false;
      naturalScrolling = true;
    };
    videoDrivers = if cpu == "amd" then
      ["amdgpu"]
    else if device == "Lenovo-Workstation" then
      ["radeon"]
    else
      ["intel"];
    displayManager.lightdm = {
      enable = true;
      greeter.enable = isShared;
      autoLogin.enable = !isShared;
      autoLogin.user = "balsoft";
    };
    desktopManager.plasma5.enable = true;
    desktopManager.default = "none";
    windowManager.i3 = {
      enable = true;
      package = pkgs.i3-gaps;
    };
    windowManager.default = "i3";
    layout = "us,ru";
    xkbOptions = "grp:caps_toggle,grp_led:caps";
  };
}