diff options
author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-05-23 13:31:11 +0200 |
---|---|---|
committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-05-23 13:33:40 +0200 |
commit | fd9b0ecef4142a62b45404700ba1cff488f84a73 (patch) | |
tree | ef6c1f74f05a2220a41ccff4b0890c39229f32f7 /modules/home/conf/xdg/default.nix | |
parent | refactor(pkgs): Categorize into `by-name` shards (diff) | |
download | nixos-config-fd9b0ecef4142a62b45404700ba1cff488f84a73.zip |
refactor(modules/home): Setup as "normal" NixOS module
Diffstat (limited to 'modules/home/conf/xdg/default.nix')
-rw-r--r-- | modules/home/conf/xdg/default.nix | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/modules/home/conf/xdg/default.nix b/modules/home/conf/xdg/default.nix new file mode 100644 index 00000000..4099720d --- /dev/null +++ b/modules/home/conf/xdg/default.nix @@ -0,0 +1,63 @@ +{ + 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" + ]; + }; + }; + }; +} |