{ config, pkgs, theme, ... }: { programs.qutebrowser = { enable = true; searchEngines = { r = "https://doc.rust-lang.org/stable/std/?search={}"; lib = "https://lib.rs/search?q={}"; nip = "https://jisho.org/search/{}"; }; # TODO: Make this prettier overall settings = theme.apps.qutebrowser // { tabs = { indicator.width = 3; }; # TODO: The terminal shouldn't be hardcoded editor.command = ["alacritty" "-c" "hx" "{file}"]; # TODO: Take the value from theme fonts = { # default_family = "Cozette"; # default_size = "13px"; default_family = "Iosevka"; default_size = "13px"; }; content = { canvas_reading = true; blocking.method = "both"; blocking.whitelist = ["*.amplitude.com" "amplitude.com"]; }; }; # Workaround because the nix module doesn't properly handle options that expect a dict extraConfig = '' c.tabs.padding = { 'top': 5, 'bottom': 5, 'right': 10, 'left': 10 } c.statusbar.padding = { 'top': 5, 'bottom': 5, 'right': 10, 'left': 10 } ''; keyBindings = { passthrough = { "<Ctrl-Escape>" = "mode-leave"; }; }; }; xdg.mimeApps = { enable = pkgs.stdenv.isLinux; defaultApplications = { "x-scheme-handler/http" = "org.qutebrowser.qutebrowser.desktop"; "x-scheme-handler/https" = "org.qutebrowser.qutebrowser.desktop"; "x-scheme-handler/chrome" = "org.qutebrowser.qutebrowser.desktop"; "text/html" = "org.qutebrowser.qutebrowser.desktop"; "application/x-extension-htm" = "org.qutebrowser.qutebrowser.desktop"; "application/x-extension-html" = "org.qutebrowser.qutebrowser.desktop"; "application/x-extension-shtml" = "org.qutebrowser.qutebrowser.desktop"; "application/xhtml+xml" = "org.qutebrowser.qutebrowser.desktop"; "application/x-extension-xhtml" = "org.qutebrowser.qutebrowser.desktop"; "application/x-extension-xht" = "org.qutebrowser.qutebrowser.desktop"; "application/pdf" = "org.qutebrowser.qutebrowser.desktop"; }; }; }