Fix KDE MIME defaults in xmonad session
This commit is contained in:
@@ -6,33 +6,6 @@
|
||||
...
|
||||
}: let
|
||||
mimeMap = desktopId: mimeTypes: lib.genAttrs mimeTypes (_: [desktopId]);
|
||||
in {
|
||||
# Automatic garbage collection of old home-manager generations
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 7d";
|
||||
};
|
||||
|
||||
xdg.configFile."greenclip.toml".text = ''
|
||||
[greenclip]
|
||||
history_file = "~/.cache/greenclip.history"
|
||||
max_history_length = 50
|
||||
max_selection_size_bytes = 0
|
||||
trim_space_from_selection = true
|
||||
use_primary_selection_as_input = false
|
||||
blacklisted_applications = []
|
||||
enable_image_support = true
|
||||
image_cache_directory = "~/.cache/greenclip"
|
||||
static_history = []
|
||||
'';
|
||||
|
||||
xdg.configFile."zellij/config.kdl".source =
|
||||
config.lib.file.mkOutOfStoreSymlink
|
||||
"${config.home.homeDirectory}/dotfiles/dotfiles/config/zellij/config.kdl";
|
||||
|
||||
xdg.mimeApps = lib.mkIf nixos.config.myModules.desktop.enable (
|
||||
let
|
||||
browser = "google-chrome.desktop";
|
||||
imageViewer = "org.kde.gwenview.desktop";
|
||||
pdfViewer = "okularApplication_pdf.desktop";
|
||||
@@ -47,7 +20,6 @@ in {
|
||||
wordProcessor = "writer.desktop";
|
||||
spreadsheet = "calc.desktop";
|
||||
presentation = "impress.desktop";
|
||||
|
||||
defaultApplications =
|
||||
(mimeMap imageViewer [
|
||||
"image/avif"
|
||||
@@ -163,12 +135,82 @@ in {
|
||||
"x-scheme-handler/element" = ["element-desktop.desktop"];
|
||||
"x-scheme-handler/magnet" = ["transmission-gtk.desktop"];
|
||||
};
|
||||
mimeAppsListText = let
|
||||
formatApplications = applications:
|
||||
lib.concatStringsSep "\n" (
|
||||
lib.mapAttrsToList (
|
||||
mimeType: desktopIds: "${mimeType}=${lib.concatStringsSep ";" desktopIds};"
|
||||
)
|
||||
applications
|
||||
);
|
||||
in ''
|
||||
[Added Associations]
|
||||
${formatApplications defaultApplications}
|
||||
|
||||
[Default Applications]
|
||||
${formatApplications defaultApplications}
|
||||
|
||||
[Removed Associations]
|
||||
'';
|
||||
in {
|
||||
# Automatic garbage collection of old home-manager generations
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 7d";
|
||||
};
|
||||
|
||||
xdg.configFile."greenclip.toml".text = ''
|
||||
[greenclip]
|
||||
history_file = "~/.cache/greenclip.history"
|
||||
max_history_length = 50
|
||||
max_selection_size_bytes = 0
|
||||
trim_space_from_selection = true
|
||||
use_primary_selection_as_input = false
|
||||
blacklisted_applications = []
|
||||
enable_image_support = true
|
||||
image_cache_directory = "~/.cache/greenclip"
|
||||
static_history = []
|
||||
'';
|
||||
|
||||
|
||||
xdg.configFile."zellij/config.kdl".source =
|
||||
config.lib.file.mkOutOfStoreSymlink
|
||||
"${config.home.homeDirectory}/dotfiles/dotfiles/config/zellij/config.kdl";
|
||||
|
||||
xdg.configFile."menus/applications.menu" = lib.mkIf nixos.config.myModules.desktop.enable {
|
||||
source = "${pkgs.kdePackages.plasma-workspace}/etc/xdg/menus/plasma-applications.menu";
|
||||
};
|
||||
|
||||
xdg.configFile."kde-mimeapps.list" = lib.mkIf nixos.config.myModules.desktop.enable {
|
||||
text = mimeAppsListText;
|
||||
};
|
||||
|
||||
xdg.configFile."none+xmonad-mimeapps.list" = lib.mkIf nixos.config.myModules.desktop.enable {
|
||||
text = mimeAppsListText;
|
||||
};
|
||||
|
||||
xdg.configFile."xmonad-mimeapps.list" = lib.mkIf nixos.config.myModules.desktop.enable {
|
||||
text = mimeAppsListText;
|
||||
};
|
||||
|
||||
xdg.configFile."hyprland-mimeapps.list" = lib.mkIf nixos.config.myModules.desktop.enable {
|
||||
text = mimeAppsListText;
|
||||
};
|
||||
|
||||
xdg.dataFile."mimeapps.list" = lib.mkIf nixos.config.myModules.desktop.enable {
|
||||
text = mimeAppsListText;
|
||||
};
|
||||
|
||||
xdg.dataFile."applications/kde-mimeapps.list" = lib.mkIf nixos.config.myModules.desktop.enable {
|
||||
text = mimeAppsListText;
|
||||
};
|
||||
|
||||
xdg.mimeApps = lib.mkIf nixos.config.myModules.desktop.enable {
|
||||
enable = true;
|
||||
associations.added = defaultApplications;
|
||||
inherit defaultApplications;
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
home.activation.refreshChromeDesktopMimeCache = lib.hm.dag.entryAfter ["writeBoundary"] ''
|
||||
applications_dir="$HOME/.local/share/applications"
|
||||
@@ -180,6 +222,7 @@ in {
|
||||
do
|
||||
if [ -f "$desktop_file" ]; then
|
||||
${pkgs.gnused}/bin/sed -i \
|
||||
-e 's,application/pdf;,,g' \
|
||||
-e 's,image/gif;,,g' \
|
||||
-e 's,image/jpeg;,,g' \
|
||||
-e 's,image/png;,,g' \
|
||||
@@ -188,10 +231,34 @@ in {
|
||||
fi
|
||||
done
|
||||
|
||||
for desktop_file in "$applications_dir"/okular*.desktop "$applications_dir"/vlc*.desktop; do
|
||||
if [ -f "$desktop_file" ]; then
|
||||
${pkgs.gnused}/bin/sed -i \
|
||||
-e 's,image/avif;,,g' \
|
||||
-e 's,image/bmp;,,g' \
|
||||
-e 's,image/gif;,,g' \
|
||||
-e 's,image/heic;,,g' \
|
||||
-e 's,image/heif;,,g' \
|
||||
-e 's,image/jpeg;,,g' \
|
||||
-e 's,image/jxl;,,g' \
|
||||
-e 's,image/png;,,g' \
|
||||
-e 's,image/svg+xml;,,g' \
|
||||
-e 's,image/svg+xml-compressed;,,g' \
|
||||
-e 's,image/tiff;,,g' \
|
||||
-e 's,image/vnd.microsoft.icon;,,g' \
|
||||
-e 's,image/webp;,,g' \
|
||||
"$desktop_file"
|
||||
fi
|
||||
done
|
||||
|
||||
${pkgs.desktop-file-utils}/bin/update-desktop-database "$applications_dir" >/dev/null 2>&1 || true
|
||||
fi
|
||||
'';
|
||||
|
||||
home.activation.refreshKdeServiceCache = lib.hm.dag.entryAfter ["refreshChromeDesktopMimeCache"] ''
|
||||
${pkgs.kdePackages.kservice}/bin/kbuildsycoca6 --noincremental >/dev/null 2>&1 || true
|
||||
'';
|
||||
|
||||
xsession = {
|
||||
enable = true;
|
||||
preferStatusNotifierItems = true;
|
||||
|
||||
@@ -184,16 +184,11 @@
|
||||
type = "Application";
|
||||
categories = [ "Network" "WebBrowser" ];
|
||||
mimeType = [
|
||||
"application/pdf"
|
||||
"application/rdf+xml"
|
||||
"application/rss+xml"
|
||||
"application/xhtml+xml"
|
||||
"application/xhtml_xml"
|
||||
"application/xml"
|
||||
"image/gif"
|
||||
"image/jpeg"
|
||||
"image/png"
|
||||
"image/webp"
|
||||
"text/html"
|
||||
"text/xml"
|
||||
"x-scheme-handler/http"
|
||||
|
||||
Reference in New Issue
Block a user