Default applications
Different programs manage default application associations in unique ways. Command-line applications often use environment variables, whereas graphical applications typically utilize XDG MIME applications via APIs like GIO or Qt, or by calling xdg-open
.
Configuration
Using Home Manager, this configuration example configures the handling of HTML-files and URLs by opening them with the browser LibreWolf. Replace myuser
with the name of your low-level user.
home-manager.users.myuser = {
xdg.mimeApps = {
enable = true;
defaultApplications = {
"text/html" = "librewolf.desktop";
"x-scheme-handler/http" = "librewolf.desktop";
"x-scheme-handler/https" = "librewolf.desktop";
"x-scheme-handler/about" = "librewolf.desktop";
"x-scheme-handler/unknown" = "librewolf.desktop";
};
};
};
In case a program is missing a .desktop-file, the following example adds a librewolf.desktop
file to the MIME database with the specific binary path.
home-manager.users.myuser = {
xdg.desktopEntries.librewolf = {
name = "LibreWolf";
exec = "${pkgs.librewolf}/bin/librewolf";
};
};
Usage
Try opening a web page with xdg-open
which is part of the package xdg-utils
xdg-open "https://nixos.org"