diff options
Diffstat (limited to 'nixpkgs/nixos/modules/services/x11/desktop-managers/enlightenment.nix')
-rw-r--r-- | nixpkgs/nixos/modules/services/x11/desktop-managers/enlightenment.nix | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/enlightenment.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/enlightenment.nix new file mode 100644 index 000000000000..527e4b18045b --- /dev/null +++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/enlightenment.nix @@ -0,0 +1,104 @@ +{ config, pkgs, lib, ... }: + +with lib; + +let + + e = pkgs.enlightenment; + xcfg = config.services.xserver; + cfg = xcfg.desktopManager.enlightenment; + GST_PLUGIN_PATH = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" [ + pkgs.gst_all_1.gst-plugins-base + pkgs.gst_all_1.gst-plugins-good + pkgs.gst_all_1.gst-plugins-bad + pkgs.gst_all_1.gst-libav ]; + +in + +{ + options = { + + services.xserver.desktopManager.enlightenment.enable = mkOption { + default = false; + description = "Enable the Enlightenment desktop environment."; + }; + + }; + + config = mkIf cfg.enable { + + environment.systemPackages = [ + e.efl e.enlightenment + e.terminology e.econnman + pkgs.xorg.xauth # used by kdesu + pkgs.gtk2 # To get GTK+'s themes. + pkgs.tango-icon-theme + + pkgs.gnome2.gnome_icon_theme + pkgs.xorg.xcursorthemes + ]; + + environment.pathsToLink = [ + "/etc/enlightenment" + "/share/enlightenment" + "/share/elementary" + "/share/locale" + ]; + + services.xserver.desktopManager.session = [ + { name = "Enlightenment"; + start = '' + # Set GTK_DATA_PREFIX so that GTK+ can find the themes + export GTK_DATA_PREFIX=${config.system.path} + # find theme engines + export GTK_PATH=${config.system.path}/lib/gtk-3.0:${config.system.path}/lib/gtk-2.0 + export XDG_MENU_PREFIX=e- + + export GST_PLUGIN_PATH="${GST_PLUGIN_PATH}" + + # make available for D-BUS user services + #export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}:${config.system.path}/share:${e.efl}/share + + # Update user dirs as described in http://freedesktop.org/wiki/Software/xdg-user-dirs/ + ${pkgs.xdg-user-dirs}/bin/xdg-user-dirs-update + + exec ${e.enlightenment}/bin/enlightenment_start + ''; + }]; + + security.wrappers = (import "${e.enlightenment}/e-wrappers.nix").security.wrappers; + + environment.etc = singleton + { source = xcfg.xkbDir; + target = "X11/xkb"; + }; + + fonts.fonts = [ pkgs.dejavu_fonts pkgs.ubuntu_font_family ]; + + services.udisks2.enable = true; + services.upower.enable = config.powerManagement.enable; + + services.dbus.packages = [ e.efl ]; + + systemd.user.services.efreet = + { enable = true; + description = "org.enlightenment.Efreet"; + serviceConfig = + { ExecStart = "${e.efl}/bin/efreetd"; + StandardOutput = "null"; + }; + }; + + systemd.user.services.ethumb = + { enable = true; + description = "org.enlightenment.Ethumb"; + serviceConfig = + { ExecStart = "${e.efl}/bin/ethumbd"; + StandardOutput = "null"; + }; + }; + + + }; + +} |