Firefox: Initial Setup

来自Tsetien’s Wiki
跳到导航 跳到搜索
Firefox 105


  1. 从 Mozilla 官方 FTP 上下载安装程序,更多相关下载地址可参见此处
  2. 安装时,在 ‘Setup Type’ 页面选择 ‘Custom’ 方式,之后在问及需不需要安装 ‘Maintenance Service’ 的页面上取消勾选 ‘Install Maintenance Service’. 安装到最后一页问及是否开启 Firefox 时,取消勾选,以便先不开启软件。首次开启时,按 Win + R, 输入 ‘firefox /p’ 并敲回车,根据提示来手动添加一个 profile 并将其指向指定目录(如果以前已有备份好的 profile 就直接指过去,没有的话可以指到一个空文件夹来从头构建一个 profile 并在构建好后做好备份以供日后使用);
  3. 如果是首次在系统上安装 Firefox, 并且需要禁止自动更新,则需要前往注册表中的 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\ 下新建一个名为 ‘Mozilla’ 的 Key, 再在这个 Key 下面建一个名为 ‘Firefox’ 的 Key, 然后再在此 Key 中新建一个名为 ‘DisableAppUpdate’ 的 DWORD Value, 双击它,并将其值设为 1. 这项操作只用在当个系统下首次安装时进行。如果需要禁止 Waterfox (current) 的自动更新,则需要将 ‘Waterfox’ 建在 ‘Mozilla’ 下,然后再在 ‘Waterfox’ 下建一个 ‘DisableAppUpdate’ 的 DWORD Value, 并将其值设为 1;
  4. 首次开启 Firefox, 但旋即立马关闭,并参考此处进行 about:config 修改(如果确为初设之 profile, 则如页面所说,直接打开 profile 文件夹下的 prefs.js, 删除所有原有内容 (CTRL + A; DELETE) 然后将两块代码块的所有内容直接复制粘贴到这个文件中并保存即可);
  5. 参考这个页面来快速选择安装所有有所需的 add-ons;
  6. 参考这个页面来快速选择安装所有有需要的脚本;
  7. 安装完所有有需要的 add-ons 以及用户脚本后,去 about:addons 下逐一检查每一个 add-on 的配置选项,完成配置。这里的重点在于,有很多 add-ons 在浏览器的上下文选单中的项目是可以在其配置选项里关掉的,如果不需要,就关掉它。像 Save Text to File / Always On Top 之类的需要安装本地程序的也在这一步安装(放置)好其所需要的本地依赖并配置好它。需要注意的是,有些 add-ons 的选项在 about:addons 里调不出来,需要在它在 Tool Bar 上的 icon 上点击,然后在弹出的气泡中找到“选项”或“偏好设定”之类的链接去设置;
  8. 参考 Aris-t2 / CustomJSforFxxiaoxiaoflood / firefox-scripts 这两个库来选择配置所有有需要的 uc.js. 方法上参考前者的说明和 Wiki, 采用 Method 3, 补充的 uc.js 上可参考后者;如果有精力且有一定的德语阅读能力,则还可以参考 Endor8 / userChrome.js 来选用更多的 uc.js. 需要注意的是,不是所有的 uc.js 都能够使用并发挥功能,实际上,绝大多数的 uc.js 已经完全不能使用或者 malfunctioning 了,因此,在选用 uc.js 的时候,其原则应该是:如果并非一定要用,则不要使用,能用其他解决方案替代的,就不要用 uc.js. 比如第一个库里所提供的 ‘Urlbars / Location Bars / Awesomebars Autocomplete Popup With Two-lined Results’ 这个,就千万不要用,因为有 bug; 而同样的效果其实通过下一条中的 userchrome.css 即可实现。因此对于 uc.js, 其准则一定要是:只要有其他的实现方法,就不要用 uc.js 来实现。对于第一个库中提供的 ‘Downloads Button’ 一项,此处有一个修改的版本,修改的内容为:将鼠标主键与辅键点击的唤出内容对调(也即在这个修改后的脚本里,用鼠标主键点击 icon 会在新标签页打开 about:downloads),并将 icon 改为 Firefox 的默认下载 icon. 修改版本的代码如下:
// Downloads button script for Firefox 60+ by Aris (Modified by Tsetien)
//
// left-click on custom downloads button: opens 'about:downloads' in a new tab
// middle-click on custom downloads button: opens downloads library
// right-click on custom downloads button: no special function

(function () {

	try {
		Components.utils.import("resource:///modules/CustomizableUI.jsm");
		var {
			Services
		} = Components.utils.import("resource://gre/modules/Services.jsm", {});
		var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService);

		var button_label = "Downloads";

		CustomizableUI.createWidget({
			id: "custom-downloads-button",
			defaultArea: CustomizableUI.AREA_NAVBAR,
			removable: true,
			label: button_label,
			tooltiptext: button_label,
			onClick: function (event) {
				if (event.button == '1') {
					try {
						BrowserDownloadsUI();
					} catch (e) {}
				} else if (event.button == '0') {
					try {
						var mainWindow = Components.classes["@mozilla.org/appshell/window-mediator;1"]
							.getService(Components.interfaces.nsIWindowMediator)
							.getMostRecentWindow("navigator:browser");
						mainWindow.gBrowser.selectedTab = gBrowser.addTab('about:downloads', {
							triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal()
						});
					} catch (e) {}
				}
			},
			onCreated: function (button) {
				return button;
			}
		});

		var uri = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent('\
					\
					#custom-downloads-button .toolbarbutton-icon {\
					list-style-image: url("chrome://browser/skin/downloads/downloads.svg");\
					}\
					\
					'), null, null);

		sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);

	} catch (e) {
		Components.utils.reportError(e);
	};

})();
  1. 参考 Aris-t2 / CustomCSSforFx 这个库(仔细阅读库主页的说明及 userchrome.css 代码内的说明),以及 Guide How To Edit Your Context Menu, I need a little help with renaming an item in context menu 这两个网页来按照需要修改 Firefox 的外观以及上下文菜单。对于上下文菜单的修改的主要方向有二,一是删繁就简,把自己用不到的项目用 {display: none !important;} 来隐藏起来,二是把一股脑堆在上下文选单最底下的 add-ons 项来根据自己的喜好挪一挪地方、排一排位置。需要注意的是,如果调取到的 id 带有编号,则最好在写的时候将这个编号扩展成一系列的项目。比如如果获得到的 id 的名字为 ‘popupwindow_ettoolong-menuitem-9’, 则为了保险,无论是想要隐藏它还是想要给他挪动位置,都最好将这些改动施用到从 ‘popupwindow_ettoolong-menuitem-1’ 到比如 ‘popupwindow_ettoolong-menuitem-30’ (有点夸张了), 因为一般这种情况下,最后这个编号有可能在不同条件下会变为不同的值,甚至每次开启 Firefox 后的值都不一样,因此这样做会比较保险些;
  2. 做好所有以上内容之后,按一下 Alt 键唤出主选单,点选‘History’ > ‘Clear Recent History…’, 在第一行处选择 ‘Everything’ 然后把下面所有的勾都勾上,点 ‘OK’ 后静候片刻(因为可能会卡住),然后再重来一次。两次之后,再次回到 Clear History 的窗口,这次将勾选项改为只勾选 Cache, 其他都不要勾选,然后点选 ‘OK’. 关闭 Firefox, 进入 profile 文件夹,将其中的 bookmarkbackups, cache2, chrome_debugger_profile, crashes, jumpListCache, minidumps, sessionstore-backups, shader-cache, startupCache, thumbnails 这几个文件夹彻底删除。完成后,将剩余内容全选并使用任意一款压缩软体打包,作为初始 profile 的备份来保存。