From 2b288119570214fc4ff76220ac34041578e68111 Mon Sep 17 00:00:00 2001 From: cmfwyp Date: Mon, 8 Aug 2016 23:40:07 -0400 Subject: [PATCH] calibre: add desktop entry files --- pkgs/applications/misc/calibre/default.nix | 83 +++++++++++++++++++++- 1 file changed, 80 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix index 871d153e9617..966df509c92d 100644 --- a/pkgs/applications/misc/calibre/default.nix +++ b/pkgs/applications/misc/calibre/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, python, pyqt5, sip_4_16, poppler_utils, pkgconfig, libpng , imagemagick, libjpeg, fontconfig, podofo, qtbase, qmakeHook, icu, sqlite , makeWrapper, unrarSupport ? false, chmlib, pythonPackages, xz, libusb1, libmtp -, xdg_utils +, xdg_utils, makeDesktopItem }: stdenv.mkDerivation rec { @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { name = "calibre-${version}"; src = fetchurl { - url = "http://download.calibre-ebook.com/${version}/${name}.tar.xz"; + url = "https://download.calibre-ebook.com/${version}/${name}.tar.xz"; sha256 = "0npqvfjqj1vwa7nmnsyd4d30z40brydw275ldf1jankrp6dr9dyd"; }; @@ -67,11 +67,88 @@ stdenv.mkDerivation rec { wrapProgram $a --prefix PYTHONPATH : $PYTHONPATH \ --prefix PATH : ${poppler_utils.out}/bin done + + # Replace @out@ by the output path. + mkdir -p $out/share/applications/ + cp {$calibreDesktopItem,$ebookEditDesktopItem,$ebookViewerDesktopItem}/share/applications/* $out/share/applications/ + for entry in $out/share/applications/*.desktop; do + substituteAllInPlace $entry + done ''; + calibreDesktopItem = makeDesktopItem { + name = "calibre"; + desktopName = "calibre"; + exec = "@out@/bin/calibre --detach %F"; + genericName = "E-book library management"; + icon = "@out@/share/calibre/images/library.png"; + comment = "Manage, convert, edit, and read e-books"; + mimeType = stdenv.lib.concatStringsSep ";" [ + "application/x-mobipocket-subscription" + "application/vnd.openxmlformats-officedocument.wordprocessingml.document" + "text/html" + "application/x-cbc" + "application/ereader" + "application/oebps-package+xml" + "image/vnd.djvu" + "application/x-sony-bbeb" + "application/vnd.ms-word.document.macroenabled.12" + "text/rtf" + "text/x-markdown" + "application/pdf" + "application/x-cbz" + "application/x-mobipocket-ebook" + "application/x-cbr" + "application/x-mobi8-ebook" + "text/fb2+xml" + "application/vnd.oasis.opendocument.text" + "application/epub+zip" + "text/plain" + "application/xhtml+xml" + ]; + categories = "Office"; + extraEntries = '' + Actions=ebook-edit ebook-viewer + + [Desktop Action ebook-edit] + Name=Edit E-book + Icon=@out@/share/calibre/images/tweak.png + Exec=@out@/bin/ebook-edit --detach %F + + [Desktop Action ebook-viewer] + Name=E-book Viewer + Icon=@out@/share/calibre/images/viewer.png + Exec=@out@/bin/ebook-viewer --detach %F + ''; + }; + + ebookEditDesktopItem = makeDesktopItem { + name = "calibre-edit-ebook"; + desktopName = "Edit E-book"; + genericName = "E-book Editor"; + comment = "Edit e-books"; + icon = "@out@/share/calibre/images/tweak.png"; + exec = "@out@/bin/ebook-edit --detach %F"; + categories = "Office;Publishing"; + mimeType = "application/epub+zip"; + extraEntries = "NoDisplay=true"; + }; + + ebookViewerDesktopItem = makeDesktopItem { + name = "calibre-ebook-viewer"; + desktopName = "E-book Viewer"; + genericName = "E-book Viewer"; + comment = "Read e-books in all the major formats"; + icon = "@out@/share/calibre/images/viewer.png"; + exec = "@out@/bin/ebook-viewer --detach %F"; + categories = "Office;Viewer"; + mimeType = "application/epub+zip"; + extraEntries = "NoDisplay=true"; + }; + meta = with stdenv.lib; { description = "Comprehensive e-book software"; - homepage = http://calibre-ebook.com; + homepage = https://calibre-ebook.com; license = with licenses; if unrarSupport then unfreeRedistributable else gpl3; maintainers = with maintainers; [ viric domenkozar pSub AndersonTorres ]; platforms = platforms.linux;