Firefox (正體中文) - ArchWiki

Jump to content

# Firefox (正體中文)

From ArchWiki

相關文章

- Firefox/Tweaks
- Firefox/Profile on RAM
- Firefox/Privacy
- Browser extensions
- Chromium
- Opera

翻譯狀態：本文章是 Firefox 的翻譯版本。最近一次的翻譯時間：2022-05/10。點擊本連結查看英文頁面之後的變更。

Firefox 是由 Mozilla 開發的開放原始碼圖形界面網頁瀏覽器。

## 安裝

Firefox 可以透過 firefox 軟體包來 安裝。

其他版本:

- Firefox Developer Edition — 專門為開發者打造的瀏覽器

  https://www.mozilla.org/firefox/developer/ || firefox-developer-edition

- Firefox Extended Support Release — 長期支援版本

  https://www.mozilla.org/firefox/organizations/ || firefox-esrAUR 或 firefox-esr-binAUR

- Firefox Beta — 發行前版本

  https://www.mozilla.org/firefox/channel/desktop/#beta || firefox-beta-binAUR

- Firefox Nightly — 搶先體驗版本 (experimental features)

  https://www.mozilla.org/firefox/channel/desktop/#nightly || firefox-nightlyAUR

- Firefox KDE — OpenSUSE 加入了一些附加元件 ，與 KDE 整合的版本

  https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox || firefox-kde-opensuseAUR、firefox-kde-opensuse-rpmAUR、firefox-kdeAUR 或 firefox-developer-edition-kdeAUR

- 除了以上版本，還有一些具有特殊功能的分支，請查看 List of applications#Gecko-based。

除了英文以外，Firefox還有其他語言，語言套件名稱通常叫做 `firefox-i18n-languagecode` (其中， `languagecode` 代表語言代號，像是 de、ja、fr等)。 firefox 的可用語言列表可以查看 firefox-i18n；firefox-developer-edition 的可用語言列表可以查看firefox-developer-edition-i18n；firefox-nightlyAUR 的可用語言列表可以查看firefox-nightly-。

註記: -nightly 和 -developer-edition 因為會頻繁更新翻譯，可能導致崩潰，所以停用語言套件。 你可能需要在 `about:config` 中設定 `intl.locale.requested` 來強制變更使用者介面語言 [1]。

## 附加元件

Firefox 擁有龐大的附加元件站，使用這些附加元件可以增加新的功能或修改既有的功能。Firefox 的附加元件管理員負責管理已安裝的附加元件和找尋新的附加元件。

想知道如何安裝新的附加元件或查看附加元件列表，請查看 Browser extensions。

### 增加搜尋引擎

搜尋引擎可以在書籤中的 `網址` 部分填入帶有 %s 的網址來加入，`關鍵字` 部分使用者可以自行定義：

    網址:
    https://duckduckgo.com/html/?q=%s
    關鍵字:
    d

想要搜尋時，可以在網址列先輸入自定義的關鍵字，後面接著要搜尋的字串，例如，`d archwiki` 會在 DuckDuckGo 中搜尋 `archwiki`。

搜尋引擎也可以透過安裝附加元件來增加，可以查看這個網頁 來尋找可用的搜尋工具或引擎。

Mycroft Project 也提供許多種的搜尋引擎可供使用。

你也可以使用 add-to-searchbar 擴充套件藉由右鍵點擊各個網站的搜尋框，選擇Add to Search Bar...來增加該網站搜尋引擎到搜尋列。

#### firefox-extension-arch-search

安裝 firefox-extension-arch-searchAUR 軟體包在 Firefox 工具列增加 Arch 相關搜尋(AUR、維基、論壇、軟體包等)。

## 外掛程式

自 Firefox 85 以後，不再支援外掛程式，包含 Flash Player。[2][3]。

## 偏好設定

Firefox 設定編輯器可以新增或修改程序預設的偏好設定，這些偏好設定大多是不會出現在偏好設定畫面中的進階設定值，如果想要進入設定編輯器，可在網址列輸入：

    about:config

這些偏好設定會影響目前的使用者設定檔，也有可能透過 Firefox Sync 同步到其他裝置。請注意，只有 `about:config` 的部分設定才有可能透過這種方式同步，想知道哪些設定會被同步可以在 `about:config` 搜尋 `services.sync.prefs` 。你可以藉由加入以 services.sync.prefs.sync 為首的布林值來同步額外設定和第三方設定值。例如，想同步 NoScript 的白名單可以使用：

    services.sync.prefs.sync.capability.policy.maonoscript.sites

布林值 `noscript.sync.enabled` 必須要設定成 `true` 才可以透過 Firefox Sync 來同步 NoScript 的設定值。

### 設定的儲存位置

Firefox 透過使用者設定檔資料夾的 `prefs.js` 儲存使用者設定值，使用者設定檔資料夾通常位於 `~/.mozilla/firefox/xxxxxxxx.default/`。

Firefox 也允許透過 `user.js` 儲存設定值: user.js 也存在於使用者設定檔資料夾。 `user.js` 的設定值將會取代 `prefs.js` 的設定值。 如果想要知道如何修改這個文件，可以先看看 custom user.js，這個是對於注重隱私與安全性使用者的相關設定檔。

上述的方法有個缺點，就是這些設定不會套用到整個系統，而且，這也不是一個預先設定值(pre-configuration)，因為你必須先開啟瀏覽器才會建立使用者設定檔，所以，你可以先讓 firefox 建立新的使用者設定檔後關閉瀏覽器，然後 複製 之前已經建立好的使用者設定檔到資料夾。

有時候你想要鎖定某些設定值，可以幫助你自訂 Firefox。你可以根據 這裡 的步驟建立一個全域設定值:

1. 建立 `/usr/lib/firefox/defaults/pref/local-settings.js`:

    pref("general.config.obscure_value", 0);
    pref("general.config.filename", "mozilla.cfg")

2. 建立 `/usr/lib/firefox/mozilla.cfg` (在這裡儲存設定值):

    //
    //...你的設定...
    // 如果你想要停用 Pocket，請取消註解以下幾行
    // lockPref("extensions.pocket.enabled", false);
    // lockPref("browser.newtabpage.activity-stream.feeds.section.topstories", false);

請注意，第一行必須是 `//`，這和 `user.js` 語法類似。

### 多媒體播放

Firefox 使用 FFmpeg 播放在 HTML5 的`<audio>` 和 `<video>` 元素中的多媒體。 造訪 video-test page 和 audio-test page 來查看所支援的格式。

Firefox 使用 PulseAudio 來播放和擷取音訊。如果沒有安裝 PulseAudio 的話，Firefox 會使用 alsa。

提示：

如果沒有設定音效，Firefox 可能無法播放影片。 如果你有打算使用 PipeWire 和 WirePlumber，請確保它們能夠正常運作。

#### HTML5 數位版權管理(DRM)、Widevine

Widevine 是Netflix、Amazon Prime Video等廠商為了保護自家影片的數位版權管理工具。 你可以在 設定 > 一般 > 數位權利管理（DRM）內容 啟用它。 如果你造訪一個有 Widevine 的網站但 Firefox 的選項沒有啟用，Firefox 會在網址列下方顯示要求安裝 DRM，允許後並等待其下載完成，你就可以觀看受 Widevine 保護的影片內容了。

在有 Widevine 的情況下，因為沒有使用 hardware DRM playback，Firefox最高只能播放畫質 720p 的影片。在觀看 DRM 內容的時候也不要使用隱私模式。

#### Open With 附加元件

1. 安裝 Open With 附加元件.
2. 前往 附加元件與佈景主題 > Open With > 選項.
3. 根據步驟安裝必要檔案並測試
4. 點選 新增瀏覽器
5. 填入名稱以及正確的指令，例如 /usr/bin/mpv
6. (額外步驟) 可以加入一些參數，例如你可能想要 `--force-window --ytdl`
7. 在連結按右鍵或訪問有影片的網頁，在 Open With 菜單中選擇上面剛建立的選項，如果網站有被支援，mpv應該會被打開

同樣的步驟也可以用於影片下載器，像是 youtube-dl。

#### 硬體加速

在 Wayland [4] 和 Xorg [5] [6] 下可以透過 VA-API 來使用 Hardware video acceleration。

在 Firefox 中啟用 VA-API:

1. 確定你的顯示卡可以使用 VA-API
   - 依照 Hardware video acceleration 的步驟來驗證是否可以用和安裝 VA-API 驅動程式(如果需要的話)
2. 確保 WebRender 已經啟用。
   - 可以從 `about:support` 中的 `Compositing` 來查看是否已經啟用 WebRender，預設情況下，GNOME 和其他桌面環境是啟用的 [7]。
     - 請確認你不是使用軟體式 WebRender(Software WebRender)，因為它在 2021 年 8 月已經失效了 [8]。
     - 如果有需要，你可以藉由將 `gfx.webrender.all` 設定為 `true` 來強制啟用硬體 WebRender。
3. 在 `about:config` 中新增以下設定值:
   註記: Firefox 96 只要設定 `media.ffmpeg.vaapi.enabled` 和 `media.rdd-ffmpeg.enabled` 為 true 應該 就可以了。 以下有許多設定因為 RDD 沙盒 已大致上被修復而不再被需要。 然而，有些問題可能還存在 [9]。
   註記: 自 Firefox 97 起， 你只需要設定 `media.ffmpeg.vaapi.enabled` 為 true 應該 就可以了。[10]
   註記: Firefox 98 中，VA-API 會被 RDD 沙盒封鎖，但可以藉由設定 `MOZ_DISABLE_RDD_SANDBOX=1` 環境變數來繞過限制，雖然這麼做不太安全。 [11]
   - `media.ffmpeg.vaapi.enabled` 設定為 `true` 來在 VA-API 中使用 FFmpeg
   - `media.ffvpx.enabled` 設定為 `false` 來停用 VP8/VP9 的內部編碼器。 這個選項是必要的，儘管 這個錯誤 已經被修正了 [12][13]
   - `media.navigator.mediadatadecoder_vpx_enabled` 設定為 `true` 來讓 WebRTC 使用 VA-API 硬體解碼 [14]
   - 將 `media.rdd-vpx.enabled` 設為 `false` 來停用 VP8、VP9 的遠端資料解碼器程序。 Firefox 會嘗試使用 VP8、VP9 的 RDD 程序，但 RDD 沙盒會阻擋 VA-API 的存取 [15]。 停用 VP8、VP9 的遠端資料解碼器程序的意思是 VA-API 將會在內容處理程序中執行。 Firefox 96 大致上已經支援在 RDD 程序中執行 VA-API 了。
     - 另一個可行的解決方式是將 `media.rdd-process.enabled` 設為 `false` 來完全停用 RDD 程序，而不是像上述所說的只停用 VP8、VP9 。
   - 在 Intel 處理器上，某些倩況下在使用 Intel iHD 驅動程式 intel-media-driver 時，VA-API 可能會無法正常使用，你可以試著使用 Intel i965 驅動程式 libva-intel-driver。 這個方法不適用於 Intel Iris Xe 顯示晶片，因為它只被 intel-media-driver 支援。 幸運地，Firefox 96 推出了更佳支援性的 RDD 程序，對於 intel-media-driver 應該有幫助。 [16] [17] [18]。
     - 如果以上方法皆不可行，在萬不得已的情況下，可以停用內容處理程序的沙盒，但是，這會有很嚴重的安全疑慮並且將會無法防禦來自攻擊者的攻擊，因此建議不要更動沙盒的設定 [19]。 如果非得要這麼做，你可以把 `security.sandbox.content.level` 設為 `0` 來停用內容處理程序的沙盒 [20]。
4. 使用以下 environment variable 來執行 Firefox:
   - 在使用 Wayland 的情況下, 使用 `MOZ_ENABLE_WAYLAND=1`，詳情請看 #Wayland.
   - 在使用 Xorg 的情況下，Firefox 自從版本 94，預設使用 EGL 模式執行，所以不用特別設定。
     - 對於舊版的 Firefox，使用 `MOZ_X11_EGL=1` 或在 `about:config` 中設定 `gfx.x11-egl.force-enabled` 為 `true` 和 `gfx.x11-egl.force-disabled` 為 `false`

警告： 停用內容處理程序的沙盒會有安全疑慮，自 Firefox 96 開始支援在 RDD 程序中執行 VA-API。
提示：

- 你可以透過 Hardware video acceleration#Verification 檢查 Firefox Va-API 的日誌來確認有沒有使用 VAAPI。 使用 `MOZ_LOG="PlatformDecoderModule:5"` 環境變數來執行 Firefox 並在播放影片時確認日誌有輸出以啟用 VA-API(搜尋 VA-API 字串)。 請注意，日誌裡面可能只會表示前面提到的 compositors 的其中一種(WebRender 或 OpenGL)，取決於你做的設定。
- 你的硬體必須能夠支援特定編碼才可以在 YouTube 使用硬體解碼。 你可以透過 Hardware video acceleration#Verifying VA-API 來檢查硬體支援程度，YouTube 影片的編碼 有時候 可以藉由 h264ify 或 enhanced-h264ify 附加元件控制，或者你也可以安裝 firefox-h264ifyAUR。

註記:

- NVIDIA 的閉源驅動版本 470 開始支援 DMA-BUF [21][22]。 將 CUDA、DMA-BUF 和 libva-nvidia-driverAUR 一起使用可能可以成功執行 [23]。 Firefox 的硬體加速需要 DMA-BUF [24]，而且現在 VDPAU 或 libva-vdpau-driver 都不支援 DMA-BUF，所以最後一個選項可能沒有作用。
- 目前 Firefox 的 VAAPI 可以解碼 H.264/AVC、VP8、VP9 和 AV1 格式的影片，AV1 格式至少需要 Firefox 98 [25]。
- 在擁有多個顯示卡的系統中，根據 這個已解決問題 應該會自動為 VA-API 選擇合適的顯示卡。
- 有些影片(例如 YouTube VR) 可能會因為 `media.ffvpx.enabled` 設定為 `false` 而顯示黑畫面 [26]。
- 為了解決 VA-API 不能在 RDD 程序中正確執行，你可以停用 RDD 程序的沙盒，而不用將 VA-API 從內容處理程序移到上述建議的程序，但不推薦這種行為，因為停用沙盒將會無法防禦來自攻擊者的攻擊，會有嚴重的安全疑慮。 你可以使用 `MOZ_DISABLE_RDD_SANDBOX=1` 環境變數來停用沙盒。
- AMDGPU 的使用者如果有用 linux-hardened 可能需要用 `CONFIG_CHECKPOINT_RESTORE=y` 重新編譯 linux-hardened，因為 mesa 需要 kcmp 系統呼叫，但是可能不再需要做這個步驟因為 這個問題已經解決了。

### 拼字檢查

Firefox 可以使用安裝於系統的 Hunspell 字典或藉由附加元件安裝的字典來檢查拼字。

想要在特定語言開啟拼字檢查只要在任何輸入區塊按右鍵並勾選 拼字檢查。 如果要為拼字檢查選擇特定語言，你必須要再按一次右鍵並在 語言 中選擇想要的語言。

如果語言選項中沒有預設語言，請查看 #Firefox 不記得拼字檢查預設語言。

#### Hunspell 字典

安裝 Hunspell 和你需要語言的字典。

#### 字典附加元件

你可以藉由在任何輸入區塊按右鍵並在 語言 中點選 新增字典... 從 字典與語言套件清單 選擇你想要的字典。

提示： 俄文的附加元件已被打包成 firefox-spell-ru。

### 與 KDE 整合

- 為了讓 KDE 長得和 GTK 應用程式一樣(包括 Firefox)，你可以安裝 breeze-gtk 和 kde-gtk-config，然後前往系統設定 外觀 > 應用程式風格 > 設定 GNOME/GTK 應用程式風格…，並選擇 'Breeze'。
- 為了在 Firefox 64 和之後的版本能夠使用 KDE 文件選擇器和對話框，安裝 xdg-desktop-portal 和 xdg-desktop-portal-kde，然後做以下任一項步驟:
  - 在 `about:config` 中將 `widget.use-xdg-desktop-portal.mime-handler` 設定為 `1`。 你也應該要將 `widget.use-xdg-desktop-portal.file-picker` 由 `2` 設為 `1`。
  - 使用 `GTK_USE_PORTAL=1`環境變數 執行 Firefox。

    註記: 使用 `GTK_USE_PORTAL=1` 或將 `widget.use-xdg-desktop-portal.mime-handler` 設為 `1` 會導致 Firefox 每次啟動都會問你要不要設為預設瀏覽器.

- 為了和 KDE MIME 型式系統、代理伺服器、文件選擇對話框整合，你可以使用從 AUR 安裝經過 OpenSUSE 改造的 firefox-kde-opensuseAUR，或者，你可以建立一個從已廢棄 `~/.local/share/applications/mimeapps.list` 到 MIME 資料庫 `~/.config/mimeapps.list` 的符號連結來達成與 MIME 型式系統的整合。
- 擴充套件 / 附加元件可能也會提供額外的整合，像是:
  - 和 Plasma 整合: 需要 plasma-browser-integration 和 Plasma 整合附加元件。

    提示： 為了避免出現重複的多媒體播放器小工具項目或工具列圖示，請將 `media.hardwaremediakeys.enabled` 設為 `false`，這會停用來自 Firefox 的多媒體項目，讓它只用來自 Plasma 𢿫合附加元件的項目。

## 小提示與小技巧

一般加強技巧可以查看 Firefox/Tweaks，和隱私相關的加強技巧可以查看 Firefox/Privacy。

### 暗色主題

正常情況下，Firefox 應該會跟隨你的 GTK 主題設定和你的系統暗色外觀設定(例如 GNOME 或 KDE 的外觀設定)，如果沒有跟隨系統設定的話，請確認你有安裝正確的 xdg-desktop-portal 套件。

自從 Firefox 68 開始，不管你的主題是否是暗色主題，你都可以讓 Firefox 的所有界面甚至是網頁開啟暗色主題，你可以藉由在 `about:config` 將 `ui.systemUsesDarkTheme` 設為 `1` [27]。

自從 Firefox 100 開始，網頁暗黑模式的進階控制是可選的(使用 CSS 媒體查詢 prefers-color-scheme)，在 Firefox 裡可以使用 `layout.css.prefers-color-scheme.content-override`，將這個設定設為 `3` 來使其跟隨瀏覽器主題，設為 `2` 來使其跟隨系統主題設定(前面所述的 `ui.systemUsesDarkTheme`，如果使用者沒有更改設定或系統不支援暗黑模式設定的話，預設值為 `0`)，如果設為 `1` 或 `0`，則代表強制使用明亮模式或暗黑模式，這個設定在可以在 Firefox 的使用者設定 一般 > 語言與外觀 > 網站外觀 中找到。

### 畫面更新率

如果 Firefox 無法自動偵測正確的畫面更新率，Firefox 會將它預設為 60 fps，你可以手動將 `layout.frame_rate` 設為正確的數值(例如 144 或 144 Hz)。

### 限制記憶體使用量

為了防止頁面使用過多的記憶體(可能導致 OOM)，你可以使用 Firejail 和 `rlimit-as` 選項。

### 新分頁位置

你可以設定 `browser.tabs.insertAfterCurrent` 和 `browser.tabs.insertRelatedAfterCurrent` 來控制新分頁的出現位置(相對位置或絕對位置)。 詳情請看 [28]。

### 網頁截圖

你可以使用截圖按鈕(可於漢堡選單 > 更多工具 > 自訂工具列 中加到工具列)或在網頁按右鍵，並選擇 拍攝畫面截圖 來截圖網頁，詳情請看 [29]。 你也可以使用開發人員工具裡的截圖按鈕來截圖，你可以從開發人員工具設定來加入。開發人員工具設定可以從開發人員工具頁面右上的三個點來開啟。

### Wayland

較新版本的 Firefox 支援藉由環境變數開啟 wayland 模式。

    $ MOZ_ENABLE_WAYLAND=1 firefox

為了能讓它永久啟用，你可以查看 Environment variables#Graphical environment，並正常從啟動器啟動它。

你可以藉由 Window Protocol 來驗證是否有開啟成功，在網址列輸入 `about:support` 並檢查 Window Protocol， 它應該顯示 `wayland`。 如果它顯示 `x11` 表示你正在 Xorg 顯示伺服器中執行 Firefox；如果它顯示 `xwayland` 表示你的系統是使用 Wayland，但你將 Firefox 當作傳統 X11 應用程式來執行。

如果你需要一直在 Wayland 和 X.org 中變換，在你的登入 shell 時加入判斷式可能對你有幫助，例如 Bash 的 `~/.bash_profile`:

    if [ "$XDG_SESSION_TYPE" == "wayland" ]; then
        export MOZ_ENABLE_WAYLAND=1
    fi

### 視窗管理員規則

使用`--class` 選項更改 Firefox 的 WM_CLASS 字串來套用不同設定到 Firefox 視窗。

#### 使用者設定檔

你需要多個使用者設定檔才可以開啟新的 Firefox 實例，你可以藉由以下方法建立新的使用者設定檔:

    $ firefox [--new-instance] -P

啟動 Firefox 時，如果沒有使用者設定檔目前沒有被使用的話，可以指定類別:

    $ firefox [--new-instance] -P 使用者設定檔名稱 --class=類別名稱

Firefox Profilemaker 可以用於建立你喜好預設值的使用者設定檔。

### 觸控螢幕手勢與觸控板捲動

用 environment variable `MOZ_USE_XINPUT2=1` 開啟 Firefox 來啟用觸控手勢(例如捲動或兩指放大)與一對一觸控板捲動。 在 Wayland 模式下，你可能也需要設定 `MOZ_ENABLE_WAYLAND=1`。

### 多個首頁

要讓 Firefox 在開啟視窗時同時開啟多個分頁，首先先打開你想要的網頁，然後前往 偏好設定 > 首頁，在 首頁與新分頁 下點選 使用目前所有頁面 按鈕。

你也可以直接前往 偏好設定 > 首頁，在 首頁與新分頁 下把第一欄設為 自訂網址...，然後用以下格式輸入你想要作為首頁的網址：

    https://url1.com|https://url2.com|https://url3.com

## 疑難排解

### 安全模式

在啟動 Firefox 時加上參數 `-safe-mode` 來啟動 安全模式，這會停用附加元件、主題、硬體加速、即時編譯和其他附加功能。

安全模式也可以藉由 Firefox 的漢堡選單，點擊 說明，選擇 重新啟動並停用附加元件…，Firefox 會重新啟動並顯示 Firefox 安全模式對話框。

自 Firefox 88，安全模式的英文從 Saft Mode 改為 Troubleshoot Mode。

### 重新整理 Firefox

某些使用者在 Firefox 中遇到的問題可能是由使用者設定檔導致(比如說毀損)。

如果你已經排除其他可能的原因，那你可以試試創建新的使用者設定檔，看看是否解決你的問題，更多如何創建新的使用者設定檔和如何切換設定檔的資訊可以在 Firefox 說明頁面 中找到。

如果創建新的使用者設定檔可以解決你的問題，你應該切回你原本的設定檔並考慮重新整理你的 Firefox。

重新整理 Firefox 會保留所有的瀏覽記錄、下載記錄、書籤、網頁表單自動完成資訊、cookies、個人字典和密碼，然後轉移它們到沒有附加元件、主題、附加元件資料、設定的新使用者設定檔，並會保留原設定檔的備份。

要重新整理設定檔，前往 `about:support`，然後點擊 重新整理 Firefox，並確認。`about:support` 也可以從漢堡選單的 說明，選擇 疑難排除資訊 中找到。

更多關於 重新整理 Firefox 的資訊，包括被轉移資料的進階資訊，可以在 Firefox 說明頁面 中找到。

### 停用硬體加速

如果你對於 Firefox 的硬體加速有問題，例如畫面靜止或毀損，試著用 安全模式 啟動 Firefox 並確定問題是否存在。如果這個步驟可行，只要將 `about:config` 中的 `media.ffmpeg.vaapi.enabled` 設為 `false` 來停用硬體加速並重新啟動 Firefox 即可。

### 某個附加元件不能在某些 Mozilla 的網域中使用

預設情況下，附加元件不會影響到 `extensions.webextensions.restrictedDomains` 中指定的網頁。 如果你不想這麼做，你可以把這個欄位清空(一些特別頁面像是 `about:*` 仍不被影響)。

### Firefox 啟動時間過長

如果 Firefox 花太多時間啟動，有可能是因為沒有設定 `/etc/hosts`。查看 Network configuration#Local network hostname resolution 來了解如何設定。

不正常行為的 Firefox 附加元件或太多附加元件可能導致啟動緩慢，這可以利用 安全模式 來確認，安全模式將會停用附加元件。

啟動緩慢的也有可能是由使用者設定檔導致，更多有關使用者設定檔的疑難排解資訊請查看 #重新整理 Firefox。

### 疑難排解字型

查看 Font configuration。

Firefox 有一個設定決定從字型設定檔取代多少次。你可以更改 `gfx.font_rendering.fontconfig.max_generic_substitutions` 至 `127`(可用的最大數值) 來允許它使用所有你的取代規則。

針對 emoji，Firefox 使用 Twemoji Mozilla 字型，你可以在 `about:config` 將 `font.name-list.emoji` 設為 `emoji` 來使用系統的 emoji 字型。 另外，為了避免 Mozilla 字型干擾你系統的 emoji 字型，請將 `gfx.font_rendering.opentype_svg.enabled` 設為 `false` 或將 `/usr/lib/firefox/fonts/TwemojiMozilla.ttf` 移除，詳情請查看 pacman#Skip files from being installed to system。

### 設定 email 用戶端

在瀏覧器，`mailto` 連結預設會開啟一個網頁應用程式，像 Gmail 或 Yahoo Mail。你可以前往 設定 > 應用程式，然後修改內容類型為 `mailto` 的動作來開啟外部 email 程式，程式的路徑必須是絕對路徑(例如 Kmail的話是 `/usr/bin/kmail`)。

在瀏覧器外，`mailto` 連結是由 `x-scheme-handler/mailto` MIME 型式處理，它可以簡易地使用 xdg-mime 來設定。詳情請查看 Default applications。

### 檔案關聯

請查看 Default applications.

### Firefox 一直建立 ~/Desktop ，但我不要

Firefox 預設使用 `~/Desktop` 來存放下載和上傳的檔案。你可以設定 XDG user directories 的 `XDG_DESKTOP_DIR` 來更改至其他資料夾

### userChrome.css 和 userContent.css 的更改被忽略了

在 `about:config` 中將 `toolkit.legacyUserProfileCustomizations.stylesheets` 設為 `true`。

### 中鍵點擊行為

如果想要和類 UNIX 系統一樣，可以使用中鍵點擊貼上已複製的文字，你可以在 `about:config` 中將 `middlemouse.contentLoadURL` 或 `middlemouse.paste` 設為 `true`。 自 Firefox 57，預設已經啟用 `middlemouse.contentLoadURL` 了。

將 `general.autoScroll` 設為 `true` 來使用中鍵點擊滾動頁面(Windows 瀏覽器預設行為)。

### 按 Backspace 鍵無法返回上一頁

根據 MozillaZine，`Backspace` 鍵會依照瀏覧器在不同作業系統而有不同作用，不過你可以藉由一些設定來允許 `Backspace` 鍵返回上一頁、前進下一頁、往上滾動、往下滾動或什麼都不做。

你可以在 `about:config` 將 `browser.backspace_action` 設為 `0` 來使用 `Backspace` 鍵返回上一頁、`Shift+Backspace` 前進下一頁。

你也可以將 `browser.backspace_action` 設為 `1` 來使用 `Backspace` 鍵往上滾動、`Shift+Backspace` 往下滾動。設定其他數值會讓它不執行任何動作(Arch Linux預設設定為 `2`，換句話說，`Backspace`預設沒作用)。

### Firefox 沒有記住登入資訊

這有可能是因為 Firefox 的使用者設定檔資料夾的 `cookies.sqlite` 損壞了，你可以在 Firefox 沒有開啟時，重新命名或刪除 `cookie.sqlite` 來修正它。

打開終端機並輸入以下指令:

    $ rm -f ~/.mozilla/firefox/<profile id>.default/cookies.sqlite

其中，profile id 是一串由 8 個隨機字母組成的字串。

重新啟動 Firefox 並檢查問題是否解決。

如果問題依舊存在，檢查 `cookies.sqlite.bak` 檔案是否存在，你可以使用它回復 cookies。

### 無法進入或離開全螢幕

如果 Firefox 偵測到符合 EWMH/ICCCM 標準的視窗管理員，它會嘗試傳送一個 WM_STATE 訊號給根視窗來讓 Firefox 進入或離開全螢幕模式(如視窗管理員所定義的)。 視窗管理員可以選擇忽略這個訊號，如果它們真的這麼做的話，Firefox 將會認為這個請求被拒絕，從使用者來看就是什麼事都沒發生，這可能導致無法讓影片全螢幕。 解決辦法是在 `about:config` 將 `full-screen-api.ignore-widgets` 設為 `true`。

相關錯誤報告：Bugzilla 1189622。

### JavaScript 右鍵選單在某些網站消失

你可以試著將 `about:config` 的 `dom.w3c_touch_events.enabled` 設為 `0`。

### Firefox 不記得拼字檢查預設語言

預設拼字語言可以藉由以下步驟設定:

1. 在網址列輸入 `about:config`。
2. 將 `spellchecker.dictionary` 設為你想要的語言，例如 `en_GB`。
3. 注意，如果是用 Firefox 附加元件安裝字典，請輸入 `en-GB`;如果是 hunspell 的字典，則是 `en_GB`。

如果你只有 hunspell 的字典，Firefox 可能不會記住你的拼字語言設定，你可以安裝至少一個 字典 附加元件來解決這個問題。 請注意，你現在應該在 附加元件管理員 裡會多一項 字典，你可能需要更改 `about:preferences#general` 中 網頁優先顯示語言 的順序來讓預設拼字語言和字典對應。

StackExchange 平臺的相關問題: [30]、[31]、[32]。

相關問題回報: Bugzilla 776028、Ubuntu bug 1026869。

### 某些 MathML 符號無法顯示

你需要一些 Math 字型像是 Latin Modern Math 和 STIX(查看這個 MDN 網頁: [33])來正確地顯示 MathML。

在 Arch Linux，這些字型是由 texlive-core 和 texlive-fontsextra 提供，但它們預設不適用於 Fontconfig，詳情請查看 TeX Live#Making fonts available to Fontconfig。 你也可以試試看其他 Math 字型。 如果你遇到了這個錯誤 [34]，安裝 otf-latinmodern-math 會有幫助。

### 在滾動頁面時螢幕撕裂

請嘗試在 設定 > 瀏覽 中關閉平滑捲動。

### Firefox WebRTC 模組無法偵測麥克風

像 Firefox WebRTC getUserMedia 測試網頁 這類的 WebRTC 應用程式警告無法找到麥克風。 問題可以藉由設定 ALSA 和 PulseAudio 重現。 Firefox 除錯日誌會顯示以下錯誤:

    $ NSPR_LOG_MODULES=MediaManager:5,GetUserMedia:5 firefox

    ...
    [Unnamed thread 0x7fd7c0654340]: D/GetUserMedia  VoEHardware:GetRecordingDeviceName: Failed 1

你可以試著將 `about:config` 的 `media.navigator.audio.full_duplex` 設為 `false`，然後重新啟動 Firefox。

如果你正在使 PulseAudio module-echo-cancel 且 Firefox 不認得虛擬回音消除來源，這個可能也對你有幫助

### 無法登入我的中國帳號

Firefox 為中國使用者提供有別於國際帳號的在地化帳號。 從 firefox 軟體包安裝的 Firefox 預設使用國際帳號，你可以安裝 這個網頁上 的附加组件管理器來讓你登入你的中國帳號。

### 當使用 JACK 和 PulseAudio 播放某些影片時，沒有聲音

如果你正在同時使用 Jack 和 PulseAudio，然後在某些影片會沒有聲音，這有可能是因為這些影片是單聲道。 這通常發生於 JACK 設定使用多於雙聲道，但你卻使用一般的耳機。 解決方法是只要將 PulseAudio JACK Sink 的 `front-center` 埠連接到系統輸出的 `playback_1` 和 `playback_2` 埠。

你也可以用以下指令檔來做這件事：

    jack-mono.sh

    #!/bin/sh
    jack_connect "PulseAudio JACK Sink:front-center" "system:playback_1"
    jack_connect "PulseAudio JACK Sink:front-center" "system:playback_2"

記住這裡的 sink 與埠的名稱可能和你不一樣，你可以藉由一些工具像是 cadence 來檢查你的 JACK 設定。

### 無法使用地理位置定位

最近，Google 限制了 Arch Linux 使用它的定位服務，這會導致在啟用地理位置定位的網站會發生以下錯誤：`Geolocation error: Unknown error acquiring position`。區域限定的服務像是 Hulu 可能也會顯示類似的錯誤，即使已經開啟了定位服務，網站仍指出無法取得位置。

你可以換成使用 Mozilla Location Service 來避免發生這個問題。 在 `about:config` 中將 `geo.provider.network.url` 設為：

    https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%

詳情請查閱 FS#65241。

### 右鍵會直接點選右鍵選單的第一個選項

這個問題已經被發現在 i3、bspwm、xmonad 中會發生。

在 `about:config` 中將 `ui.context_menus.after_mouseup` 設為 `true` 就可以解決這個問題。

查看 [35]。

### Firefox 視窗在停用或啟用合成器時沒有重新繪製

不要設定 `MOZ_X11_EGL` 環境變數。

相關錯誤報告: Bugzilla 1711039。

### Firefox 每次開啟都會一直要求將其設為預設瀏覽器

你可以嘗試一些步驟: 如果你正在使用 桌面環境，請檢查在系統設定中 Firefox 是否是你的預設瀏覽器，如果不是，請設定它，不然你也可以執行以下由 xdg-utils 軟體包提供的 xdg-settings(1) 指令來查詢目前設定的預設瀏覽器:

    $ xdg-settings get default-web-browser

如果沒有回傳任何結果或不是 Firefox，那請執行這個指令來設定它:

    $ xdg-settings set default-web-browser firefox.desktop

如果 Firefox 仍持續問你預設瀏覽器，你可以試著設定 http 和 https URL 方案，或許可以讓它安靜點，你可以執行這些 xdg-mime(1) 指令來達成這件事:

    $ xdg-mime default firefox.desktop x-scheme-handler/http
    $ xdg-mime default firefox.desktop x-scheme-handler/https

如果以上方法還是不行，檢查一下你有沒有設定 `GTK_USE_PORTAL` 環境變數(不管設定什麼值)，如果有，請取消設定，相關問題報告: Bugzilla 1516290。 如果還是不行或你沒有設定環境變數，請前往 `about:config`，檢查一下 `widget.use-xdg-desktop-portal` 變數是否被設為 `true`，如果是，將它設為 `false`。

如果你想要取消自動預設瀏覽器檢查，前往 `about:config` 然後將 `browser.shell.checkDefaultBrowser` 設為 `false`。

### 影片卡卡的

如果你覺得影片看起來卡卡的，而且你發現在觀看影片時(特別是高畫質影片)，Firefox 只讓一顆核心滿載，這個可能對你有幫助。

前往 `about:config`，接著搜尋 `dom.ipc.processCount`，然後把 `dom.ipc.processCount.file` 從 1 設定為更高的數字，4 是個不錯的數字，不然你可以慢慢每次加 1，直到你滿意其結果。

### 孟加拉語字型在某些頁面中無法正常顯示

在大多數情況下，在安裝 noto-fonts 及將 Noto Sans Bengali 設為 字體及顏色 的預設字型就可以解決了。 然而，在某些社群網站，孟加拉語字型仍無法正常顯示。 在那些情況下，Mozilla 提供了有關如何查看頁面中加載的所有字體的詳細說明。 你可以使用 頁面檢測器 來查看特定頁面中 所有已載入的字型。 可以藉由從系統中移除不是 Noto Sans 的其他字型來永久解決問題。

在安裝其他套件時，有些字型可能會因為依賴而一併被安裝。 例如: chromium 會因為依賴而安裝 ttf-liberation，這些字型可能會自動在某些 Firefox 頁面載入而導致孟加拉語字型無法正常顯示，可以藉由以下步驟來解決:

警告： 這可能導致你的系統處在不完整的狀態。 請查看 System maintenance#Avoid certain pacman commands.

- 暫時強制移除 ttf-liberation:

      # pacman -R --nodeps --nodeps ttf-liberation

- 啟動 Firefox 並重新載入有問題的網站。
- 再次安裝 ttf-liberation， 使它被 Chromium 依賴:

      # pacman -S --asdeps ttf-liberation

### Web Speech API 沒有聲音

Firefox 使用 speechd 來達成文字轉語音(tts)。你可以使用 `spd-say "some test sentence"` 指令來測試是否可以唸出文字或使用 `spd-say -L` 指令來取得語音列表，如果列表中沒有任何語音，你可以藉由 espeak-ng 套件來安裝一些語音。 如果仍沒有解決問題，你可能還需要設定它們，你可以使用 `spd-conf` 指令或編輯 `.config/speech-dispatcher/speechd.conf` 設定檔來設定。 裡面這幾行應該不能被註解(前面沒有 #):

    AddModule "espeak-ng"                "sd_espeak-ng" "espeak-ng.conf"

    DefaultModule espeak-ng

## 參見

- 官方網站
- Mozilla 基金會
- MozillaWiki:Firefox
- Wikipedia:Mozilla Firefox
- Firefox 附加元件
- Firefox 佈景主題
- Mozilla 的 FTP
- mozillaZine 非官方論壇

Categories:

- 正體中文
- Web browser (正體中文)
- Mozilla (正體中文)