328 lines
7.1 KiB
Nix
328 lines
7.1 KiB
Nix
{
|
|
lib,
|
|
mylib,
|
|
...
|
|
}: {
|
|
enable = lib.mkEnableOption "TEMPLATE";
|
|
|
|
defaultTextEditor = lib.mkOption {
|
|
type = lib.types.str;
|
|
description = "Default application to open text files";
|
|
example = ''
|
|
"neovide.desktop"
|
|
'';
|
|
default = "neovide.desktop";
|
|
};
|
|
|
|
defaultFileBrowser = lib.mkOption {
|
|
type = lib.types.str;
|
|
description = "Default application for file browsing";
|
|
example = ''
|
|
"yazi.desktop"
|
|
'';
|
|
default = "yazi.desktop";
|
|
};
|
|
|
|
defaultWebBrowser = lib.mkOption {
|
|
type = lib.types.str;
|
|
description = "Default web browser";
|
|
example = ''
|
|
"firefox.desktop"
|
|
'';
|
|
default = "firefox.desktop";
|
|
};
|
|
|
|
defaultPdfViewer = lib.mkOption {
|
|
type = lib.types.str;
|
|
description = "Default application to open PDF files";
|
|
example = ''
|
|
"org.pwmt.zathura.desktop"
|
|
'';
|
|
default = "org.pwmt.zathura.desktop";
|
|
};
|
|
|
|
defaultImageViewer = lib.mkOption {
|
|
type = lib.types.str;
|
|
description = "Default application to open image files";
|
|
example = ''
|
|
"imv-dir.desktop"
|
|
'';
|
|
default = "imv-dir.desktop";
|
|
};
|
|
|
|
defaultAudioPlayer = lib.mkOption {
|
|
type = lib.types.str;
|
|
description = "Default application to play audio files";
|
|
example = ''
|
|
"vlc.desktop"
|
|
'';
|
|
default = "vlc.desktop";
|
|
};
|
|
|
|
defaultVideoPlayer = lib.mkOption {
|
|
type = lib.types.str;
|
|
description = "Default application to play video files";
|
|
example = ''
|
|
"vlc.desktop"
|
|
'';
|
|
default = "vlc.desktop";
|
|
};
|
|
|
|
textTypes = lib.mkOption {
|
|
type = lib.types.listOf lib.types.str;
|
|
description = "Mime types that should be associated with a text editor";
|
|
example = ''
|
|
[
|
|
"text/css"
|
|
"text/csv"
|
|
"text/javascript"
|
|
"text/plain"
|
|
"text/xml"
|
|
"application/json"
|
|
"application/ld+json"
|
|
"application/x-sh"
|
|
"application/xml"
|
|
]
|
|
'';
|
|
default = [
|
|
"text/css"
|
|
"text/csv"
|
|
"text/javascript"
|
|
"text/plain"
|
|
"text/xml"
|
|
"application/json"
|
|
"application/ld+json"
|
|
"application/x-sh"
|
|
"application/xml"
|
|
];
|
|
};
|
|
|
|
imageTypes = lib.mkOption {
|
|
type = lib.types.listOf lib.types.str;
|
|
description = "Mime types that should be associated with an image viewer";
|
|
example = ''
|
|
[
|
|
"image/apng"
|
|
"image/avif"
|
|
"image/bmp"
|
|
"image/gif"
|
|
"image/jpeg"
|
|
"image/png"
|
|
"image/svg+xml"
|
|
"image/tiff"
|
|
"image/webp"
|
|
]
|
|
'';
|
|
default = [
|
|
"image/apng"
|
|
"image/avif"
|
|
"image/bmp"
|
|
"image/gif"
|
|
"image/jpeg"
|
|
"image/png"
|
|
"image/svg+xml"
|
|
"image/tiff"
|
|
"image/webp"
|
|
];
|
|
};
|
|
|
|
audioTypes = lib.mkOption {
|
|
type = lib.types.listOf lib.types.str;
|
|
description = "Mime types that should be associated with an audio player";
|
|
example = ''
|
|
[
|
|
"audio/aac"
|
|
"audio/flac"
|
|
"audio/mp4"
|
|
"audio/mpeg"
|
|
"audio/ogg"
|
|
"audio/opus"
|
|
"audio/wav"
|
|
"audio/webm"
|
|
"audio/3gpp"
|
|
"audio/3gpp2"
|
|
]
|
|
'';
|
|
default = [
|
|
"audio/aac"
|
|
"audio/flac"
|
|
"audio/mp4"
|
|
"audio/mpeg"
|
|
"audio/ogg"
|
|
"audio/opus"
|
|
"audio/wav"
|
|
"audio/webm"
|
|
"audio/3gpp"
|
|
"audio/3gpp2"
|
|
];
|
|
};
|
|
|
|
videoTypes = lib.mkOption {
|
|
type = lib.types.listOf lib.types.str;
|
|
description = "Mime types that should be associated with a video player";
|
|
example = ''
|
|
[
|
|
"video/x-msvideo"
|
|
"video/mp4"
|
|
"video/mpeg"
|
|
"video/ogg"
|
|
"video/mp2t"
|
|
"video/webm"
|
|
"video/3gpp"
|
|
"video/3gpp2"
|
|
]
|
|
'';
|
|
default = [
|
|
"video/x-msvideo"
|
|
"video/mp4"
|
|
"video/mpeg"
|
|
"video/ogg"
|
|
"video/mp2t"
|
|
"video/webm"
|
|
"video/3gpp"
|
|
"video/3gpp2"
|
|
];
|
|
};
|
|
|
|
webTypes = lib.mkOption {
|
|
type = lib.types.listOf lib.types.str;
|
|
description = "Mime types that should be associated with a web browser";
|
|
example = ''
|
|
[
|
|
"text/uri-list"
|
|
"text/x-uri"
|
|
"text/html"
|
|
"application/xhtml+xml"
|
|
"x-scheme-handler/https"
|
|
]
|
|
'';
|
|
default = [
|
|
"text/uri-list"
|
|
"text/x-uri"
|
|
"text/html"
|
|
"application/xhtml+xml"
|
|
"x-scheme-handler/https"
|
|
];
|
|
};
|
|
|
|
removedTextTypes = lib.mkOption {
|
|
type = lib.types.listOf lib.types.str;
|
|
description = "Applications that shouldn't be used to open text files";
|
|
example = ''
|
|
[
|
|
"nvim.desktop"
|
|
]
|
|
'';
|
|
default = [
|
|
"nvim.desktop"
|
|
];
|
|
};
|
|
|
|
removedImageTypes = lib.mkOption {
|
|
type = lib.types.listOf lib.types.str;
|
|
description = "Applications that shouldn't be used to view image files";
|
|
example = ''
|
|
[
|
|
"imv.desktop"
|
|
"org.inkscape.Inkscape.desktop"
|
|
"chromium-browser.desktop"
|
|
"org.kde.krita.desktop"
|
|
"krita.desktop"
|
|
"krita_svg.desktop"
|
|
"krita_raw.desktop"
|
|
"krita_heif.desktop"
|
|
"krita_webp.desktop"
|
|
"krita_gif.desktop"
|
|
"krita_brush.desktop"
|
|
"krita_xcf.desktop"
|
|
"krita_jpeg.desktop"
|
|
"krita_spriter.desktop"
|
|
"krita_jxl.desktop"
|
|
"krita_ora.desktop"
|
|
"krita_csv.desktop"
|
|
"krita_tga.desktop"
|
|
"krita_psd.desktop"
|
|
"krita_png.desktop"
|
|
"krita_tiff.desktop"
|
|
"krita_exr.desktop"
|
|
"krita_qimageio.desktop"
|
|
"krita_pdf.desktop"
|
|
"krita_jp2.desktop"
|
|
"krita_heightmap.desktop"
|
|
"krita_kra.desktop"
|
|
"krita_krz.desktop"
|
|
]
|
|
'';
|
|
default = [
|
|
"imv.desktop"
|
|
"chromium-browser.desktop"
|
|
"org.kde.krita.desktop"
|
|
"krita.desktop"
|
|
"krita_svg.desktop"
|
|
"krita_raw.desktop"
|
|
"krita_heif.desktop"
|
|
"krita_webp.desktop"
|
|
"krita_gif.desktop"
|
|
"krita_brush.desktop"
|
|
"krita_xcf.desktop"
|
|
"krita_jpeg.desktop"
|
|
"krita_spriter.desktop"
|
|
"krita_jxl.desktop"
|
|
"krita_ora.desktop"
|
|
"krita_csv.desktop"
|
|
"krita_tga.desktop"
|
|
"krita_psd.desktop"
|
|
"krita_png.desktop"
|
|
"krita_tiff.desktop"
|
|
"krita_exr.desktop"
|
|
"krita_qimageio.desktop"
|
|
"krita_pdf.desktop"
|
|
"krita_jp2.desktop"
|
|
"krita_heightmap.desktop"
|
|
"krita_kra.desktop"
|
|
"krita_krz.desktop"
|
|
];
|
|
};
|
|
|
|
removedAudioTypes = lib.mkOption {
|
|
type = lib.types.listOf lib.types.str;
|
|
description = "Applications that shouldn't be used to play audio files";
|
|
example = ''
|
|
[
|
|
"mpv.desktop"
|
|
]
|
|
'';
|
|
default = [
|
|
"mpv.desktop"
|
|
];
|
|
};
|
|
|
|
removedVideoTypes = lib.mkOption {
|
|
type = lib.types.listOf lib.types.str;
|
|
description = "Applications that shouldn't be used to play video files";
|
|
example = ''
|
|
[
|
|
"mpv.desktop"
|
|
]
|
|
'';
|
|
default = [
|
|
"mpv.desktop"
|
|
];
|
|
};
|
|
|
|
removedWebTypes = lib.mkOption {
|
|
type = lib.types.listOf lib.types.str;
|
|
description = "Web browsers that shouldn't be used for web types";
|
|
example = ''
|
|
[
|
|
"chromium-browser.desktop"
|
|
"com.google.Chrome.desktop"
|
|
]
|
|
'';
|
|
default = [
|
|
"chromium-browser.desktop"
|
|
"com.google.Chrome.desktop"
|
|
];
|
|
};
|
|
}
|