First commit

This commit is contained in:
2026-02-22 17:28:02 +01:00
parent 7a70268785
commit 6bacf1878e
9011 changed files with 114470 additions and 0 deletions
@@ -0,0 +1,67 @@
{ config, lib, pkgs, ... }:
let
moduleName = "hm-default-apps";
in
{
# Ensure update-mime-database is available
home.packages = with pkgs; [
shared-mime-info
];
# Teach the MIME DB that *.nix files are text/x-nix
xdg.dataFile."mime/packages/custom-text-types.xml".text = ''
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="text/x-nix">
<comment>Nix expression</comment>
<sub-class-of type="text/plain"/>
<glob pattern="*.nix"/>
</mime-type>
<mime-type type="text/x-ini">
<comment>Configuration file</comment>
<sub-class-of type="text/plain"/>
<glob pattern="*.conf"/>
</mime-type>
</mime-info>
'';
# Rebuild user MIME database after HM writes xdg.dataFile files
home.activation.updateMimeDatabase =
lib.hm.dag.entryAfter [ "writeBoundary" ] ''
${pkgs.shared-mime-info}/bin/update-mime-database ${config.xdg.dataHome}/mime
'';
xdg.mimeApps.enable = true;
xdg.mimeApps.defaultApplications = {
# Nix files
"text/x-nix" = [ "org.kde.kate.desktop" ];
"text/plain" = [ "org.kde.kate.desktop" ];
"text/x-ini" = [ "org.kde.kate.desktop" ];
"application/x-desktop" = [ "org.kde.kate.desktop" ];
# Zen Browser (Flatpak)
"x-scheme-handler/http" = [ "app.zen_browser.zen.desktop" ];
"x-scheme-handler/https" = [ "app.zen_browser.zen.desktop" ];
"text/html" = [ "app.zen_browser.zen.desktop" ];
# Email
"x-scheme-handler/mailto" = [ "eu.betterbird.Betterbird.desktop" ];
"message/rfc822" = [ "eu.betterbird.Betterbird.desktop" ];
# Calendar (common handlers)
"text/calendar" = [ "eu.betterbird.Betterbird.desktop" ];
"application/ics" = [ "eu.betterbird.Betterbird.desktop" ];
"application/calendar" = [ "eu.betterbird.Betterbird.desktop" ];
"x-scheme-handler/webcal" = [ "eu.betterbird.Betterbird.desktop" ];
"x-scheme-handler/webcals" = [ "eu.betterbird.Betterbird.desktop" ];
# File manager
"inode/directory" = [ "org.kde.dolphin.desktop" ];
};
home.file.".nixlog/loaded.${moduleName}-module-loaded".text = "loaded\n";
}