summary refs log tree commit diff
path: root/nixos/modules/services/x11/desktop-managers/lxqt.nix
blob: d69f3cba8ccd0a085bdc8d6bcc4bee251e25661e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
{ config, lib, pkgs, ... }:

with lib;

let

  xcfg = config.services.xserver;
  cfg = xcfg.desktopManager.lxqt;

in

{
  options = {

    services.xserver.desktopManager.lxqt.enable = mkOption {
      type = types.bool;
      default = false;
      description = "Enable the LXQt desktop manager";
    };

  };


  config = mkIf (xcfg.enable && cfg.enable) {

    services.xserver.desktopManager.session = singleton {
      name = "lxqt";
      start = ''
        exec ${pkgs.lxqt.lxqt-common}/bin/startlxqt
      '';
    };

    environment.systemPackages = [
      pkgs.kde5.kwindowsystem # provides some QT5 plugins needed by lxqt-panel
      pkgs.kde5.libkscreen # provides plugins for screen management software
      pkgs.kde5.oxygen-icons5 # default icon theme
      pkgs.libfm
      pkgs.libfm-extra
      pkgs.lxmenu-data
      pkgs.lxqt.compton-conf
      pkgs.lxqt.libfm-qt
      pkgs.lxqt.liblxqt
      pkgs.lxqt.libqtxdg
      pkgs.lxqt.libsysstat
      pkgs.lxqt.lximage-qt
      pkgs.lxqt.lxqt-about
      pkgs.lxqt.lxqt-admin
      pkgs.lxqt.lxqt-common
      pkgs.lxqt.lxqt-config
      pkgs.lxqt.lxqt-globalkeys
      pkgs.lxqt.lxqt-l10n
      pkgs.lxqt.lxqt-notificationd
      pkgs.lxqt.lxqt-openssh-askpass
      pkgs.lxqt.lxqt-panel
      pkgs.lxqt.lxqt-policykit
      pkgs.lxqt.lxqt-powermanagement
      pkgs.lxqt.lxqt-qtplugin
      pkgs.lxqt.lxqt-runner
      pkgs.lxqt.lxqt-session
      pkgs.lxqt.lxqt-sudo
      pkgs.lxqt.obconf-qt
      pkgs.lxqt.pavucontrol-qt
      pkgs.lxqt.pcmanfm-qt
      pkgs.lxqt.qterminal
      pkgs.lxqt.qtermwidget
      pkgs.menu-cache
      pkgs.openbox # default window manager
      pkgs.qt5.qtsvg # provides QT5 plugins for svg icons
      pkgs.xscreensaver
    ];

    # Link some extra directories in /run/current-system/software/share
    environment.pathsToLink = [
      "/share/desktop-directories"
      "/share/icons"
      "/share/lxqt"
    ];

  };
}