diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 4f623c3ef9c..a769914499d 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -100,6 +100,7 @@ ./services/desktops/accountservice.nix ./services/desktops/gnome3/at-spi2-core.nix ./services/desktops/gnome3/evolution-data-server.nix + ./services/desktops/gnome3/gnome-documents.nix ./services/desktops/gnome3/gnome-keyring.nix ./services/desktops/gnome3/gnome-online-accounts.nix ./services/desktops/gnome3/gnome-online-miners.nix diff --git a/nixos/modules/services/desktops/gnome3/gnome-documents.nix b/nixos/modules/services/desktops/gnome3/gnome-documents.nix new file mode 100644 index 00000000000..1f7592c0b41 --- /dev/null +++ b/nixos/modules/services/desktops/gnome3/gnome-documents.nix @@ -0,0 +1,43 @@ +# GNOME Documents daemon. + +{ config, pkgs, ... }: + +with pkgs.lib; + +{ + + ###### interface + + options = { + + services.gnome3.gnome-documents = { + + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable GNOME Documents services, a document + manager application for GNOME. + ''; + }; + + }; + + }; + + + ###### implementation + + config = mkIf config.services.gnome3.gnome-documents.enable { + + environment.systemPackages = [ pkgs.gnome3.gnome-documents ]; + + services.dbus.packages = [ pkgs.gnome3.gnome-documents ]; + + services.gnome3.gnome-online-accounts.enable = true; + + services.gnome3.gnome-online-miners.enable = true; + + }; + +} diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix index 0d2aa729a33..d258614cc08 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome3.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix @@ -52,6 +52,7 @@ in { services.accounts-daemon.enable = true; services.gnome3.at-spi2-core.enable = true; services.gnome3.evolution-data-server.enable = true; + services.gnome3.gnome-documents.enable = mkDefault true; services.gnome3.gnome-keyring.enable = true; services.gnome3.gnome-online-accounts.enable = mkDefault true; services.gnome3.gnome-user-share.enable = mkDefault true; diff --git a/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix b/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix new file mode 100644 index 00000000000..b393bb43931 --- /dev/null +++ b/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix @@ -0,0 +1,54 @@ +{ stdenv, intltool, fetchurl, evince, gjs +, pkgconfig, gtk3, glib, hicolor_icon_theme +, makeWrapper, itstool, libxslt, webkitgtk +, gnome3, librsvg, gdk_pixbuf, libsoup, docbook_xsl +, gobjectIntrospection, json_glib +, gmp, desktop_file_utils }: + +stdenv.mkDerivation rec { + name = "gnome-documents-3.10.2"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-documents/3.10/${name}.tar.xz"; + sha256 = "2b7267c9c4e5767039632cb31877ed2e57f994b657e8863dd79af5287db45745"; + }; + + doCheck = true; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool libxslt + docbook_xsl desktop_file_utils + gnome3.gsettings_desktop_schemas makeWrapper gmp + gdk_pixbuf gnome3.gnome_icon_theme librsvg evince + libsoup webkitgtk gjs gobjectIntrospection gnome3.rest + gnome3.tracker gnome3.libgdata gnome3.gnome_online_accounts + gnome3.gnome_desktop gnome3.libzapojit json_glib + hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ]; + + enableParallelBuilding = true; + + preFixup = + let + libPath = stdenv.lib.makeLibraryPath + [ evince gtk3 gnome3.tracker gnome3.gnome_online_accounts ]; + in + '' + substituteInPlace $out/bin/gnome-documents --replace gapplication "${glib}/bin/gapplication" + wrapProgram "$out/bin/gnome-documents" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ + --prefix LD_LIBRARY_PATH ":" "${libPath}" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \ + --run "if [ -z \"\$XDG_CACHE_DIR\" ]; then XDG_CACHE_DIR=\$HOME/.cache; fi; if [ -w \"\$XDG_CACHE_DIR/..\" ]; then mkdir -p \"\$XDG_CACHE_DIR/gnome-documents\"; fi" + rm $out/share/icons/hicolor/icon-theme.cache + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Documents; + description = "Document manager application designed to work with GNOME 3"; + maintainers = with maintainers; [ lethalman ]; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix index 952fd15d6a1..34c663a779c 100644 --- a/pkgs/desktops/gnome-3/default.nix +++ b/pkgs/desktops/gnome-3/default.nix @@ -159,6 +159,8 @@ rec { glade = callPackage ./apps/glade { }; + gnome-documents = callPackage ./apps/gnome-documents { }; + gnome-music = callPackage ./apps/gnome-music { }; # scrollkeeper replacement