GreasyFork-Scripts: Font Rendering and Search Switching for Browser Users
The open source code of this project is used for userscripts (油猴脚本) for desktop browsers, including Font Rendering (Customized) (字体渲染(自用脚本)- Font Rendering.user.js), and Search Engine Assistant (优雅的搜索引擎助手 - Google & Baidu Switcher.user.js), etc.
At a glance
- What is it?
- F9y4ng/GreasyFork-Scripts is a collection of JavaScript userscripts that alter desktop web typography and search-result behavior after installation through a userscript manager. Its main scripts offer detailed configuration, but they can conflict with browser zoom, site policies, local storage, and experimental scaling features.
- Who is it for?
- Adopt GreasyFork-Scripts if you want per-browser control over web font rendering or cross-engine search navigation and accept responsibility for tuning and backing up local data. Do not adopt it as a default browser-wide styling policy when visual consistency, experimental zoom behavior, or site security restrictions take priority.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly JavaScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What GreasyFork-Scripts Changes in Chrome, Firefox, and Safari
GreasyFork-Scripts is a repository of desktop-browser userscripts rather than a standalone browser or application. It is intended for people who want page-level changes without replacing the browser itself. The repository contains several independent scripts, including `Font Rendering.user.js`, `Google & Baidu Switcher.user.js`, and `Autoclose Zhihu Login.user.js`, with matching `.meta.js` files in the root. A userscript manager is required before any of these scripts can run.
The README recommends Tampermonkey for Chrome, Violentmonkey for Firefox, and Tampermonkey or Userscripts for Safari. These are recommendations, not enforced dependencies, because a userscript is JavaScript executed by an extension rather than a command-line program installed through a package registry. The repository also identifies Greasemonkey and Adguard desktop among possible managers. Manager choice can still affect installation behavior, permissions, update delivery, and compatibility. The README specifically warns that browser and manager Beta, Dev, Canary, and Nightly builds may produce compatibility errors that the project does not normally fix.
The two documented scripts solve separate problems. Font Rendering changes how supported web pages select and display fonts. Google & Baidu Switcher changes search navigation and the presentation or filtering of supported search-result pages. Treating the repository as one feature would hide that boundary: installing one script does not install or configure the others. Each `.user.js` file should be reviewed and managed independently.
Inside Font Rendering's Rewrite and Style Pipeline
Font Rendering is the more configurable and more failure-sensitive component. According to the README, it performs font rewriting, antialias smoothing, dynamic scaling, outline and shadow treatment, special-style filtering through a whitelist, and custom monospace font configuration. Its interface supports both global rendering and site-specific settings, with access through the script icon or a keyboard shortcut. The documentation describes Microsoft YaHei as the default, while allowing replacement fonts.
The defaults are presented as the author's local configuration, not as a universal profile. That distinction matters because font metrics, installed fonts, display scaling, browser rasterization, and individual site styles differ. On Windows 10 and Windows 11, the README states that a system or browser scale of 150 percent or more can provide the best rendering result because of Windows rendering behavior. Users are therefore expected to adjust parameters through the script panel rather than treating installation as complete configuration.
The script maintains local configuration data and can rebuild internal font data. Adding or editing a custom font automatically rebuilds the global font-list cache, but installing only a font already present in the built-in list requires a browser restart followed by a manual cache rebuild in `高级核心功能设置`. A custom entry uses Chinese, English, and optional PostScript names, for example `HarmonyOS Sans SC` with `HarmonyOS_Sans_SC`. Modified font builds may expose inconsistent metadata, which can prevent recognition.
Font Rendering also protects its saved state through listener logic and applies targeted workarounds for site behavior. The 2026.10.03.1 notes mention synchronization with an anti-tampering listener, a syntax failure caused by a site replacing a `localStorage` method, and an MV3 error involving UBOL native-function hijacking. These changes reveal an important architecture: the script sits between page code and browser rendering APIs, so it must handle hostile or incompatible page modifications rather than only styles.
Font Scaling, Viewport Units, and CORS Restrictions
The experimental font-scaling control is separate from normal font selection. It is disabled by default and must be enabled in `高级核心功能设置`. The script corrects viewport-unit lengths such as `vw`, `vh`, `vmin`, and `vmax`, but this does not make every site's layout compatible with scaled text. The README explicitly limits support in Firefox versions below Gecko 126 when combined with Greasemonkey or Userscripts. For that case, it recommends Firefox's own zoom controls instead.
Some sites reject the stylesheet or style data needed for viewport correction. The documentation describes two concrete browser refusals: a missing `Access-Control-Allow-Origin` response header and an inline-style violation of a Content Security Policy directive. It names `Moesif Origin & CORS Changer` for the first case and `Allow CSP: Content-Security-Policy` for the second. Those extensions relax browser-enforced web controls. The README gives an internal alternative: disable viewport correction, set font scaling to `1.0`, or disable scaling globally. That boundary is useful because changing the browser's policy can affect more than this repository.
The version log describes a performance correction for bold outline styling on low-configuration computers, but it does not provide a performance measurement or supported hardware threshold. The safe conclusion is narrower: the author made a targeted optimization, while the README still asks users with scaling conflicts to fall back to browser zoom.
Installing Font Rendering Without a Package Manager
There is no documented `npm`, `pip`, or system package installation command. The installation path described by the README is browser-based: install a userscript manager, then install the individual `.user.js` file. Tampermonkey is the documented Chrome choice, and the README links directly to the raw Font Rendering script. The reader should confirm that the userscript manager's installation page identifies the expected script before enabling it.
The following is the exact raw installation URL documented by the README. Paste it into the browser after installing a userscript manager, then review the script that the manager presents before enabling it.
# https://github.com/F9y4ng/GreasyFork-Scripts/raw/master/Font%20Rendering.user.jsThe repository does not give a short configuration command for the first use. After installation, open the Font Rendering settings through the script icon or the documented keyboard shortcut. First inspect the global font settings, then review any site-specific entry for the page in front of you. Microsoft YaHei is the stated default, but the built-in values represent the author's computer and may need replacement for locally installed fonts.
Back up existing local data before a major update or migration. The README warns against restoring an older backup after a major data rebuild and instead advises re-entering the rendering parameters and saving a new backup. If a problem must be investigated, the documented temporary debugging switch is the `whoami=F9y4ng` URL parameter. It should be enabled only for diagnosis because the README warns that leaving debugging on can slow script execution.
A useful issue report should include the URL, browser version, userscript-manager version, screenshot, reproduction steps, and any error message. The README asks for these details when only this script is active because another script may be causing the failure.
Google & Baidu Switcher Search Flow
`Google & Baidu Switcher.user.js` targets search workflows rather than font rendering. The README says it allows movement among search engines, supports user-defined engines, highlights keywords, removes redirect wrappers from search links, blocks certain search-result advertisements, filters results by keyword, and checks for updates. The documented engine set includes Baidu, Google, Bing, DuckDuckgo, Yandex, Sogou, Qwant, Ecosia, Startpage, Brave, Yahoo, Kagi, Yep, Mojeek, and searXNG.
Its value comes from applying the same navigation behavior across multiple result pages. That is different from copying a search query by hand or maintaining browser bookmarks. The script can expose a switcher for moving between supported engines and can alter destination links so they no longer pass through a redirect. The search-result filters also change what appears on a page rather than changing the engine's ranking system.
Automatic update detection is enabled by default and can be turned off under `搜索引擎助手高级设置`. The repository has no GitHub releases, so the available distribution evidence is the raw `.user.js` installation link and the version shown in the README. The documented 2026.10.03.1 update added Kagi.com and reports fixes for Sogou navigation-button styles and a missing searXNG button insertion.
The script is not an independent search engine. It depends on the pages and services it targets continuing to expose structures that its JavaScript recognizes. The README does not document a fallback interface for a redesigned search page, rate limits, privacy handling for queries, or a rollback command, so those points remain unknown from the available documentation.
Backup, Updates, and the GPL-3.0 Boundary
The repository's last push was on 2026-10-07, and it is not archived. That supports describing the project as recently changed, but it does not establish a release cadence because GitHub has no releases for it. Users therefore need to distinguish source-file updates from formal package releases. The README labels each script with a version and update log, while installation points to the raw file on the default `master` branch.
Font Rendering carries the clearest upgrade risk because it stores configuration locally and can rebuild data structures. The README advises timely local backups, rejects unknown backup files, and says that restoring a backup across a major data rebuild is not recommended. Its troubleshooting section also notes a small possibility of abnormal data initialization. Backup, reset, and reconfiguration are therefore part of ordinary maintenance for this script, not merely emergency advice.
The repository is licensed under `GPL-3.0`. That matters when copying or redistributing modified script code, but the license identifier alone does not answer every deployment question. The README does not provide legal interpretation, nor does it document a commercial support policy or a migration service. Engineers should read the repository `LICENSE` file and the headers of any `.user.js` file before modifying and redistributing code.
Operating Boundaries for Font Rendering and Search Switching
The two scripts can be useful together only if their page-level changes do not interfere with the user's browsing priorities. Font Rendering alters presentation and may require per-site tuning. Google & Baidu Switcher alters navigation, links, and result-page filtering. Neither script changes the underlying search provider, and neither replaces browser zoom or a site administrator's policy.
A user who needs predictable rendering across many sites should be cautious with the experimental scaling feature, particularly in Firefox versions below Gecko 126. A user who relies on redirect tracking, search-result advertisements, or a site's original navigation may also need to review the Switcher settings before enabling its filtering and link-rewriting behavior. The README does not enumerate every affected page or provide a full compatibility matrix, so the scripts should be enabled individually rather than treated as a browser baseline.
The repository also includes `Autoclose Zhihu Login.user.js`, but the README excerpt focuses on Font Rendering and Google & Baidu Switcher. It does not document enough about the Zhihu script's behavior to describe its mechanism or limitations here. Its presence still supports one practical point about the project: the root directory is a collection of standalone userscripts, not one integrated extension.
Editorial conclusion
Adopt GreasyFork-Scripts if you want per-browser control over web font rendering or cross-engine search navigation and accept responsibility for tuning and backing up local data. Do not adopt it as a default browser-wide styling policy when visual consistency, experimental zoom behavior, or site security restrictions take priority. Before installing, verify that your userscript manager supports the script, review its match rules and permissions in the `.user.js` file, and back up any existing Font Rendering configuration because a major data rebuild can make older backups unsuitable.
Frequently asked questions
Which userscript manager should I use for GreasyFork-Scripts?
The README recommends Tampermonkey for Chrome, Violentmonkey for Firefox, and Tampermonkey or Userscripts for Safari. It also says to install a userscript manager before installing a `.user.js` file.
How do I install Font Rendering from GreasyFork-Scripts?
Install a userscript manager, then use the README's raw installation link for `Font Rendering.user.js` and confirm the script in the manager. The repository documents no package-manager command.
Why does GreasyFork-Scripts font scaling break some websites?
The experimental scaling feature can conflict with site layouts, Firefox versions below Gecko 126, CORS restrictions, and Content Security Policies. The README suggests using browser zoom or disabling the relevant scaling and viewport-correction settings.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/f9y4ng-greasyfork-scripts)Was this useful?