mailcap.nix
author Tomas Zeman <tomas@functionals.cz>
Fri, 14 Jan 2022 15:02:55 +0100
changeset 22 2162f44d9a3a
parent 10 3466d7470902
permissions -rw-r--r--
home: qpdf (decrypt mBank files)

{ pkgs, ... }:

let

  entries = [
    (mkItem "${pkgs.libreoffice}/bin/soffice" [
      "application/excel"
      "application/msexcel"
      "application/mspowerpoint"
      "application/powerpoint"
      "application/vnd.oasis.opendocument.text"
      "application/vnd.ms-excel"
      "application/vnd.ms-powerpoint"
      "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
      "application/vnd.stardivision.calc"
      "application/vnd.stardivision.draw"
      "application/vnd.stardivision.impress"
      "application/vnd.stardivision.impress-packed"
      "application/vnd.stardivision.math"
      "application/vnd.stardivision.writer"
      "application/vnd.stardivision.writer-global"
      "application/vnd.sun.xml.calc"
      "application/vnd.sun.xml.calc.template"
      "application/vnd.sun.xml.draw"
      "application/vnd.sun.xml.draw.template"
      "application/vnd.sun.xml.impress"
      "application/vnd.sun.xml.impress.template"
      "application/vnd.sun.xml.math"
      "application/vnd.sun.xml.writer"
      "application/vnd.sun.xml.writer.global"
      "application/vnd.sun.xml.writer.template"
      "application/x-msexcel"
      "application/x-mspowerpoint"
      "application/x-starcalc"
      "application/x-stardraw"
      "application/x-starimpress"
      "application/x-starmath"
      "application/x-starwriter"
    ])
    (mkItem "less" [
      "application/x-sh"
      "text/*"
    ])
    (mkItem "${pkgs.mupdf}/bin/mupdf-x11" [ "application/pdf" ])
    (mkItem "${pkgs.feh}/bin/feh" [ "image/*" ])
    (mkItem "${pkgs.antiword}/bin/antiword" [
      "application/msword"
      "application/octet-stream"
    ])
    (mkItem "${pkgs.lynx}/bin/lynx -dump -force-html" [ "text/html" ])

  ];

  mkItem = p: t: {
    prg = p; types = t;
  };

  mkPrg = { prg, types }:
    builtins.concatStringsSep "\n" (map (v: "${v};${prg} %s") types);

in {
  home.file.".mailcap".text = ''
    ${builtins.concatStringsSep "\n" (map mkPrg entries)}
  '';
}