From b72635d01975e5614effa7d13daebdc9271c8f8a Mon Sep 17 00:00:00 2001 From: Zynh Ludwig Date: Sun, 28 Jul 2024 23:02:47 -0700 Subject: [PATCH] filetypes: new definition format --- home/modules/filetypes.nix | 46 ++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/home/modules/filetypes.nix b/home/modules/filetypes.nix index f486c0d..921fc21 100644 --- a/home/modules/filetypes.nix +++ b/home/modules/filetypes.nix @@ -6,24 +6,36 @@ in { enable = lib.mkEnableOption "default programs"; }; config = lib.mkIf cfg.enable { - xdg.mimeApps = { - enable = true; - defaultApplications = { - # Firefox - "application/pdf" = "brave-browser.desktop"; - "application/x-extension-htm" = "brave-browser.desktop"; - "application/x-extension-html" = "brave-browser.desktop"; - "application/x-extension-shtml" = "brave-browser.desktop"; - "application/x-extension-xht" = "brave-browser.desktop"; - "application/x-extension-xhtml" = "brave-browser.desktop"; - "application/xhtml+xml" = "brave-browser.desktop"; - "text/html" = "brave-browser.desktop"; - "x-scheme-handler/about" = "brave-browser.desktop"; - "x-scheme-handler/chrome" = "brave-browser.desktop"; - "x-scheme-handler/http" = "brave-browser.desktop"; - "x-scheme-handler/https" = "brave-browser.desktop"; + xdg.mimeApps = + let + browser = "brave-browser.desktop"; + + mimeAppsFor = + value: list: + lib.right + builtins.listToAttrs + (map (name: { inherit name value; })) + list; + in + { + enable = true; + defaultApplications = lib.mkMerge [ + (mimeAppsFor browser [ + "application/pdf" + "application/x-extension-htm" + "application/x-extension-html" + "application/x-extension-shtml" + "application/x-extension-xht" + "application/x-extension-xhtml" + "application/xhtml+xml" + "text/html" + "x-scheme-handler/about" + "x-scheme-handler/chrome" + "x-scheme-handler/http" + "x-scheme-handler/https" + ]) + ]; }; - }; home.sessionVariables = { DEFAULT_BROWSER = "${pkgs.brave}/bin/brave";