about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nixos/modules/services/x11/desktop-managers/gnome3.nix58
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-control-center/default.nix25
2 files changed, 83 insertions, 0 deletions
diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix
new file mode 100644
index 0000000000000..6c43112c81373
--- /dev/null
+++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix
@@ -0,0 +1,58 @@
+{ config, pkgs, ... }:
+
+with pkgs.lib;
+
+let
+  cfg = config.services.xserver.desktopManager.gnome3;
+  gnome3 = pkgs.gnome3;
+in {
+
+  options = {
+
+    services.xserver.desktopManager.gnome3.enable = mkOption {
+      default = false;
+      example = true;
+      description = "Enable Gnome 3 desktop manager.";
+    };
+
+  };
+
+  config = mkIf cfg.enable {
+
+    # Enable helpful DBus services.
+    security.polkit.enable = true;
+    services.udisks2.enable = true;
+    networking.networkmanager.enable = true;
+    services.upower.enable = config.powerManagement.enable;
+
+    fonts.extraFonts = [ pkgs.dejavu_fonts ];
+
+    services.xserver.desktopManager.session = singleton
+      { name = "gnome3";
+        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=gnome
+
+          ${gnome3.gnome_session}/bin/gnome-session&
+          waitPID=$!
+        '';
+      };
+
+    environment.systemPackages =
+      [ gnome3.evince
+        gnome3.eog
+        pkgs.ibus
+        gnome3.gnome_shell
+        gnome3.gnome_settings_daemon
+        gnome3.gnome_terminal
+        gnome3.gnome_icon_theme
+        gnome3.gnome_themes_standard
+      ];
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix b/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
new file mode 100644
index 0000000000000..b73009d896d42
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
@@ -0,0 +1,25 @@
+{ fetchurl, stdenv, pkgconfig, gnome3, ibus, intltool, upower, libcanberra
+, libxml2, polkit, libxslt, libgtop, libsoup, colord, pulseaudio, fontconfig }:
+
+# http://ftp.gnome.org/pub/GNOME/teams/releng/3.10.2/gnome-suites-core-3.10.2.modules
+# TODO: colord_gtk
+
+
+stdenv.mkDerivation rec {
+  name = "gnome-control-center-3.10.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-control-center/3.10/${name}.tar.xz";
+    sha256 = "1ac34kqkf174w0qc12p927dfhcm69xnv7fqzmbhjab56rn49wypn";
+  };
+
+  buildInputs = with gnome3;
+    [ pkgconfig intltool ibus gtk glib upower libcanberra gsettings_desktop_schemas
+      libxml2 gnome_desktop gnome_settings_daemon polkit libxslt libgtop gnome-menus
+      gnome_online_accounts libsoup colord pulseaudio fontconfig ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+
+}