{
  pkgs,
  lib,
  config,
  ...
}: {
  options.mods.desktop.development.enable =
    lib.mkEnableOption "enables gui development tools";

  config = lib.mkIf config.mods.desktop.development.enable {
    # home.packages = with pkgs; [ i3-swallow ];

    programs.nyxt = {
      enable = true;
      config = ''
        (in-package #:nyxt-user)

        (defvar *my-search-engines*
          (list
           (make-instance 'search-engine
                          :name "Searx"
                          :shortcut "s"
                          #+nyxt-4 :control-url #+nyxt-3 :search-url
                          ""https://search.muon.host/?q=~a";")

           (make-instance 'search-engine
                          :name "nixpkgs"
                          :shortcut "np"
                          #+nyxt-4 :control-url #+nyxt-3 :search-url
                          "https://search.nixos.org/packages?channel=unstable&query=~a")))

           (make-instance 'search-engine
                          :name "nix options"
                          :shortcut "np"
                          #+nyxt-4 :control-url #+nyxt-3 :search-url
                          "https://search.nixos.org/options?channel=unstable&query=~a")))

           (make-instance 'search-engine
                          :name "home-manager"
                          :shortcut "hm"
                          #+nyxt-4 :control-url #+nyxt-3 :search-url
                          "https://home-manager-options.extranix.com/?release=master&query=~a")))


        (define-configuration browser
          ((restore-session-on-startup-p nil)
           (default-new-buffer-url (quri:uri "https://online.bonjourr.fr/"))
           (external-editor-program ("alacritty -e hx")
           #+nyxt-4
           (search-engine-suggestions-p nil)
           #+nyxt-4
           (search-engines (append %slot-default% *my-search-engines*))
           ))
      '';
    };

    programs.qutebrowser = {
      enable = true;

      settings = {
        content.cookies.accept = "no-3rdparty";
        url = {
          default_page = "https://online.bonjourr.fr/";
          start_pages = "https://online.bonjourr.fr/";
        };
        editor.command = ["alacritty" "-e" "hx" "{file}:{line}:{column}"];
      };

      searchEngines = {
        DEFAULT = "https://search.muon.host/?q={}";
        np = "https://search.nixos.org/packages?channel=unstable&query={}";
        no = "https://search.nixos.org/options?channel=unstable&query={}";
        hm = "https://home-manager-options.extranix.com/?release=master&query={}";
      };

      extraConfig = ''
        host = c.content.blocking.hosts.lists.append
        host("https://www.github.developerdan.com/hosts/lists/facebook-extended.txt")

        abp = c.content.blocking.adblock.lists.append
        abp("https://fanboy.co.nz/r/fanboy-ultimate.txt")
        abp("https://fanboy.co.nz/fanboy-antifacebook.txt")
        abp("https://fanboy.co.nz/fanboy-annoyance.txt")
        abp("https://fanboy.co.nz/fanboy-cookiemonster.txt")
        abp("https://easylist-downloads.adblockplus.org/antiadblockfilters.txt")
        abp("https://easylist-downloads.adblockplus.org/abp-filters-anti-cv.txt")

        abp("https://github.com/DandelionSprout/adfilt/raw/master/LegitimateURLShortener.txt")
        abp("https://github.com/DandelionSprout/adfilt/raw/master/AnnoyancesList")
        abp("https://github.com/DandelionSprout/adfilt/raw/master/SocialShareList.txt")
        abp("https://github.com/DandelionSprout/adfilt/raw/master/ExtremelyCondensedList.txt")
      '';
    };
  };
}
