Flake for my NixOS devices

Floorp Silly

bwc9876.dev f30a0d6b e3e734c1

verified
+236 -202
+6
nixosModules/dev/haskell.nix
··· 1 + { 2 + home-manager.users.bean.xdg.configFile."ghc/ghci.conf".text = '' 3 + :set prompt "\ESC[1;35m\x03BB> \ESC[m" 4 + :set prompt-cont "\ESC[1;35m > \ESC[m" 5 + ''; 6 + }
+1
nixosModules/dev/nvim.nix
··· 869 869 870 870 servers = { 871 871 astro.enable = true; 872 + hls.enable = true; 872 873 sqls.enable = true; 873 874 mdx_analyzer = { 874 875 enable = true;
+229 -202
nixosModules/graphics/floorp.nix
··· 2 2 lib, 3 3 pkgs, 4 4 ... 5 - }: { 5 + }: 6 + { 7 + 8 + nixpkgs.overlays = [ 9 + (final: prev: { 10 + floorp-unwrapped = 11 + (prev.floorp-unwrapped.override { 12 + privacySupport = true; 13 + webrtcSupport = true; 14 + enableOfficialBranding = false; 15 + geolocationSupport = true; 16 + # https://github.com/NixOS/nixpkgs/issues/418473 17 + ltoSupport = false; 18 + }).overrideAttrs 19 + (prev: { 20 + MOZ_DATA_REPORTING = ""; 21 + MOZ_TELEMETRY_REPORTING = ""; 22 + }); 23 + }) 24 + ]; 25 + 6 26 environment.systemPackages = with pkgs; [ 7 27 floorp 8 28 ]; ··· 50 70 EmailTracking = true; 51 71 }; 52 72 53 - Preferences = let 54 - lock = val: { 55 - Value = val; 56 - Status = "locked"; 57 - }; 58 - in { 59 - # General 60 - "browser.aboutConfig.showWarning" = lock false; 61 - "media.eme.enabled" = lock true; # Encrypted Media Extensions (DRM) 62 - "layout.css.prefers-color-scheme.content-override" = lock 0; 63 - "browser.startup.page" = 3; # Restore previous session 64 - "toolkit.telemetry.server" = lock ""; 73 + Preferences = 74 + let 75 + lock = val: { 76 + Value = val; 77 + Status = "locked"; 78 + }; 79 + in 80 + { 81 + # General 82 + "browser.aboutConfig.showWarning" = lock false; 83 + "media.eme.enabled" = lock true; # Encrypted Media Extensions (DRM) 84 + "layout.css.prefers-color-scheme.content-override" = lock 0; 85 + "browser.startup.page" = 3; # Restore previous session 86 + "toolkit.telemetry.server" = lock ""; 65 87 66 - # New Tab 67 - "browser.newtabpage.activity-stream.showSponsored" = lock false; 68 - "browser.newtabpage.activity-stream.system.showSponsored" = lock false; 69 - "browser.newtabpage.activity-stream.feeds.section.topstories" = lock false; 70 - "browser.newtabpage.activity-stream.feeds.topsites" = lock false; 71 - "browser.newtabpage.activity-stream.showSponsoredTopSites" = lock false; 72 - "browser.newtabpage.activity-stream.showWeather" = lock false; 73 - "browser.newtabpage.activity-stream.system.showWeather" = lock false; 74 - "browser.newtabpage.activity-stream.feeds.weatherfeed" = lock false; 75 - "browser.newtabpage.activity-stream.feeds.telemetry" = lock false; 76 - "browser.newtabpage.activity-stream.telemetry" = lock false; 77 - "browser.newtabpage.activity-stream.telemetry.structuredIngestion.endpoint" = lock ""; 78 - "browser.newtabpage.pinned" = lock []; 79 - "browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts.havePinned" = lock ""; 80 - "browser.urlbar.suggest.weather" = lock false; 81 - "browser.urlbar.quicksuggest.scenario" = lock "offline"; 82 - "browser.urlbar.suggest.quicksuggest.nonsponsored" = lock false; 83 - "browser.urlbar.suggest.quicksuggest.sponsored" = lock false; 88 + # New Tab 89 + "browser.newtabpage.activity-stream.showSponsored" = lock false; 90 + "browser.newtabpage.activity-stream.system.showSponsored" = lock false; 91 + "browser.newtabpage.activity-stream.feeds.section.topstories" = lock false; 92 + "browser.newtabpage.activity-stream.feeds.topsites" = lock false; 93 + "browser.newtabpage.activity-stream.showSponsoredTopSites" = lock false; 94 + "browser.newtabpage.activity-stream.showWeather" = lock false; 95 + "browser.newtabpage.activity-stream.system.showWeather" = lock false; 96 + "browser.newtabpage.activity-stream.feeds.weatherfeed" = lock false; 97 + "browser.newtabpage.activity-stream.feeds.telemetry" = lock false; 98 + "browser.newtabpage.activity-stream.telemetry" = lock false; 99 + "browser.newtabpage.activity-stream.telemetry.structuredIngestion.endpoint" = lock ""; 100 + "browser.newtabpage.pinned" = lock [ ]; 101 + "browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts.havePinned" = lock ""; 102 + "browser.urlbar.suggest.weather" = lock false; 103 + "browser.urlbar.quicksuggest.scenario" = lock "offline"; 104 + "browser.urlbar.suggest.quicksuggest.nonsponsored" = lock false; 105 + "browser.urlbar.suggest.quicksuggest.sponsored" = lock false; 84 106 85 - # Devtools 86 - "devtools.theme" = lock "dark"; 87 - "devtools.dom.enabled" = lock true; 88 - "devtools.command-button-rulers.enabled" = lock true; 89 - "devtools.command-button-measure.enabled" = lock true; 90 - "devtools.command-button-screenshot.enabled" = lock true; 91 - "devtools.toolbox.host" = lock "right"; 92 - "devtools.webconsole.persistlog" = lock true; 93 - "devtools.webconsole.timestampMessages" = lock true; 107 + # Devtools 108 + "devtools.theme" = lock "dark"; 109 + "devtools.dom.enabled" = lock true; 110 + "devtools.command-button-rulers.enabled" = lock true; 111 + "devtools.command-button-measure.enabled" = lock true; 112 + "devtools.command-button-screenshot.enabled" = lock true; 113 + "devtools.toolbox.host" = lock "right"; 114 + "devtools.webconsole.persistlog" = lock true; 115 + "devtools.webconsole.timestampMessages" = lock true; 94 116 95 - # Privacy 96 - "dom.private-attribution.submission.enabled" = lock false; 97 - "privacy.globalprivacycontrol.enabled" = lock true; 98 - }; 117 + # Privacy 118 + "dom.private-attribution.submission.enabled" = lock false; 119 + "privacy.globalprivacycontrol.enabled" = lock true; 120 + }; 99 121 100 122 Extensions.Install = 101 123 map (x: "https://addons.mozilla.org/firefox/downloads/latest/${x}/latest.xpi") 102 - [ 103 - # Appearance 104 - "catppuccin-mocha-green" 105 - "darkreader" 106 - "material-icons-for-github" 107 - "refined-github-" 124 + [ 125 + # Appearance 126 + "catppuccin-mocha-green" 127 + "darkreader" 128 + "material-icons-for-github" 129 + "refined-github-" 108 130 109 - # Security / Privacy 110 - "privacy-badger17" 111 - "decentraleyes" 112 - "canvasblocker" 113 - "facebook-container" 131 + # Security / Privacy 132 + "privacy-badger17" 133 + "decentraleyes" 134 + "canvasblocker" 135 + "facebook-container" 114 136 115 - ## Ads / Youtube 116 - "adnauseam" 117 - "sponsorblock" 118 - "youtube-shorts-block" 119 - "dearrow" 137 + ## Ads / Youtube 138 + "adnauseam" 139 + "sponsorblock" 140 + "youtube-shorts-block" 141 + "dearrow" 120 142 121 - # Information 122 - "flagfox" 123 - "awesome-rss" 143 + # Information 144 + "flagfox" 145 + "awesome-rss" 124 146 125 - # Devtools 126 - "react-devtools" 127 - "open-graph-preview-and-debug" 128 - "wave-accessibility-tool" 129 - "styl-us" 147 + # Devtools 148 + "react-devtools" 149 + "open-graph-preview-and-debug" 150 + "wave-accessibility-tool" 151 + "styl-us" 130 152 131 - # Misc 132 - "plasma-integration" # integration with MPRIS & KDE Connect 133 - "keepassxc-browser" # integration with KeepassXC 134 - "meowad" # Replace ads on Twitter with :3 135 - ]; 153 + # Misc 154 + "plasma-integration" # integration with MPRIS & KDE Connect 155 + "keepassxc-browser" # integration with KeepassXC 156 + "meowad" # Replace ads on Twitter with :3 157 + ]; 136 158 137 159 ExtensionSettings."*" = { 138 160 default_area = "menupanel"; ··· 142 164 force = true; 143 165 default = "ddg@search.mozilla.orgdefault"; 144 166 privateDefault = "ddg@search.mozilla.orgdefault"; 145 - engines = let 146 - mkEngineForceFavicon = aliases: queryUrl: iconUrl: { 147 - definedAliases = aliases; 148 - icon = iconUrl; 149 - urls = [{template = queryUrl;}]; 150 - }; 151 - mkEngine = aliases: queryUrl: iconExt: (mkEngineForceFavicon aliases queryUrl ( 152 - let 153 - noPath = lib.strings.concatStrings ( 154 - lib.strings.intersperse "/" (lib.lists.take 3 (lib.strings.splitString "/" queryUrl)) 155 - ); 156 - in "${noPath}/favicon.${iconExt}" 157 - )); 158 - in { 159 - # Dev 160 - "GitHub Repos" = 161 - mkEngineForceFavicon ["@gh" "@github"] 162 - "https://github.com/search?type=repositories&q={searchTerms}" 163 - "https://github.githubassets.com/favicons/favicon-dark.svg"; 164 - "SourceGraph" = mkEngine [ 165 - "@sg" 166 - "@sourcegraph" 167 - ] "https://sourcegraph.com/search?q={searchTerms}" "png"; 167 + engines = 168 + let 169 + mkEngineForceFavicon = aliases: queryUrl: iconUrl: { 170 + definedAliases = aliases; 171 + icon = iconUrl; 172 + urls = [ { template = queryUrl; } ]; 173 + }; 174 + mkEngine = 175 + aliases: queryUrl: iconExt: 176 + (mkEngineForceFavicon aliases queryUrl ( 177 + let 178 + noPath = lib.strings.concatStrings ( 179 + lib.strings.intersperse "/" (lib.lists.take 3 (lib.strings.splitString "/" queryUrl)) 180 + ); 181 + in 182 + "${noPath}/favicon.${iconExt}" 183 + )); 184 + in 185 + { 186 + # Dev 187 + "GitHub Repos" = 188 + mkEngineForceFavicon [ "@gh" "@github" ] 189 + "https://github.com/search?type=repositories&q={searchTerms}" 190 + "https://github.githubassets.com/favicons/favicon-dark.svg"; 191 + "SourceGraph" = mkEngine [ 192 + "@sg" 193 + "@sourcegraph" 194 + ] "https://sourcegraph.com/search?q={searchTerms}" "png"; 168 195 169 - ## Web 170 - "MDN Web Docs" = mkEngine [ 171 - "@mdn" 172 - ] "https://developer.mozilla.org/en-US/search?q={searchTerms}" "ico"; 173 - "Web.Dev" = 174 - mkEngineForceFavicon ["@webdev" "@lighthouse"] "https://web.dev/s/results?q={searchTerms}" 175 - "https://www.gstatic.com/devrel-devsite/prod/vc7080045e84cd2ce1faf7f7a3876037748d52d088e5100df2e949d051a784791/web/images/favicon.png"; 176 - "Can I Use" = mkEngineForceFavicon [ 177 - "@ciu" 178 - "@baseline" 179 - ] "https://caniuse.com/?search={searchTerms}" "https://caniuse.com/img/favicon-128.png"; 180 - "NPM" = 181 - mkEngineForceFavicon ["@npm"] "https://www.npmjs.com/search?q={searchTerms}" 182 - "https://static-production.npmjs.com/3dc95981de4241b35cd55fe126ab6b2c.png"; 183 - "Iconify" = mkEngine [ 184 - "@iconify" 185 - "@icons" 186 - ] "https://icon-sets.iconify.design/?query={searchTerms}" "ico"; 187 - "Astro" = mkEngineForceFavicon [ 188 - "@astro" 189 - ] "https://a.stro.cc/{searchTerms}" "https://docs.astro.build/favicon.svg"; 190 - "Porkbun" = mkEngine ["@porkbun"] "https://porkbun.com/checkout/search?q={searchTerms}" "ico"; 191 - "Http.Cat" = mkEngine ["@cat" "@hcat" "@httpcat"] "https://http.cat/{searchTerms}" "ico"; 196 + ## Web 197 + "MDN Web Docs" = mkEngine [ 198 + "@mdn" 199 + ] "https://developer.mozilla.org/en-US/search?q={searchTerms}" "ico"; 200 + "Web.Dev" = 201 + mkEngineForceFavicon [ "@webdev" "@lighthouse" ] "https://web.dev/s/results?q={searchTerms}" 202 + "https://www.gstatic.com/devrel-devsite/prod/vc7080045e84cd2ce1faf7f7a3876037748d52d088e5100df2e949d051a784791/web/images/favicon.png"; 203 + "Can I Use" = mkEngineForceFavicon [ 204 + "@ciu" 205 + "@baseline" 206 + ] "https://caniuse.com/?search={searchTerms}" "https://caniuse.com/img/favicon-128.png"; 207 + "NPM" = 208 + mkEngineForceFavicon [ "@npm" ] "https://www.npmjs.com/search?q={searchTerms}" 209 + "https://static-production.npmjs.com/3dc95981de4241b35cd55fe126ab6b2c.png"; 210 + "Iconify" = mkEngine [ 211 + "@iconify" 212 + "@icons" 213 + ] "https://icon-sets.iconify.design/?query={searchTerms}" "ico"; 214 + "Astro" = mkEngineForceFavicon [ 215 + "@astro" 216 + ] "https://a.stro.cc/{searchTerms}" "https://docs.astro.build/favicon.svg"; 217 + "Porkbun" = mkEngine [ "@porkbun" ] "https://porkbun.com/checkout/search?q={searchTerms}" "ico"; 218 + "Http.Cat" = mkEngine [ "@cat" "@hcat" "@httpcat" ] "https://http.cat/{searchTerms}" "ico"; 192 219 193 - ## Rust 194 - "Crates.io" = mkEngine [ 195 - "@crates" 196 - "@cratesio" 197 - "@cargo" 198 - ] "https://crates.io/search?q={searchTerms}" "ico"; 199 - "Rust Docs" = 200 - mkEngineForceFavicon ["@rust" "@rustdocs" "@ruststd"] 201 - "https://doc.rust-lang.org/std/index.html?search={searchTerms}" 202 - "https://doc.rust-lang.org/static.files/favicon-2c020d218678b618.svg"; 203 - "Docsrs" = mkEngine ["@docsrs"] "https://docs.rs/releases/search?query={searchTerms}" "ico"; 220 + ## Rust 221 + "Crates.io" = mkEngine [ 222 + "@crates" 223 + "@cratesio" 224 + "@cargo" 225 + ] "https://crates.io/search?q={searchTerms}" "ico"; 226 + "Rust Docs" = 227 + mkEngineForceFavicon [ "@rust" "@rustdocs" "@ruststd" ] 228 + "https://doc.rust-lang.org/std/index.html?search={searchTerms}" 229 + "https://doc.rust-lang.org/static.files/favicon-2c020d218678b618.svg"; 230 + "Docsrs" = mkEngine [ "@docsrs" ] "https://docs.rs/releases/search?query={searchTerms}" "ico"; 204 231 205 - ## Python 206 - "PyPI" = mkEngineForceFavicon [ 207 - "@pypi" 208 - "@pip" 209 - ] "https://pypi.org/search/?q={searchTerms}" "https://pypi.org/static/images/favicon.35549fe8.ico"; 232 + ## Python 233 + "PyPI" = mkEngineForceFavicon [ 234 + "@pypi" 235 + "@pip" 236 + ] "https://pypi.org/search/?q={searchTerms}" "https://pypi.org/static/images/favicon.35549fe8.ico"; 210 237 211 - ## .NET 212 - "NuGet" = mkEngine ["@nuget"] "https://www.nuget.org/packages?q={searchTerms}" "ico"; 238 + ## .NET 239 + "NuGet" = mkEngine [ "@nuget" ] "https://www.nuget.org/packages?q={searchTerms}" "ico"; 213 240 214 - ## Linux Stuff 215 - "Kernel Docs" = mkEngine [ 216 - "@lnx" 217 - "@linux" 218 - "@kernel" 219 - ] "https://www.kernel.org/doc/html/latest/search.html?q={searchTerms}" "ico"; 220 - "Arch Wiki" = mkEngine [ 221 - "@aw" 222 - "@arch" 223 - ] "https://wiki.archlinux.org/index.php?title=Special%3ASearch&search={searchTerms}" "ico"; 224 - "Nerd Fonts" = 225 - mkEngineForceFavicon ["@nf" "@nerdfonts"] "https://www.nerdfonts.com/cheat-sheet?q={searchTerms}" 226 - "https://www.nerdfonts.com/assets/img/favicon.ico"; 241 + ## Linux Stuff 242 + "Kernel Docs" = mkEngine [ 243 + "@lnx" 244 + "@linux" 245 + "@kernel" 246 + ] "https://www.kernel.org/doc/html/latest/search.html?q={searchTerms}" "ico"; 247 + "Arch Wiki" = mkEngine [ 248 + "@aw" 249 + "@arch" 250 + ] "https://wiki.archlinux.org/index.php?title=Special%3ASearch&search={searchTerms}" "ico"; 251 + "Nerd Fonts" = 252 + mkEngineForceFavicon [ "@nf" "@nerdfonts" ] "https://www.nerdfonts.com/cheat-sheet?q={searchTerms}" 253 + "https://www.nerdfonts.com/assets/img/favicon.ico"; 227 254 228 - ### Nix 229 - "Nix Packages" = mkEngine [ 230 - "@nixpkgs" 231 - ] "https://search.nixos.org/packages?channel=unstable&size=500&query={searchTerms}" "png"; 232 - "NixOS Options" = mkEngine [ 233 - "@nixos" 234 - ] "https://search.nixos.org/options?channel=unstable&size=500&query={searchTerms}" "png"; 235 - "NixOS Wiki" = mkEngine ["@nixwiki"] "https://nixos.wiki/index.php?search={searchTerms}" "png"; 236 - "Home Manager Options" = 237 - mkEngineForceFavicon ["@hm"] 238 - "https://home-manager-options.extranix.com/?release=master&query={searchTerms}" 239 - "https://home-manager-options.extranix.com/images/favicon.png"; 240 - "Noogle" = mkEngine [ 241 - "@noogle" 242 - "@nixlib" 243 - ] "https://noogle.dev/q?limit=100&term={searchTerms}" "png"; 244 - "SourceGraph Nix" = 245 - mkEngine ["@sgn" "@yoink"] 246 - "https://sourcegraph.com/search?q=lang:Nix+-repo:NixOS/*+-repo:nix-community/*+{searchTerms}" 247 - "png"; 248 - "Nixpkgs Issues" = 249 - mkEngineForceFavicon ["@nixissues"] 250 - "https://github.com/NixOS/nixpkgs/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen+{searchTerms}" 251 - "https://github.githubassets.com/favicons/favicon-dark.svg"; 252 - "NixVim Options" = 253 - mkEngineForceFavicon ["@nixvim"] 254 - "https://nix-community.github.io/nixvim/search/?option_scope=0&query={searchTerms}" 255 - "https://nix-community.github.io/nixvim/search/favicon.ico"; 255 + ### Nix 256 + "Nix Packages" = mkEngine [ 257 + "@nixpkgs" 258 + ] "https://search.nixos.org/packages?channel=unstable&size=500&query={searchTerms}" "png"; 259 + "NixOS Options" = mkEngine [ 260 + "@nixos" 261 + ] "https://search.nixos.org/options?channel=unstable&size=500&query={searchTerms}" "png"; 262 + "NixOS Wiki" = mkEngine [ "@nixwiki" ] "https://nixos.wiki/index.php?search={searchTerms}" "png"; 263 + "Home Manager Options" = 264 + mkEngineForceFavicon [ "@hm" ] 265 + "https://home-manager-options.extranix.com/?release=master&query={searchTerms}" 266 + "https://home-manager-options.extranix.com/images/favicon.png"; 267 + "Noogle" = mkEngine [ 268 + "@noogle" 269 + "@nixlib" 270 + ] "https://noogle.dev/q?limit=100&term={searchTerms}" "png"; 271 + "SourceGraph Nix" = 272 + mkEngine [ "@sgn" "@yoink" ] 273 + "https://sourcegraph.com/search?q=lang:Nix+-repo:NixOS/*+-repo:nix-community/*+{searchTerms}" 274 + "png"; 275 + "Nixpkgs Issues" = 276 + mkEngineForceFavicon [ "@nixissues" ] 277 + "https://github.com/NixOS/nixpkgs/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen+{searchTerms}" 278 + "https://github.githubassets.com/favicons/favicon-dark.svg"; 279 + "NixVim Options" = 280 + mkEngineForceFavicon [ "@nixvim" ] 281 + "https://nix-community.github.io/nixvim/search/?option_scope=0&query={searchTerms}" 282 + "https://nix-community.github.io/nixvim/search/favicon.ico"; 256 283 257 - # Media 258 - "youtube" = mkEngine ["@yt"] "https://www.youtube.com/results?search_query={searchTerms}" "ico"; 259 - "Spotify" = 260 - mkEngineForceFavicon ["@sp" "@spotify"] "https://open.spotify.com/search/{searchTerms}" 261 - "https://open.spotifycdn.com/cdn/images/favicon16.1c487bff.png"; 262 - "Netflix" = mkEngine ["@nfx"] "https://www.netflix.com/search?q={searchTerms}" "ico"; 263 - "IMDb" = mkEngine ["@imdb"] "https://www.imdb.com/find?q={searchTerms}" "ico"; 284 + # Media 285 + "youtube" = mkEngine [ "@yt" ] "https://www.youtube.com/results?search_query={searchTerms}" "ico"; 286 + "Spotify" = 287 + mkEngineForceFavicon [ "@sp" "@spotify" ] "https://open.spotify.com/search/{searchTerms}" 288 + "https://open.spotifycdn.com/cdn/images/favicon16.1c487bff.png"; 289 + "Netflix" = mkEngine [ "@nfx" ] "https://www.netflix.com/search?q={searchTerms}" "ico"; 290 + "IMDb" = mkEngine [ "@imdb" ] "https://www.imdb.com/find?q={searchTerms}" "ico"; 264 291 265 - # Misc 266 - "Firefox Add-ons" = mkEngine [ 267 - "@addons" 268 - ] "https://addons.mozilla.org/en-US/firefox/search/?q={searchTerms}" "ico"; 269 - "Urban Dictionary" = mkEngine [ 270 - "@ud" 271 - "@urban" 272 - ] "https://www.urbandictionary.com/define.php?term={searchTerms}" "ico"; 292 + # Misc 293 + "Firefox Add-ons" = mkEngine [ 294 + "@addons" 295 + ] "https://addons.mozilla.org/en-US/firefox/search/?q={searchTerms}" "ico"; 296 + "Urban Dictionary" = mkEngine [ 297 + "@ud" 298 + "@urban" 299 + ] "https://www.urbandictionary.com/define.php?term={searchTerms}" "ico"; 273 300 274 - # Overrides 275 - "History".metaData.alias = "@h"; 276 - "Bookmarks".metaData.alias = "@b"; 277 - "Tabs".metaData.alias = "@t"; 278 - "bing@search.mozilla.orgdefault".metaData.hidden = true; 279 - "amazondotcom-us@search.mozilla.orgdefault".metaData.alias = "@amz"; 280 - "google@search.mozilla.orgdefault".metaData.alias = "@g"; 281 - "wikipedia@search.mozilla.orgdefault".metaData.alias = "@w"; 282 - }; 301 + # Overrides 302 + "History".metaData.alias = "@h"; 303 + "Bookmarks".metaData.alias = "@b"; 304 + "Tabs".metaData.alias = "@t"; 305 + "bing@search.mozilla.orgdefault".metaData.hidden = true; 306 + "amazondotcom-us@search.mozilla.orgdefault".metaData.alias = "@amz"; 307 + "google@search.mozilla.orgdefault".metaData.alias = "@g"; 308 + "wikipedia@search.mozilla.orgdefault".metaData.alias = "@w"; 309 + }; 283 310 }; 284 311 }; 285 312 };