Default applications

From NixOS Wiki
Revision as of 19:29, 30 July 2024 by Onny (talk | contribs) (Initial page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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"