mailcap.nix
author Tomas Zeman <tomas@functionals.cz>
Sun, 01 Dec 2024 14:29:44 +0100
changeset 29 abf8f5d6e793
parent 10 3466d7470902
permissions -rw-r--r--
Added tag nixos-24.05 for changeset 10558c39473d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
     1
{ pkgs, ... }:
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
     2
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
     3
let
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
     4
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
     5
  entries = [
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
     6
    (mkItem "${pkgs.libreoffice}/bin/soffice" [
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
     7
      "application/excel"
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
     8
      "application/msexcel"
6
94969af29f58 mailcap: sorted items, added officedocument format
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
     9
      "application/mspowerpoint"
94969af29f58 mailcap: sorted items, added officedocument format
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    10
      "application/powerpoint"
10
3466d7470902 mailcap: opendocument
Tomas Zeman <tomas@functionals.cz>
parents: 6
diff changeset
    11
      "application/vnd.oasis.opendocument.text"
5
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    12
      "application/vnd.ms-excel"
6
94969af29f58 mailcap: sorted items, added officedocument format
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    13
      "application/vnd.ms-powerpoint"
94969af29f58 mailcap: sorted items, added officedocument format
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    14
      "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
94969af29f58 mailcap: sorted items, added officedocument format
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    15
      "application/vnd.stardivision.calc"
94969af29f58 mailcap: sorted items, added officedocument format
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    16
      "application/vnd.stardivision.draw"
5
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    17
      "application/vnd.stardivision.impress"
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    18
      "application/vnd.stardivision.impress-packed"
6
94969af29f58 mailcap: sorted items, added officedocument format
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    19
      "application/vnd.stardivision.math"
94969af29f58 mailcap: sorted items, added officedocument format
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    20
      "application/vnd.stardivision.writer"
94969af29f58 mailcap: sorted items, added officedocument format
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    21
      "application/vnd.stardivision.writer-global"
94969af29f58 mailcap: sorted items, added officedocument format
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    22
      "application/vnd.sun.xml.calc"
94969af29f58 mailcap: sorted items, added officedocument format
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    23
      "application/vnd.sun.xml.calc.template"
5
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    24
      "application/vnd.sun.xml.draw"
6
94969af29f58 mailcap: sorted items, added officedocument format
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    25
      "application/vnd.sun.xml.draw.template"
94969af29f58 mailcap: sorted items, added officedocument format
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    26
      "application/vnd.sun.xml.impress"
94969af29f58 mailcap: sorted items, added officedocument format
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    27
      "application/vnd.sun.xml.impress.template"
94969af29f58 mailcap: sorted items, added officedocument format
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    28
      "application/vnd.sun.xml.math"
94969af29f58 mailcap: sorted items, added officedocument format
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    29
      "application/vnd.sun.xml.writer"
94969af29f58 mailcap: sorted items, added officedocument format
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    30
      "application/vnd.sun.xml.writer.global"
94969af29f58 mailcap: sorted items, added officedocument format
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    31
      "application/vnd.sun.xml.writer.template"
94969af29f58 mailcap: sorted items, added officedocument format
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    32
      "application/x-msexcel"
94969af29f58 mailcap: sorted items, added officedocument format
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    33
      "application/x-mspowerpoint"
94969af29f58 mailcap: sorted items, added officedocument format
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    34
      "application/x-starcalc"
5
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    35
      "application/x-stardraw"
6
94969af29f58 mailcap: sorted items, added officedocument format
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    36
      "application/x-starimpress"
5
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    37
      "application/x-starmath"
6
94969af29f58 mailcap: sorted items, added officedocument format
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    38
      "application/x-starwriter"
5
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    39
    ])
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    40
    (mkItem "less" [
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    41
      "application/x-sh"
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    42
      "text/*"
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    43
    ])
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    44
    (mkItem "${pkgs.mupdf}/bin/mupdf-x11" [ "application/pdf" ])
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    45
    (mkItem "${pkgs.feh}/bin/feh" [ "image/*" ])
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    46
    (mkItem "${pkgs.antiword}/bin/antiword" [
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    47
      "application/msword"
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    48
      "application/octet-stream"
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    49
    ])
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    50
    (mkItem "${pkgs.lynx}/bin/lynx -dump -force-html" [ "text/html" ])
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    51
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    52
  ];
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    53
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    54
  mkItem = p: t: {
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    55
    prg = p; types = t;
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    56
  };
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    57
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    58
  mkPrg = { prg, types }:
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    59
    builtins.concatStringsSep "\n" (map (v: "${v};${prg} %s") types);
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    60
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    61
in {
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    62
  home.file.".mailcap".text = ''
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    63
    ${builtins.concatStringsSep "\n" (map mkPrg entries)}
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    64
  '';
a844e4f15b4e mailcap
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    65
}