Mozilla Firefox: automatyczne ukrywanie paska kart przy tylko jednej otwartej karcie

Kategoria: Oprogramowanie Data publikacji: 5 komentarzy

Choć przeglądarka Mozilla Firefox ustępuje największemu konkurentowi — Google Chrome — pod względem wydajności, popularności i tempa rozwoju, ma jeden niezaprzeczalny atut: duże (jak na dzisiejsze czasy) możliwości konfiguracyjne. Pomimo ostatnich zmian i porzucenia przestarzałego formatu rozszerzeń, nadal oferuje ona dużą kontrolę nad swoim interfejsem. Opiszę dzisiaj, jak zmodyfikować pasek kart Firefoksa, by znikał przy tylko jednej otwartej karcie.

Opcja, o której tutaj piszę, była kiedyś wbudowana w lisią przeglądarkę, ale w ramach uproszczenia konfigurowalności interfejsu i utrzymania projektu, usunięto tę funkcję. Można ją jednak odtworzyć przy użyciu własnych stylów CSS interfejsu programu.

Zasada działania mojej modyfikacji jest następująca: jeżeli w oknie przeglądarki Mozilla Firefox otwarta jest tylko jedna karta, pasek kart ma być niewidoczny.
Otwarcie nowej karty (przy użyciu przycisku na pasku narzędziowym lub za pomocą skrótu klawiszowego) ma przywracać widoczność paska kart.

Ukryty pasek kart w Firefoksie na Arch Linuksie (na zrzucie widać też inne modyfikacje).

Można sobie zadać pytanie: no ale po co to komu? Otóż ja osobiście lubię mieć zawsze widoczny standardowy pasek tytułowy okna przeglądarki, a gdy mam otwartą tylko jedną kartę, pasek kart jest zbędny. Jednak rzeczywiście, jeśli używana jest tzw. dekoracja po stronie klienta, tj. karty wyświetlane są zamiast normalnego paska tytułowego, moja modyfikacja jest bezużyteczna.

Kod źródłowy do userChrome.css

/**
 * Firefox by default specifies the height for tabs container (tabs bar).
 * This code unsets height from tabs container and sets it separately to each tab.
 */
#tabbrowser-tabs, #tabbrowser-tabs > .tabbrowser-arrowscrollbox {
	min-height: 0 !important;
}
tab.tabbrowser-tab {
	min-height: var(--tab-min-height) !important;
}

/**
 * Following code is hiding only one opened tab from tabs container (tabs bar).
 *
 * Only one opened tab is hidden only when these conditions are met.
 *  * Private browsing mode is NOT used (Fx needs to show "private" indicator).
 *  * Accessibility service is NOT enabled (Fx needs to show "a11y" indicator).
 *  * Fullscreen view is NOT entered (Fx needs to show minimize/restore/close buttons).
 *  * Fx's customize page is NOT shown (otherwise it's hard to customize tabs bar).
 *  * Regular system title bar is used instead client-side (otherwise UI is broken).
 */
window:not([inFullscreen="true"]):not([tabsintitlebar="true"]):not([accessibilitymode="true"]):not([privatebrowsingmode]):not([customize-entered="true"])
tab.tabbrowser-tab[first-visible-tab="true"][last-visible-tab="true"] {
	display: none !important;
}

/**
 * Following code makes sure that one opened tab is re-shown when tabs toolbar
 * contains additional items (such as new tab button).
 *
 * This code is commented out because it can be buggy.
 * Uncomment it or remember to remove all items from tabs toolbar using customizer!
 * The code should work for Firefox 65 and newer.
 */
/*
#TabsToolbar-customization-target tabs#tabbrowser-tabs:not(:first-child)
tab.tabbrowser-tab[first-visible-tab="true"][last-visible-tab="true"],
#TabsToolbar-customization-target tabs#tabbrowser-tabs:not(:nth-last-child(2))
tab.tabbrowser-tab[first-visible-tab="true"][last-visible-tab="true"]
{
	display: -moz-box !important;
}
*/

Instrukcja instalacji

Poniżej wyjaśniam, w jaki sposób przygotować Firefoksa przed instalacją powyższego kodu.

  1. Przejdź do ekranu dostosowywania Firefoksa. Kliknij prawym przyciskiem myszy na pustym obszarze paska kart lub paska narzędziowego i wybierz „Dostosuj”.
  2. Zaznacz opcję „Pasek tytułu” na dole okna. Upewnij się, że okno Firefoksa posiada standardowy pasek tytułowy.
  3. Upewnij się, że po zaaplikowaniu modyfikacji będziesz w stanie otworzyć nową kartę w oknie z ukrytym paskiem kart. Jeśli posługujesz się płynnie skrótem klawiszowym Ctrl+T, otwierającym nową kartę, przejdź dalej. W przeciwnym razie, przenieś metodą „przeciągnij i upuść” ikonę „+” używaną do otwierania nowej karty z paska kart do paska narzędziowego.
  4. Sprawdź również, czy na pasku kart nie ma przypadkiem jakichś dodatkowych ikon i przycisków. Domyślnie Firefox nie umieszcza na pasku kart dodatkowych elementów, ale mogłeś je tam umieścić samodzielnie w przeszłości. Usuń wszystkie przyciski z paska kart, klikając nań prawym przyciskiem myszy i wybierając odpowiednią opcję.

Po wykonaniu powyższych czynności można opuścić widok dostosowywania interfejsu Firefoksa i przejść do właściwego procesu instalacji.

  1. Przejdź do rozwijanego menu głównego Firefoksa (lub do górnego paska menu, jeśli go używasz) i z podmenu „Pomoc” wybierz opcję „Informacje dla pomocy technicznej”. Alternatywnie możesz, „na hakera”, wpisać w pasku adresu frazę about:support.
  2. W sekcji „Katalog profilu” kliknij przycisk „Otwórz katalog”. W twoim systemie operacyjnym powinien otworzyć się folder z plikami Firefoksa.
  3. Jeżeli nie istnieje, utwórz w nim podkatalog o nazwie chrome. W folderze chrome utwórz plik o nazwie userChrome.css (wielkość liter jest tutaj szczególnie ważna na Linuksie) i wklej do niego podany wyżej kod CSS. Jeśli nie potrafisz, pobierz gotowy plik userChrome.css i umieść go w folderze chrome.
  4. Zrestartuj Firefoksa.

Powyższy styl CSS przetestowałem z Firefoksem w wersji 64, Firefoksem Developer Edition w wersji 65 oraz Firefoksem ESR w wersji 60.4. Przeglądarkę uruchomiłem testowo w systemie Windows 8, zaś na co dzień korzystam z systemu Arch Linux. Nie mam pojęcia, jak moja modyfikacja zachowa się na Mac OS.

Ukryty pasek kart w Firefoksie na Windows 8.

Modyfikacja nie zadziała, jeżeli otworzysz okno Firefoksa w trybie prywatnym, korzystasz z usług dostępności dla niepełnosprawnych, wyłączysz systemowy pasek tytułowy lub umieścisz dodatkowe ikony na pasku kart.

Jeżeli zechcesz zrezygnować z wprowadzonej zmiany, wystarczy tylko, że usuniesz plik userChrome.css z katalogu plików Firefoksa, do którego dostęp można uzyskać z okna „Informacje dla pomocy technicznej”.

4 lutego 2019: zaktualizowałem kod CSS. Zakomentowałem trzecią sekcję pliku powodującą problemy w nowszych wersjach Firefoksa.

Kod modyfikacji został zainspirowany kodem stworzonym przez użytkownika Benoit Averty.

Komentarze (5)

  1. PshemQ

    Po dzisiejszej (30 stycznia) aktualizacji firefoxa nie do końca działa jak powinno – karta znika, ale widać pasek kart. Jest szansa na poprawkę?

  2. stała Czytelniczka

    Tylko, czy ZU będzie się chciało w to bawić? Mnie jakoś nigdy FF nie przekonał do siebie. Zawsze jednak pozostaje wierna Chrome’owi. Czy ja wiem, czy FF faktycznie ma tyle opcji konfiguracji? Nie zauważyłam szczerze.

  3. Tomasz Gąsior

    — Tweak (tak jak większość tweaków na tym świecie) nie jest przeznaczony dla ZU, choć starałem się pisać ten wpis jak najprostszym językiem, aby najwięcej osób mogło z niego skorzystać.
    — Ja jestem wierny Firefoksowi. Jest to przeglądarka dająca mi największą wolność konfiguracji (choć oczywiście nie taką, jak stara Opera 12, za którą tęsknię do dziś).
    — Fx ma dużo opcji konfiguracyjnych, lecz wiele z nich jest ukrytych np. w czeluściach strony `about:config` bądź w plikach konfiguracyjnych, które user sam musi sobie przygotować pod siebie (np. `chrome/userChrome.css`).

Dodaj komentarz