142 lines
4.9 KiB
Nix
142 lines
4.9 KiB
Nix
{ pkgs, config, lib, ... }:
|
|
let
|
|
cfg = config.grimmShared;
|
|
browsers = [
|
|
"firefox-beta.desktop"
|
|
"firefox.desktop"
|
|
];
|
|
text_editors = [
|
|
"nvim.desktop"
|
|
"geany.desktop"
|
|
"imhex.desktop"
|
|
];
|
|
image_viewers = [
|
|
"org.nomacs.ImageLounge.desktop"
|
|
"org.kde.krita.desktop"
|
|
"draw.desktop"
|
|
];
|
|
audio_players = [
|
|
"vlc.desktop"
|
|
];
|
|
video_viewers = [
|
|
"vlc.desktop"
|
|
];
|
|
document_viewers = [
|
|
"org.pwmt.zathura-pdf-mupdf.desktop"
|
|
"com.github.jeromerobert.pdfarranger.desktop"
|
|
] ++ browsers;
|
|
cad = [
|
|
"org.freecadweb.FreeCAD.desktop"
|
|
"PrusaSlicer.desktop"
|
|
"openscad.desktop"
|
|
"blender.desktop"
|
|
];
|
|
tex_editors = [ ] ++ text_editors;
|
|
in
|
|
{
|
|
config = with cfg; lib.mkIf (enable && portals && graphical) {
|
|
environment.systemPackages = with pkgs; [
|
|
deskwhich
|
|
|
|
zathura
|
|
alacritty
|
|
imhex
|
|
libreoffice-qt
|
|
filezilla
|
|
obsidian
|
|
nomacs
|
|
pdfarranger
|
|
geany
|
|
krita
|
|
weasis
|
|
kicad
|
|
prusa-slicer
|
|
freecad
|
|
openscad
|
|
vlc
|
|
blender
|
|
thunderbird
|
|
xdg-terminal-exec
|
|
xdg-utils
|
|
];
|
|
|
|
xdg.terminal-exec = {
|
|
enable = true;
|
|
settings = {
|
|
default = [ "Alacritty.desktop" "kitty.desktop" ];
|
|
};
|
|
};
|
|
|
|
xdg.mime.enable = true;
|
|
xdg.mime.addedAssociations = {
|
|
"application/java-vm" = [
|
|
"idea-community.desktop"
|
|
"imhex.desktop"
|
|
];
|
|
"application/json" = text_editors ++ [
|
|
"firefox-beta.desktop"
|
|
];
|
|
"application/mp4" = video_viewers;
|
|
"application/ogg" = audio_players;
|
|
"application/octet-stream" = "imhex.desktop";
|
|
"application/pdf" = document_viewers;
|
|
"application/rss+xml" = text_editors;
|
|
"application/x-chess-pgn" = [ ] ++ text_editors; # fixme
|
|
"application/x-krita" = "org.kde.krita.desktop";
|
|
"application/x-latex" = tex_editors;
|
|
"application/x-tex" = tex_editors;
|
|
"application/x-texinfo" = tex_editors;
|
|
"application/xml" = text_editors;
|
|
"image/svg+xml" = image_viewers ++ browsers ++ text_editors;
|
|
"image/*" = image_viewers;
|
|
"image/vnd.dwg" = cad;
|
|
"model/*" = cad;
|
|
"gcode" = [
|
|
"PrusaGcodeviewer.desktop"
|
|
"PrusaSlicer.desktop"
|
|
];
|
|
"audio/*" = audio_players;
|
|
"text/*" = text_editors;
|
|
"text/plain" = text_editors;
|
|
"text/markdown" = [ "obsidian.desktop" ] ++ text_editors;
|
|
"text/csv" = [ "calc.desktop" ] ++ text_editors;
|
|
"text/html" = browsers ++ text_editors;
|
|
"text/x-python" = [ "pycharm-community.desktop" ] ++ text_editors;
|
|
"text/x-c" = [ "clion.desktop" ] ++ text_editors;
|
|
"text/x-java-source" = [ "idea-community.desktop" ] ++ text_editors;
|
|
"video/*" = video_viewers;
|
|
"inode/directory" = [
|
|
"ranger.desktop"
|
|
"dolphin.desktop"
|
|
];
|
|
"x-scheme-handler/mailto" = "thunderbird.desktop";
|
|
|
|
"application/vnd.oasis.opendocument.chart" = "calc.desktop";
|
|
"application/vnd.oasis.opendocument.chart-template" = "calc.desktop";
|
|
"application/vnd.oasis.opendocument.database" = "base.desktop";
|
|
"application/vnd.oasis.opendocument.formula" = "math.desktop";
|
|
"application/vnd.oasis.opendocument.formula-template" = "math.desktop";
|
|
"application/vnd.oasis.opendocument.graphics" = "draw.desktop";
|
|
"application/vnd.oasis.opendocument.graphics-template" = "draw.desktop";
|
|
"application/vnd.oasis.opendocument.image" = "draw.desktop";
|
|
"application/vnd.oasis.opendocument.image-template" = "draw.desktop";
|
|
"application/vnd.oasis.opendocument.presentation" = "impress.desktop";
|
|
"application/vnd.oasis.opendocument.presentation-template" = "impress.desktop";
|
|
"application/vnd.oasis.opendocument.spreadsheet" = "calc.desktop";
|
|
"application/vnd.oasis.opendocument.spreadsheet-template" = "calc.desktop";
|
|
"application/vnd.oasis.opendocument.text" = "writer.desktop";
|
|
"application/vnd.oasis.opendocument.text-master" = "writer.desktop";
|
|
"application/vnd.oasis.opendocument.text-template" = "writer.desktop";
|
|
"application/vnd.oasis.opendocument.text-web" = "writer.desktop";
|
|
"application/vnd.openxmlformats-officedocument.presentationml.presentation" = "impress.desktop";
|
|
"application/vnd.openxmlformats-officedocument.presentationml.slide" = "impress.desktop";
|
|
"application/vnd.openxmlformats-officedocument.presentationml.slideshow" = "impress.desktop";
|
|
"application/vnd.openxmlformats-officedocument.presentationml.template" = "impress.desktop";
|
|
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" = "calc.desktop";
|
|
"application/vnd.openxmlformats-officedocument.spreadsheetml.template" = "calc.desktop";
|
|
"application/vnd.openxmlformats-officedocument.wordprocessingml.document" = "writer.desktop";
|
|
"application/vnd.openxmlformats-officedocument.wordprocessingml.template" = "writer.desktop";
|
|
};
|
|
};
|
|
}
|