{
  xdg.enable = false;

  programs.w3m = {
    enable = true;
    package = null;
    bindings = {
      "UP" = "UP";
      "DOWN" = "DOWN";
      "LEFT" = "LEFT";
      "RIGHT" = "RIGHT";
      "o" = "GOTO";
    };
    bookmarks = {
      title = "links";
      marks = {
        category1 = [
          {
            name = "home-manager manual";
            url = "https://nix-community.github.io/home-manager/index.xhtml";
          }
        ];
        category2 = [
          {
            name = "nixos manual";
            url = "https://nixos.org/manual/nixos/stable/";
          }
        ];
      };
    };
    cgiBin = {
      "script-text.cgi".text = ''
        echo "watch the film Paprika"
      '';
    };
    settings = {
      display_column_number = 1;
      decode_url = 1;
      active_style = 1;
      graphic_char = 1;
      extbrowser = "firefox";
    };
    siteconf = [
      {
        url = "m!^https://duckduckgo.com/!i";
        preferences = [
          "url_charset utf-8"
          ''substitute_url "https://lite.duckduckgo.com"''
        ];
      }
    ];
    urimethodmap = {
      ddg = "file:/cgi-bin/search.cgi?%s";
      google = "file:/cgi-bin/search.cgi?%s";
    };
  };

  nmt.script = ''
    assertFileExists "home-files/.w3m/keymap"
    assertFileContent "home-files/.w3m/keymap" ${./expected-keymap}

    assertFileExists "home-files/.w3m/bookmark.html"
    assertFileContent "home-files/.w3m/bookmark.html" ${./expected-bookmark.html}

    assertFileExists "home-files/.w3m/cgi-bin/script-text.cgi"
    assertFileContains "home-files/.w3m/cgi-bin/script-text.cgi" "echo \"watch the film Paprika\""

    assertFileExists "home-files/.w3m/config"
    assertFileContent "home-files/.w3m/config" ${./expected-config}

    assertFileExists "home-files/.w3m/siteconf"
    assertFileContent "home-files/.w3m/siteconf" ${./expected-siteconf}

    assertFileExists "home-files/.w3m/urimethodmap"
    assertFileContent "home-files/.w3m/urimethodmap" ${./expected-urimethodmap}
  '';
}
