Firefox on Linux

来自Tsetien’s Wiki
跳转到导航 跳转到搜索
NB
此处所提及的 Linux 解决方案仅适用于 Debian 系列的、使用 KDE 桌面环境的 Linux 发行版。

安装以及 Profile 相关

使用——

install-firefox.sh
#!/bin/bash
sudo apt remove --autoremove firefox -y
[ -d "$HOME/.mozilla" ] && rm -rf "$HOME/.mozilla"
[ -d "$HOME/.cache/mozilla" ] && rm -rf "$HOME/.cache/mozilla"
sudo apt update
sudo apt install firefox-esr -y
sleep 2
firefox-esr &
sleep 5
pkill -f firefox

来解除现有的 Fire­fox 安装,并安装 Fire­fox ESR. 安装完成后会自动开启 5 秒然后关闭,以确保其预设的 Pro­file 资料夹建立。之后使用——

firefox-grab-profile.sh
#!/bin/bash
PF=$(grep Path= ~/.mozilla/firefox/profiles.ini | grep default-esr | cut -d= -f2)
if [ -d "$HOME/.mozilla/firefox/$PF" ]; then
	find "$HOME/.mozilla/firefox/$PF" -mindepth 1 -delete
	wget -O /tmp/myfirefoxprofilebackup.7z https://your.domain.com/path/to/your_firefox_profile.7z
	7z x -y /tmp/myfirefoxprofilebackup.7z -o"$HOME/.mozilla/firefox/$PF"
	chmod -R 755 "$HOME/.mozilla/firefox/$PF"
	rm /tmp/myfirefoxprofilebackup.7z
fi

来从 https://your.domain.com/path/to/your_firefox_profile.7z 处下载已经打包好的 Pro­file 压缩档(很明显此处的连结位址需要使用真实的个人 Pro­file 压缩档所在位址取代之),然后自动解压缩至预设 Pro­file 资料夹中。这一步也可以用来日后从网络来源更新(取代)Pro­file 资料夹。

NB
前述之内容已合并至 inst 一篇,故此处将不再更新,只做为历史保留。

不过,在从网络来源更新 Pro­file(而不是初始安装时灌入 Pro­file)之前,可能还想要将现有资料夹中的 content-prefs.sqlite, cookies.sqlite, favicons.sqlite, formhistory.sqlite, key4.db, logins.json, permissions.sqlite, places.sqlite 先备份起来。要这么做,可以手动进入 Fire­fox 的 Pro­file 资料夹然后使用下方第一个 bash 档来将它们打包,或是使用下方第二个 bash 档在任意位址将预设的 Pro­file 资料夹内的这几个档案打包。(需要将这两个 bash 档放入 /usr/local/bin/ 中并将其设为可执行模式。)

fpk
#!/bin/bash
files=("content-prefs.sqlite" "cookies.sqlite" "favicons.sqlite" "formhistory.sqlite" "key4.db" "logins.json" "permissions.sqlite" "places.sqlite")
7z a -t7z -mx=9 -aoa -mfb=273 -md=1024m -ms=on -mqs=on -mtc -mta -mtm -stl -mhe $1 "FxPD_$(date '+%y%m%d-%H%M').7z" "${files[@]}"
fpk-f
#!/bin/bash
PF=$HOME/.mozilla/firefox/$(grep Path= ~/.mozilla/firefox/profiles.ini | grep default-esr | cut -d= -f2)
files=("$PF/content-prefs.sqlite" "$PF/cookies.sqlite" "$PF/favicons.sqlite" "$PF/formhistory.sqlite" "$PF/key4.db" "$PF/logins.json" "$PF/permissions.sqlite" "$PF/places.sqlite")
7z a -t7z -mx=9 -aoa -mfb=273 -md=1024m -ms=on -mqs=on -mtc -mta -mtm -stl -mhe $1 "FxPD_$(date '+%y%m%d-%H%M').7z" "${files[@]}"

使用第一个 bash 档的好处是,它可以打包任意位址的 Fire­fox 或者 Fire­fox-based 浏览器的 Pro­file 资料夹中的这八个档案,只要手动进入 Fire­fox 或者 Fire­fox-based 浏览器的 Pro­file 资料夹所在之处,便可简单地使用 fpk 来打包。而第二个 bash 档则锁定了 Mo­zil­la Fire­fox 这款浏览器在操作系统内的预设位址所建立的属于 Fire­fox ESR 的预设 Pro­file 资料夹。用第二个的好处是,可以在任意位址开启命令提示然后使用 fpk-f 来将这一预设 Profile 资料夹内的这八个档案打包到在地。

无论使用哪一个,都可在输入 fpkfpk-f 时透过追加 -p 来令 7z 提示请求为压缩档设定密码,或者直接使用比如 -p123WSX 来为压缩档设定密码为 ‘123WSX’.

CSS Modification

在 Win­dows 下做好的 Fire­fox Pro­file 可直接放到 Lin­ux 下面去使用,反之亦然。(但对于另一款我连名字都不想提的十分难用的反人类操作系统则不然,尝试将别的操作系统下做好的 Fire­fox Pro­file 直接放过去会有无尽的问题。)唯 CSS 部分需要在已经调好的 Windows 版本上再做一些小的修改(Windows 下的 CSS 调修可参照此篇): 首先将 userChrome.css 在 Windows 版本之上做如下调整——

userChrome.css (EXCERPENDVM; CSS ver: 4.7.3)
/* @import "./css/appbutton/appbutton_in_titlebar.css"; /**/

然后在 Win­dows 版的 my_userChrome.css 的基础上,为所有左侧没有小图示的被改过名字的辅键选单 (con­text menu) 项目添加一列 padding-inline-start: 21px;, 具体来说就是要修改下面这些(淡黄色背景突显列为比照 Win­dows 版本新加的)——

NB
自 Firefox 140 起已无需做此部分修改,因为在 Linux 上已无法实现令图示与文字分别对齐(或者说实现起来巨麻烦)。
my_userChrome.css (EXCERPENDVM; CSS ver 4.7.1; Firefox ver: 115–138)
#copytabtitleurl_bugbugnow_net-menuitem-_menu0::after {
	content: "Both";
	display: -moz-box;
	padding-inline-end: 0.8rem;
	padding-inline-start: 21px;
}
#copytabtitleurl_bugbugnow_net-menuitem-_menu1::after {
	content: "Title(s) only";
	display: -moz-box;
	padding-inline-end: 0.8rem;
	padding-inline-start: 21px;
}
#copytabtitleurl_bugbugnow_net-menuitem-_menu2::after {
	content: "URL(s) only";
	display: -moz-box;
	padding-inline-end: 0.8rem;
	padding-inline-start: 21px;
}

#context-openlinkprivate {
	-webkit-box-ordinal-group: -11 !important;
	-moz-box-ordinal-group: -11 !important;
	-box-ordinal-group: -11 !important;
	order: -11 !important;
}
#context-openlinkprivate label {
	visibility: collapse !important;
	display: none !important;
}
#context-openlinkprivate::after {
	content: "Open in Private Window";
	display: -moz-box;
	padding-inline-start: 21px;
}

#context-stripOnShareLink label {
	visibility: collapse !important;
	display: none !important;
}
#context-stripOnShareLink::after {
	content: "Copy Clean Link (U)";
	display: -moz-box;
	padding-inline-start: 21px;
}

#strip-on-share label {
	visibility: collapse !important;
	display: none !important;
}
#strip-on-share::after {
	content: "Copy Clean (N)";
	display: -moz-box;
	padding-inline-start: 21px;
}

#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-url-wayback label {
	visibility: collapse !important;
	display: none !important;
}
#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-url-wayback::after {
	content: "Wayback Machine";
	display: -moz-box;
	padding-inline-end: 0.8rem;
	padding-inline-start: 21px;
}
#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-url-archive label {
	visibility: collapse !important;
	display: none !important;
}
#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-url-archive::after {
	content: "archive.today";
	display: -moz-box;
	padding-inline-end: 0.8rem;
	padding-inline-start: 21px;
}
#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-url-ghost-archive label {
	visibility: collapse !important;
	display: none !important;
}
#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-url-ghost-archive::after {
	content: "Ghost Archive";
	display: -moz-box;
	padding-inline-end: 0.8rem;
	padding-inline-start: 21px;
}
#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-url-both label {
	visibility: collapse !important;
	display: none !important;
}
#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-url-both::after {
	content: "All above";
	display: -moz-box;
	padding-inline-end: 0.8rem;
	padding-inline-start: 21px;
}
#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-image-url-wayback label {
	visibility: collapse !important;
	display: none !important;
}
#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-image-url-wayback::after {
	content: "Image > Wayback Machine";
	display: -moz-box;
	padding-inline-end: 0.8rem;
	padding-inline-start: 21px;
}
#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-link-url-wayback label {
	visibility: collapse !important;
	display: none !important;
}
#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-link-url-wayback::after {
	content: "Link > Wayback Machine";
	display: -moz-box;
	padding-inline-end: 0.8rem;
	padding-inline-start: 21px;
}
#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-image-url-archive label {
	visibility: collapse !important;
	display: none !important;
}
#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-image-url-archive::after {
	content: "Image > archive.today";
	display: -moz-box;
	padding-inline-end: 0.8rem;
	padding-inline-start: 21px;
}
#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-link-url-archive label {
	visibility: collapse !important;
	display: none !important;
}
#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-link-url-archive::after {
	content: "Link > archive.today";
	display: -moz-box;
	padding-inline-end: 0.8rem;
	padding-inline-start: 21px;
}
#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-image-url-ghost-archive label {
	visibility: collapse !important;
	display: none !important;
}
#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-image-url-ghost-archive::after {
	content: "Image > Ghost Archive";
	display: -moz-box;
	padding-inline-end: 0.8rem;
	padding-inline-start: 21px;
}
#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-link-url-ghost-archive label {
	visibility: collapse !important;
	display: none !important;
}
#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-link-url-ghost-archive::after {
	content: "Link > Ghost Archive";
	display: -moz-box;
	padding-inline-end: 0.8rem;
	padding-inline-start: 21px;
}
#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-image-url-both label {
	visibility: collapse !important;
	display: none !important;
}
#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-image-url-both::after {
	content: "Image > All above";
	display: -moz-box;
	padding-inline-end: 0.8rem;
	padding-inline-start: 21px;
}
#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-link-url-both label {
	visibility: collapse !important;
	display: none !important;
}
#_save-url-to-wayback-machine-firefox-addon-menuitem-_archive-link-url-both::after {
	content: "Link > All above";
	display: -moz-box;
	padding-inline-end: 0.8rem;
	padding-inline-start: 21px;
}

[id^="_ee9507aa-5b54-4548-a8b1-f1840b6d5c26_"] label {
	visibility: collapse !important;
	display: none !important;
}
[id^="_ee9507aa-5b54-4548-a8b1-f1840b6d5c26_"]::after {
	content: "Background Image";
	display: -moz-box;
	padding-inline-end: 0.8rem;
	padding-inline-start: 21px;
}

这里当然可以 con­so­li­da­te 一下,原版其实也可以 con­so­li­da­te, 但是我懒得动了。

由于在 Linux 上的 Fire­fox 最好不要去用那个“复刻版”的“Fire­fox 按钮”,因此有关 app­but­ton 的那些 CSS 修改可以完全跳过——如果是参照此篇来新建 Profile 并新(改)写 CSS 的话。但是如果是直接使用已经改好的 Win­dows 版的 CSS 档案,则改动过的 app­but­ton 部分因为也用不到,倒也没有必要“恢复原样”。