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

Kategoria: Oprogramowanie Data publikacji:

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 can be buggy. Feel free to remove it if the whole stylesheet doesn't work.
 * But in this case, remember to remove all items from tabs toolbar using customizer!
 * The first selector is for Firefox 64, second is for Firefox 65.
 */
toolbar#TabsToolbar[currentset]:not([currentset="tabbrowser-tabs,alltabs-button"])
tabs#tabbrowser-tabs tab.tabbrowser-tab[first-visible-tab="true"][last-visible-tab="true"]
{
	display: -moz-box !important;
}
#TabsToolbar-customization-target tabs#tabbrowser-tabs:not(:nth-child(2))
tab.tabbrowser-tab[first-visible-tab="true"][last-visible-tab="true"],
#TabsToolbar-customization-target tabs#tabbrowser-tabs:not(:nth-last-child(3))
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”.

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

Dodaj komentarz