mailcap.nix
changeset 5 a844e4f15b4e
child 6 94969af29f58
equal deleted inserted replaced
4:956d340b23d8 5:a844e4f15b4e
       
     1 { pkgs, ... }:
       
     2 
       
     3 let
       
     4 
       
     5   entries = [
       
     6     (mkItem "${pkgs.libreoffice}/bin/soffice" [
       
     7       "application/vnd.sun.xml.writer"
       
     8       "application/vnd.sun.xml.writer.global"
       
     9       "application/vnd.stardivision.writer"
       
    10       "application/vnd.stardivision.writer-global"
       
    11       "application/x-starwriter"
       
    12       "application/vnd.sun.xml.writer.template"
       
    13       "application/vnd.sun.xml.calc"
       
    14       "application/vnd.stardivision.calc"
       
    15       "application/x-starcalc"
       
    16       "application/vnd.sun.xml.calc.template"
       
    17       "application/excel"
       
    18       "application/msexcel"
       
    19       "application/vnd.ms-excel"
       
    20       "application/x-msexcel"
       
    21       "application/vnd.sun.xml.impress"
       
    22       "application/vnd.stardivision.impress"
       
    23       "application/vnd.stardivision.impress-packed"
       
    24       "application/x-starimpress"
       
    25       "application/vnd.sun.xml.impress.template"
       
    26       "application/powerpoint"
       
    27       "application/mspowerpoint"
       
    28       "application/vnd.ms-powerpoint"
       
    29       "application/x-mspowerpoint"
       
    30       "application/vnd.sun.xml.draw"
       
    31       "application/vnd.stardivision.draw"
       
    32       "application/x-stardraw"
       
    33       "application/vnd.sun.xml.draw.template"
       
    34       "application/vnd.sun.xml.math"
       
    35       "application/vnd.stardivision.math"
       
    36       "application/x-starmath"
       
    37     ])
       
    38     (mkItem "less" [
       
    39       "application/x-sh"
       
    40       "text/*"
       
    41     ])
       
    42     (mkItem "${pkgs.mupdf}/bin/mupdf-x11" [ "application/pdf" ])
       
    43     (mkItem "${pkgs.feh}/bin/feh" [ "image/*" ])
       
    44     (mkItem "${pkgs.antiword}/bin/antiword" [
       
    45       "application/msword"
       
    46       "application/octet-stream"
       
    47     ])
       
    48     (mkItem "${pkgs.lynx}/bin/lynx -dump -force-html" [ "text/html" ])
       
    49 
       
    50   ];
       
    51 
       
    52   mkItem = p: t: {
       
    53     prg = p; types = t;
       
    54   };
       
    55 
       
    56   mkPrg = { prg, types }:
       
    57     builtins.concatStringsSep "\n" (map (v: "${v};${prg} %s") types);
       
    58 
       
    59 in {
       
    60   home.file.".mailcap".text = ''
       
    61     ${builtins.concatStringsSep "\n" (map mkPrg entries)}
       
    62   '';
       
    63 }