1 { config, pkgs, lib, ... }:
7 e = pkgs.enlightenment;
8 xcfg = config.services.xserver;
9 cfg = xcfg.desktopManager.enlightenment;
10 GST_PLUGIN_PATH = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" [
11 pkgs.gst_all_1.gst-plugins-base
12 pkgs.gst_all_1.gst-plugins-good
13 pkgs.gst_all_1.gst-plugins-bad
14 pkgs.gst_all_1.gst-libav ];
20 maintainers = teams.enlightenment.members;
24 (mkRenamedOptionModule [ "services" "xserver" "desktopManager" "e19" "enable" ] [ "services" "xserver" "desktopManager" "enlightenment" "enable" ])
29 services.xserver.desktopManager.enlightenment.enable = mkOption {
32 description = "Enable the Enlightenment desktop environment.";
37 config = mkIf cfg.enable {
39 environment.systemPackages = with pkgs; [
40 enlightenment.econnman
42 enlightenment.enlightenment
46 enlightenment.terminology
50 environment.pathsToLink = [
52 "/share/enlightenment"
57 services.displayManager.sessionPackages = [ pkgs.enlightenment.enlightenment ];
59 services.xserver.displayManager.sessionCommands = ''
60 if test "$XDG_CURRENT_DESKTOP" = "Enlightenment"; then
61 export GST_PLUGIN_PATH="${GST_PLUGIN_PATH}"
63 # make available for D-BUS user services
64 #export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}:${config.system.path}/share:${e.efl}/share
66 # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
67 ${pkgs.xdg-user-dirs}/bin/xdg-user-dirs-update
71 # Wrappers for programs installed by enlightenment that should be setuid
73 enlightenment_ckpasswd =
77 source = "${pkgs.enlightenment.enlightenment}/lib/enlightenment/utils/enlightenment_ckpasswd";
83 source = "${pkgs.enlightenment.enlightenment}/lib/enlightenment/utils/enlightenment_sys";
85 enlightenment_system =
89 source = "${pkgs.enlightenment.enlightenment}/lib/enlightenment/utils/enlightenment_system";
93 environment.etc."X11/xkb".source = xcfg.xkb.dir;
95 fonts.packages = [ pkgs.dejavu_fonts ];
97 services.udisks2.enable = true;
98 services.upower.enable = config.powerManagement.enable;
99 services.libinput.enable = mkDefault true;
101 services.dbus.packages = [ e.efl ];
103 systemd.user.services.efreet =
105 description = "org.enlightenment.Efreet";
107 { ExecStart = "${e.efl}/bin/efreetd";
108 StandardOutput = "null";
112 systemd.user.services.ethumb =
114 description = "org.enlightenment.Ethumb";
116 { ExecStart = "${e.efl}/bin/ethumbd";
117 StandardOutput = "null";