{ sysLib, pkgs, config, ... }: let url_handler = sysLib.writeShellScript { name = "url_handler"; src = ./url_handler.sh; keepPath = true; # Naming dependencies for this will be difficult, as it depend on overridden packages. dependencies = with pkgs; [ rofi libnotify zathura ]; replacementStrings = { ALL_PROJECTS_PIPE = "${config.soispha.taskwarrior.projects.projects_pipe}"; }; }; in { imports = [ ./xdg_vars.nix ]; xdg = { mimeApps = { enable = true; defaultApplications = { "application/pdf" = ["url_handler.desktop"]; "application/x-pdf" = ["url_handler.desktop"]; "text/html" = ["url_handler.desktop"]; "text/xml" = ["url_handler.desktop"]; "x-scheme-handler/http" = ["url_handler.desktop"]; "x-scheme-handler/https" = ["url_handler.desktop"]; "x-scheme-handler/about" = ["url_handler.desktop"]; "x-scheme-handler/unknown" = ["url_handler.desktop"]; }; }; desktopEntries = { url_handler = { name = "url_handler"; genericName = "Web Browser"; exec = "${url_handler}/bin/url_handler %u"; terminal = false; categories = [ "Application" "Network" "WebBrowser" ]; mimeType = [ "text/html" "text/xml" "x-scheme-handler/http" "x-scheme-handler/https" "x-scheme-handler/about" "x-scheme-handler/unknown" ]; }; }; }; }