summary refs log tree commit diff
diff options
context:
space:
mode:
authorPascal Wittmann <PascalWittmann@gmx.net>2016-08-09 08:56:46 +0200
committerGitHub <noreply@github.com>2016-08-09 08:56:46 +0200
commitcb54b19c4d47287c8e35d793e8265af7ebb18b69 (patch)
tree472e49ce88a36993af2ac399a9cd6861588e9211
parentc31f05e063bdb3152f4cdd6ef2e18ee0b9ec0532 (diff)
parent2b288119570214fc4ff76220ac34041578e68111 (diff)
downloadnixlib-cb54b19c4d47287c8e35d793e8265af7ebb18b69.tar
nixlib-cb54b19c4d47287c8e35d793e8265af7ebb18b69.tar.gz
nixlib-cb54b19c4d47287c8e35d793e8265af7ebb18b69.tar.bz2
nixlib-cb54b19c4d47287c8e35d793e8265af7ebb18b69.tar.lz
nixlib-cb54b19c4d47287c8e35d793e8265af7ebb18b69.tar.xz
nixlib-cb54b19c4d47287c8e35d793e8265af7ebb18b69.tar.zst
nixlib-cb54b19c4d47287c8e35d793e8265af7ebb18b69.zip
Merge pull request #17608 from cmfwyp/calibre-desktop-entry
calibre: add desktop entry files
-rw-r--r--pkgs/applications/misc/calibre/default.nix83
1 files 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;