49 votes

Comment puis-je avoir plusieurs rangées avec des onglets sur Firefox 57+ (l'extension "Tab Mix Plus" ne fonctionne plus) ?

Comment puis-je avoir plusieurs rangées avec des onglets sur Firefox 57+, après le module complémentaire Tab Mix Plus ne fonctionne plus (toutes les extensions anciennes sont abandonnées avec Firefox 57). Peut-être devrais-je simplement attendre ?

C'est peut-être la seule fonctionnalité que je n'ai pas trouvée dans Opera ou Chrome (et Chrome a quelques problèmes de confidentialité), la dernière fois que je les ai testés. Il semble donc que j'aie plusieurs options, et non une seule.

  1. Comme suggéré dans ce fil je peux rétrograder vers FF 52 ESR (avec des problèmes possibles...) ou utiliser un nightly build...

  2. Une autre option possible est d'utiliser un [FF Current Profile Folder]/chrome/userChrome.css (il faudra peut-être créer un dossier), où je peux placer du code. Voici ce que j'ai testé sous FF 57, en utilisant plus de 500 onglets :

( EDIT 1 : Ajout de quelques règles css pour cacher certains espaces/boutons, similaire à la réponse de R4zen, car la mienne contient une règle de plus et est peut-être plus complète... mais le résultat pourrait être le même pour la plupart des gens ! J'avais testé ce code lorsque j'ai posté la question, mais j'ai décidé de poster moins de code pour faciliter la compréhension de ce qui se passe. Je poste maintenant mon code complet, afin que d'autres puissent en bénéficier).

#tabbrowser-tabs .scrollbutton-up,
#tabbrowser-tabs .scrollbutton-down,
#tabbrowser-tabs .arrowscrollbox-overflow-start-indicator,
#tabbrowser-tabs .arrowscrollbox-overflow-end-indicator,
#tabbrowser-tabs #alltabs-button {
    display: none;
}
#tabbrowser-tabs .tabbrowser-arrowscrollbox,
#tabbrowser-tabs .arrowscrollbox-scrollbox {
    display: block;
}
#tabbrowser-tabs .arrowscrollbox-scrollbox .scrollbox-innerbox {
    display: flex;
    flex-wrap: wrap;
    /*
    display: block;
    */
    overflow-y: auto !important;
    min-height: var(--tab-min-height); /* default */
    max-height: calc(5*var(--tab-min-height)) !important;
}
    #tabbrowser-tabs .tabbrowser-tab {
        flex-grow: 1;
        flex-wrap:wrap;
        min-width: 150px;
        vertical-align: bottom !important;
    }
    #tabbrowser-tabs .tabbrowser-tab,
    #tabbrowser-tabs .tabbrowser-tab .tab-stack .tab-background {
        height: var(--tab-min-height);
    }
        #tabbrowser-tabs .tabbrowser-tab .tab-stack {
            width: 100%;
        }
    #tabbrowser-tabs .tabbrowser-tab[pinned] {
        min-width: 0px;
        max-width: 40px;
    }
        #tabbrowser-tabs .tabbrowser-tab[pinned] .tab-icon-image:not([src]) {
            visibility: hidden !important;
        }
        #tabbrowser-tabs .tabbrowser-tab[pinned] .tab-text {
            display: none !important;
        }
    /* Active tab's style - visuallyselected="true" === ACTIVE TAB */
    #tabbrowser-tabs .tabbrowser-tab[visuallyselected="true"] {
        font-weight: bold;
    }
    #tabbrowser-tabs .tabbrowser-tab[visuallyselected="true"] .tab-background {
        background-color: lime !important; /* green, lime, LawnGreen-7CFC00, LimeGreen-32CD32, SpringGreen-00FF7F */
    }
  • Dónde 5 en max-height: calc(5*var(--tab-min-height)) !important; sont 5 rangs, hauteur calculée dynamiquement.

Le code ci-dessus montre des onglets, mais leur comportement est assez mauvais :

  • le pire : lorsque vous faites défiler les onglets à l'aide de la fonction Ctrl+Tab (dans la dernière commande récente), et que l'onglet sur lequel on est passé se trouve sur une ligne différente (à plus de 5 lignes de distance), la ligne avec l'onglet ne défile pas vers l'onglet actif. Il faut utiliser le curseur pour faire défiler manuellement les rangées et trouver visuellement celle qui est sélectionnée... (Pour clarifier : j'ai défini 5 rangées visibles sur un total de 15 rangées)
  • les onglets ne peuvent pas être déplacés car le noyau FF calcule mal la position de l'onglet et le déplace à une position aléatoire

    1. Pour utiliser un fork du code hérité, quelqu'un a mentionné WaterFox (ou un autre fork).

Existe-t-il d'autres (meilleures) solutions à ce jour ?

Je suis presque sûr que nous aurons plus d'options à l'avenir, donc la bonne réponse aujourd'hui ne sera peut-être pas la meilleure dans une semaine ou un mois...

EDIT Avril 2019 (Firefox 66.x) : Après avoir mis à jour vers Firefox 66, j'avais trop de rangées couvrant tout l'écran (c'est 1000+ onglets). J'ai dû modifier le code original ci-dessus et ajouter quelques règles supplémentaires :

#tabbrowser-tabs .arrowscrollbox-scrollbox {
    max-height: calc(5*var(--tab-min-height)) !important;
    overflow: auto;
    margin-bottom: calc(1.25 * var(--tab-min-height)) !important;
}

Vous devrez peut-être les ajuster pour vous, au cas où vous auriez un nombre différent de rangées (j'ai 5 rangées avec des onglets). Bonne chance !

1 votes

Si vous parvenez à construire quelque chose, veuillez poster à softwarerecs.stackexchange.com/questions/47196/ merci :-)

1 votes

@NicolasRaoul, Une solution est peut-être en cours... au moins dans les pensées de certains développeurs... ce qui signifie que nous devrons peut-être attendre des semaines ou des mois.... Personnellement, je suis un joueur d'échecs..., mais je ne suis pas patient sur ce coup-là ! !! J'utilise Opera sous Linux et fonctionne très rapidement, mais pas de rangées multiples - comme tous les autres navigateurs...

1 votes

Je suppose que je ne suis pas le seul à regretter les rangées d'onglets multiples de TMP. J'ai fini par opter pour Tab Center Redux, qui peut être personnalisé de différentes manières (dont aucune n'est la multiplication des colonnes).

23voto

xuhcc Points 71

Barre d'onglets à rangées multiples avec déplacement des onglets fonctionnel (testé sur FF 61) :

  1. Télécharger et extraire https://luke-baker.github.io/Firefox_chrome.zip
  2. Copie userChrome.xml dans votre dossier chrome.
  3. Ajouter du contenu à partir de userChrome.css à votre userChrome.css .
  4. Télécharger MultiRowTabLiteforFx.uc.js dans votre dossier chrome.

Votre dossier chrome est un dossier nommé chrome situé sous votre profil d'utilisateur, par ex. ~/.mozilla/firefox/g7fa61h3.default/chrome . Il n'existe pas par défaut, il faut donc le créer si nécessaire.

UPDATE

userChrome.xml peut maintenant être obtenu à partir du fichier d'Izheil. Quantum-Nox-Firefox-Dark-Full-Theme repo. Il existe également deux versions du script MultiRowTab, pour un nombre limité et illimité de lignes d'onglets.

2 votes

Merci ! !! Finalement, ça se rapproche de "résolu" ! Je vais faire quelques tests supplémentaires (et poster le code de travail si nécessaire) avant de marquer votre réponse comme acceptée !

0 votes

Après quelques tests supplémentaires, je peux confirmer que cette solution fonctionne ! Je l'ai intégré avec une partie de mon code CSS personnalisé pour avoir quelques paramètres personnalisés pour moi... Cela corrige le comportement le plus ennuyeux pour faire glisser les onglets, donc finalement les onglets multi-rangs FF sont utilisables ! Merci encore !

0 votes

@Minister Pourriez-vous partager vos modifications, il semble qu'elles pourraient être très utiles pour d'autres personnes également.

13voto

R4zen Points 131

J'ai fait quelques modifications, maintenant il ne devrait plus y avoir de bugs (même si vous épinglez les onglets, déplacez/déplacez la fenêtre, faites défiler entre les onglets etc ) :

#tabbrowser-tabs .tabbrowser-arrowscrollbox,
#tabbrowser-tabs .arrowscrollbox-scrollbox {
    display: block;
}

.scrollbutton-up,
.arrowscrollbox-overflow-start-indicator,
.scrollbutton-down,
.arrowscrollbox-overflow-end-indicator {
    display: none !important;
}

#tabbrowser-tabs .arrowscrollbox-scrollbox .scrollbox-innerbox {
    display: flex;
    flex-wrap: wrap;
    /*
    display: block;
    */
    overflow-y: auto !important;
    min-height: var(--tab-min-height); /* default */
    max-height: calc(5*var(--tab-min-height)) !important;
}
#tabbrowser-tabs .tabbrowser-tab:not([pinned]) {
    flex-grow: 1;
    flex-wrap:wrap;
    min-width: 150px;
    vertical-align: bottom !important;
}
#tabbrowser-tabs .tabbrowser-tab,
#tabbrowser-tabs .tabbrowser-tab .tab-stack .tab-background {
    height: var(--tab-min-height);
}

#tabbrowser-tabs .tabbrowser-tab .tab-stack {
    width: 100%;
}

#titlebar-buttonbox {
    display: block !important;
    vertical-align: top !important;
}

#main-window[tabsintitlebar] #tabbrowser-tabs {
    -moz-window-dragging: no-drag;   
}

Si la première rangée d'onglets est invisible, ouvrez about:config et modifiez la valeur de browser.tabs.drawInTitlebar, qui passe de true (valeur par défaut) à false.

browser.tabs.drawInTitlebar     false

si vous voulez faire glisser la fenêtre de firefox en cliquant sur l'espace libre de la barre de titre plus qu'en utilisant 5 ou plusieurs rangées, il suffit de supprimer le code :

#main-window[tabsintitlebar] #tabbrowser-tabs {
    -moz-window-dragging: no-drag;   
}

Il est possible de faire défiler les lignes en maintenant la barre de défilement quand il y a plus de 5 lignes, mais d'un autre côté, il est impossible de faire glisser les fenêtres par la barre de titre (si vous n'utilisez pas plus de 5 lignes, vous pouvez le supprimer).

1 votes

Pourriez-vous expliquer les modifications que vous avez apportées pour que cette réponse soit également utile à d'autres futurs lecteurs ?

1 votes

Je viens de le tester. (1) Le glisser-déposer ne fonctionne plus (l'onglet a été placé de manière aléatoire - mauvaise logique, peut-être basée sur un calcul et un décalage d'une seule ligne). (2) Ctrl+Tab ne change pas non plus les rangées, lorsque je passe d'un onglet sur la dernière rangée à un onglet 6 rangées plus tôt. La seule chose qui fonctionne est la présentation visuelle "plusieurs rangées d'onglets", presque la même que mon code (bien que votre code semble un peu meilleur que le mien). Merci de prendre le temps d'essayer de m'aider !

0 votes

Oui, le glisser-déposer est toujours cassé. Je viens de trouver un correctif pour le clicable scroll : code #tabbrowser-tabs .tabbrowser-tab .tab-stack { width : 100% ; } code Et je ne vois aucun problème avec Ctrl+tab à la 6ème ligne, seulement que vous devez faire défiler les lignes pour le voir.

2voto

poetnerd Points 23

Pour les personnes intéressées par le fonctionnement de cette modification de l'interface utilisateur CSS, il existe un article utile sur ghacks.net qui décrit ce qui est fait : https://www.ghacks.net/2017/11/13/customize-firefox-57-with-css/

L'article fait référence au projet git hub "Custom CSS tweaks for Firefox 57+". https://github.com/Aris-t2/CustomCSSforFx Ce projet contient de nombreuses modifications de l'interface utilisateur qui peuvent être mélangées et assorties. Le fichier README donne un bon aperçu de la façon de choisir parmi les options.

En ce qui concerne la nécessité de créer ou non le répertoire chrome :

Sur le système Fedora que j'ai utilisé, ce répertoire a dû être créé. Sur le système Mac, il était déjà présent et contenait des fichiers d'exemple, userChrome-example.css et userContent-example.css.

Dans le fichier userChrome-example.css se trouvait le texte suivant :

/*
 * Do not remove the @namespace line -- it's required for correct functioning
 */
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); /* set default namespace to XUL */

Bien que j'aie dû définir la valeur false pour browser.tabs.drawInTitlebar, une fois que j'ai fait cela, le code de R4zen a bien fonctionné pour moi avec et sans la ligne @namespace présente.

0 votes

Merci d'avoir pris le temps de poster votre expérience ! Je connais le projet avec de nombreuses règles CSS, mais la réponse n'était pas là quand je l'ai testé (il y a 2 semaines). Je ne l'ai pas incluse dans la question car elle n'est pas liée. Peut-être avez-vous reçu des votes négatifs parce que ce n'est pas lié et que vous ne répondez pas à la question, mais "ce n'était pas moi" qui a voté... A propos du code de R4zen : en gros, c'est ce que j'ai posté. En fait, j'ai intentionnellement omis quelques règles (qui étaient plus tard présentes dans le code de R4zen), afin qu'il soit plus court et plus facile de commencer avec lui... ;-)

1 votes

J'aurais bien ajouté mon expérience en commentaire, mais je n'ai pas acquis suffisamment de réputation pour le faire. J'ai soumis une modification à la réponse de R4zen disant explicitement que browser.tabs.drawnInTitlebar doit être changé en false. Cette partie de l'histoire est assez critique, et j'ai eu du mal à l'associer à cette réponse.

0 votes

Je viens de vérifier à nouveau... J'ai... browser.tabs.drawInTitlebar (et non pas 'drawN...') et c'est false par défaut. J'ai redémarré les onglets avec le code de R4zen et 5 rangées avec des onglets ont été rendues (5 visibles, ~15 rangées totales). Le Ctrl+Tab ne passe pas à la ligne contenant l'onglet actif (lorsque je change d'onglet à partir de 5-6 lignes de différence entre eux). Ce qui signifie que je ne peux pas voir l'onglet actif et les onglets environnants (qui sont liés à l'onglet actif) et que je dois faire défiler manuellement en utilisant le curseur. Donc, il fonctionne toujours de la même manière que mon code - il rend simplement les onglets sur plusieurs rangées + comportement ennuyeux.

0voto

Sanjay Manohar Points 3612

J'ai juste pensé que je devais ajouter comment faire cela. (bien qu'elle soit fournie sur d'autres sites liés, il est préférable d'avoir toutes les informations en un seul endroit).

  • Démarrer firefox
  • saisissez "about:support" dans la barre d'adresse
  • Dans le tableau, il y a une ligne "Dossier de profil". Cliquez sur le bouton "Ouvrir le dossier".
  • sous "chrome", il devrait y avoir des fichiers "userChrome-example.css" que vous pouvez renommer en "userChrome.css" et modifier.

Cela m'a fait gagner beaucoup de temps car dans mon cas, le %appdata% pointait vers le mauvais lecteur. De plus j'ai dû installer notepad++ car les fins de lignes n'étaient pas vues par notepad.

0 votes

Je suppose que c'est sur un Mac ou autre ? Dans mon FF 59 sous Linux Mint, il est indiqué "Répertoire du profil" (puisque nous sommes des utilisateurs adultes), mais il n'y a pas de fichiers ou de sous-répertoires avec "css" dans leur nom dans le répertoire du profil.

0voto

shuhradk Points 21

Izheil's répertoire Github a été mentionné dans les commentaires ci-dessus, bien que l'URL partagée ci-dessus n'ait pas fonctionné pour moi (d'où un nouveau partage). Les étapes indiquées ici m'ont aidé à récupérer l'apparence de mon Firefox à un niveau acceptable après la mise à niveau vers les versions bêta de FF66 (barre d'onglets non sombre et déroulante à 3 rangées). J'ai été bloqué sur le canal bêta de FF Quantum, donc ces étapes peuvent ou non vous aider.

Les étapes suivantes ont fonctionné pour moi sur OSX à partir de FF 66 b4.

The highlighted 4 files needed at a minimum .

  1. Les 4 fichiers sélectionnés ci-dessus sont nécessaires au minimum dans le dossier chrome de votre profil.
  2. En outre, si je voulais ajouter mes propres personnalisations (couleurs des onglets déchargés, épinglés, etc.), j'apportais des modifications aux fichiers respectifs (les fichiers js) et passais par les étapes 3 et 4 pour les rendre effectives.
  3. a effacé tous les fichiers dans Macintosh HD -> Users -> [ACCOUNT] -> Library -> Caches -> Firefox -> Profiles -> [PROFILE_NAME] -> startupCache . Notez que le dossier [PROFILE_NAME] est caché par défaut.
  4. et ensuite j'ai redémarré mon instance de Firefox.
  5. Assurez-vous que votre dossier chrome ne contient que les fichiers css, js et xml que vous souhaitez utiliser. Sauvegardez/déplacez tout le reste à un autre endroit [sûr].

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X