1
1
Fork 0
nixos/options/custom/programs/onlyoffice.nix

62 lines
4 KiB
Nix
Raw Normal View History

{
config,
lib,
pkgs,
...
}:
with lib; let
cfg = config.custom.programs.onlyoffice;
onlyoffice-desktopeditors = "${getExe pkgs.onlyoffice-desktopeditors} --system-title-bar --xdg-desktop-portal";
in {
options.custom.programs.onlyoffice = {
enable = mkOption {default = false;};
};
config = mkIf cfg.enable {
# https://github.com/ONLYOFFICE/DesktopEditors
environment.systemPackages = [pkgs.onlyoffice-desktopeditors];
home-manager.sharedModules = [
{
xdg.desktopEntries = {
# https://github.com/ONLYOFFICE/desktop-apps/blob/master/win-linux/package/linux/common/desktopeditors.desktop.m4
onlyoffice-desktopeditors = {
name = "ONLYOFFICE Desktop Editors";
genericName = "Document Editor";
comment = "Edit office documents";
type = "Application";
exec = "${onlyoffice-desktopeditors} %U";
terminal = false;
icon = "onlyoffice-desktopeditors";
categories = ["Office" "WordProcessor" "Spreadsheet" "Presentation"];
mimeType = ["application/vnd.oasis.opendocument.text" "application/vnd.oasis.opendocument.text-template" "application/vnd.oasis.opendocument.text-web" "application/vnd.oasis.opendocument.text-master" "application/vnd.sun.xml.writer" "application/vnd.sun.xml.writer.template" "application/vnd.sun.xml.writer.global" "application/msword" "application/vnd.ms-word" "application/x-doc" "application/rtf" "text/rtf" "application/vnd.wordperfect" "application/wordperfect" "application/vnd.openxmlformats-officedocument.wordprocessingml.document" "application/vnd.ms-word.document.macroenabled.12" "application/vnd.openxmlformats-officedocument.wordprocessingml.template" "application/vnd.ms-word.template.macroenabled.12" "application/vnd.oasis.opendocument.spreadsheet" "application/vnd.oasis.opendocument.spreadsheet-template" "application/vnd.sun.xml.calc" "application/vnd.sun.xml.calc.template" "application/msexcel" "application/vnd.ms-excel" "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" "application/vnd.ms-excel.sheet.macroenabled.12" "application/vnd.openxmlformats-officedocument.spreadsheetml.template" "application/vnd.ms-excel.template.macroenabled.12" "application/vnd.ms-excel.sheet.binary.macroenabled.12" "text/csv" "text/spreadsheet" "application/csv" "application/excel" "application/x-excel" "application/x-msexcel" "application/x-ms-excel" "text/comma-separated-values" "text/tab-separated-values" "text/x-comma-separated-values" "text/x-csv" "application/vnd.oasis.opendocument.presentation" "application/vnd.oasis.opendocument.presentation-template" "application/vnd.sun.xml.impress" "application/vnd.sun.xml.impress.template" "application/mspowerpoint" "application/vnd.ms-powerpoint" "application/vnd.openxmlformats-officedocument.presentationml.presentation" "application/vnd.ms-powerpoint.presentation.macroenabled.12" "application/vnd.openxmlformats-officedocument.presentationml.template" "application/vnd.ms-powerpoint.template.macroenabled.12" "application/vnd.openxmlformats-officedocument.presentationml.slide" "application/vnd.openxmlformats-officedocument.presentationml.slideshow" "application/vnd.ms-powerpoint.slideshow.macroEnabled.12" "x-scheme-handler/oo-office" "text/docxf" "text/oform"];
actions = {
NewDocument = {
name = "New document";
exec = "${onlyoffice-desktopeditors} --new:word";
};
NewSpreadsheet = {
name = "New spreadsheet";
exec = "${onlyoffice-desktopeditors} --new:cell";
};
NewPresentation = {
name = "New presentation";
exec = "${onlyoffice-desktopeditors} --new:slide";
};
NewForm = {
name = "New PDF form";
exec = "${onlyoffice-desktopeditors} --new:form";
};
};
};
};
}
];
};
}