Multi Tab Rows (MultiTabRows@Merci.chao.uc.js) | Mehrzeilige Tableiste

  • Firefox-Version
    Firefox 115 und der neuesten veröffentlichten Version
    Betriebssystem
    Windows 7 bis Windows 11, Ubuntu

    Für mein Skript Multi Tab Rows (MultiTabRows@Merci.chao.uc.js) habe ich eine Einführungsseite erstellt, die Screenshots und detaillierte Beschreibungen enthält. Schau sie dir an, wenn du nach einer besseren Lösung für mehrzeilige Tableisten suchst! ;)

    Multi Tab Rows
    The best multi-row tabs experience for Firefox. Optimized space usage, intuitive drag & drop, polished interactions, pinned tabs grid, and automatic update…
    merci-chao.github.io

    Es gibt auch eine deutsche Version über Google Translate: https://merci--chao-github-io.translate.goog/userChrome.js/…=en&_x_tr_tl=de

    Hoffentlich ist sie verständlich genug. :D

    Da einige Leute etwas skeptisch gegenüber dem „großen Stück Code“ im Skript waren, habe ich hier eine Erklärung geschrieben: RE: Mehrzeilige Tableiste für aktuelle Firefox-Versionen

    Da ich selbst kein Deutsch spreche und maschinelle Übersetzungen nicht immer zuverlässig sind, schlage ich vor, Feedback und Fragen auf Englisch zu hinterlassen — entweder hier oder, noch besser, auf meinem GitHub. GitHub ist sehr zu empfehlen, da ich dort eine Benachrichtigung erhalte, wenn du etwas postest: https://github.com/Merci-chao/userChrome.js/issues/new

    3 Mal editiert, zuletzt von Merci chao (17. März 2026 um 12:47)

  • mein Skript Multi Tab Rows

    Ich habe Ihr Skript ausprobiert, der Browser hat sich seltsam verhalten.

    Alle Nutzer stört die enorme Größe des Skripts – 10.000 Codezeilen –, während der CSS-Stil für multirow tabs von MrOtherGuy nur 90 Codezeilen umfasst.

    Bei einer so enormen Größe ist es schwierig, den Code zu analysieren oder Änderungen daran vorzunehmen.

    Meiner Meinung nach muss das Skript, um erfolgreich zu sein, drastisch verkleinert werden – um das Zehnfache.

  • Ich habe Ihr Skript ausprobiert, der Browser hat sich seltsam verhalten.

    In dem Fall wäre es hilfreich, wenn du mitteilen würdest, was genau das „seltsame Verhalten” war.

    Alle Nutzer stört die enorme Größe des Skripts – 10.000 Codezeilen –, während der CSS-Stil für multirow tabs von MrOtherGuy nur 90 Codezeilen umfasst.

    Ich weiß ehrlich gesagt nicht, wie einen das als Nutzer „stören” kann. Definitiv stört es nicht „alle” Nutzer. Ich bin mir auch ziemlich sicher, dass der Vergleich zwischen einer Lösung mit 10.000 Zeilen Code und einer Lösung mit nur 90 Zeilen Code schon deswegen hinkt, weil der eine Code ganz offensichtlich sehr viel mehr als der andere Code macht. Ein solcher Größtenunterschied kommt wohl kaum alleine durch einen unterschiedlichen Entwicklungs-Stil zustande.

    Meiner Meinung nach muss das Skript, um erfolgreich zu sein, drastisch verkleinert werden – um das Zehnfache.

    Definitiv ist das nicht notwendig, um „erfolgreich” zu sein.

    Wenn du mit dem sehr viel kleineren Code zufrieden bist, ist das toll. Dann solltest du den Code auch benutzen. Aber nur die Länge des Codes ist kein Argument, wieso der eine Code besser oder schlechter als der andere Code ist. Auch, wenn ich als Entwickler selbst versuche, Code eher klein als groß zu halten, gehe mal davon aus, dass den allermeisten Nutzern die Länge des Codes tatsächlich vollkommen egal. Es kommt aus Nutzersicht viel mehr darauf an, dass der Code das macht, was er soll, und einfach zu verwenden ist.

  • Alle Nutzer stört die enorme Größe des Skripts – 10.000 Codezeilen –, während der CSS-Stil für multirow tabs von MrOtherGuy nur 90 Codezeilen umfasst.

    Bei einer so enormen Größe ist es schwierig, den Code zu analysieren oder Änderungen daran vorzunehmen.

    Meiner Meinung nach muss das Skript, um erfolgreich zu sein, drastisch verkleinert werden – um das Zehnfache.

    Es ist ja nicht so, dass das CSS von MOG nicht mehr verfügbar wäre. ;)
    Er hat aber die von ihm schon seit langem erwähnten Einschränkungen.
    Selber würde ich gar keine Multi-row Tabs Codes benutzen, aber scheinbar gibt es Interesse dafür. :/

    Was das analysieren und ändern von Codes angeht, oder deren Länge, weniger ist nicht immer mehr.

  • Ich weiß ehrlich gesagt nicht, wie einen das als Nutzer „stören” kann. Definitiv stört es nicht „alle” Nutzer. Ich bin mir auch ziemlich sicher, dass der Vergleich zwischen einer Lösung mit 10.000 Zeilen Code und einer Lösung mit nur 90 Zeilen Code schon deswegen hinkt, weil der eine Code ganz offensichtlich sehr viel mehr als der andere Code macht.

    Mit "alle" Nutzer bin wahrscheinlich in erster Linie ich gemeint. Ich hatte vor einiger Zeit meine Bedenken wegen der Größe geäußert und hatte zugleich betont, dass ich dem Entwickler überhaupt nichts an "Hintergedanken" unterstellen möchte - dafür hätte ich auch irgendwelche Beweise liefern müssen - aber die schiere Größe und die Verwendung bestimmter Funktionen hatten mich dazu veranlasst, eine gewisse Vorsicht anzumahnen. Nicht mehr und nicht weniger. Und das ist meiner Meinung auch der valide Punkt bei der von lenny2 geäußerten Kritik: Bei dem Umfang des Quellcodes ist es nur mit sehr großem Aufwand möglich, alle Funktionen nachzuvollziehen.

    Ich habe es zwar nicht getestet aber ich bin auch angesichts der Funktionsfülle des Skripts der Ansicht, dass hier Merci chao wirklich sehr gute Arbeit geleistet hat! :thumbup:

    Dass einem (reinen) Nutzer das nicht interessiert, ist klar. Aber wenn es nur nach dem geht, ob ein Programm Nutzern gefällt und es funktioniert, dann bräuchten die Leute, die Software entwickeln oder sie testen/reviewen, Code nicht mehr auf Sicherheitslücken hin untersuchen. Na ja, vielleicht wird ja die KI diese Aufgabe bald vollständig übernehmen?! :/

    Außerdem sollte man bedenken, dass schon sehr viel kleinere Skripte immer wieder angepasst werden müssen und bei Skripten dieser Größenordnung wird dies sehr wahrscheinlich noch sehr viel häufiger passieren. Wir reden ja hier von nur intern dokumentierten Funktionen und nicht von einer veröffentlichten API, auf die man sich langfristig verlassen kann! Solange der Ersteller sich darum kümmert ist alles in bester Ordnung, aber die Erfahrung hat gezeigt, dass sehr viele Skripte irgendwann verwaist sind und andere die Fehlerbehebung durchführen müssen, was bei der Größe und Komplexität absolut ein Problem sein kann.

    Gruß BrokenHeart

    "success has many fathers, failure is an orphan"

  • aber die Erfahrung hat gezeigt, dass sehr viele Skripte irgendwann verwaist sind und andere die Fehlerbehebung durchführen müssen, was bei der Größe und Komplexität absolut ein Problem sein kann.

    Das ist ein gutes Argument. :thumbup:

    Wobei JS Scripts, und auch CSS Codes, mE von den meisten Usern passiv weitergetragen werden, bis es gar nicht mehr geht.

    Und dann Probleme nicht adäquat kommuniziert, Nachfragen und Antworten ignoriert, aber trotzdem Lösungen für teils komplexe Sachverhalte erwartet werden - was leider oft noch mit halbgaren Pflastern bedient wird. ?(

    Wieso schreibst zB du keine Codes mehr - keine Lust auf Selbstgespräche? ;)

    Einmal editiert, zuletzt von Horstmann (14. März 2026 um 19:38)

  • Wieso schreibst zB du keine Codes mehr? ;)

    Ich schreibe durchaus noch neuen User-JS/C++ Code, allerdings veröffentliche ich hier im Forum nichts mehr.

    Die Gründe sind vielfältig. Erstens bin ich, was User-JS angeht, nicht auf dem Level unterwegs, dass ich mit einigermaßen vertretbarem Aufwand Lösungen und Änderungswünsche umsetzen kann. Und wenn man das Gefühl hat, dass irgendwas, was ja Spaß machen sollte, eher eine Verpflichtung darstellt und in Arbeit ausartet, dann überlegt man sich, vor allem als frischgebackenen Ruheständler ;), ob es das Wert ist. Und zudem lassen sich mit der allgegenwärtigen Nutzung von "Vibe Coding" zumindest allgemeinere Coding- Anforderungen viel schneller und oft auch besser umsetzen. Und diesem "Wettbewerb" möchte ich mich nicht stellen...

    Gruß BrokenHeart

    "success has many fathers, failure is an orphan"

  • Ich habe Ihr Skript ausprobiert, der Browser hat sich seltsam verhalten.

    Alle Nutzer stört die enorme Größe des Skripts – 10.000 Codezeilen –, während der CSS-Stil für multirow tabs von MrOtherGuy nur 90 Codezeilen umfasst.

    Bei einer so enormen Größe ist es schwierig, den Code zu analysieren oder Änderungen daran vorzunehmen.

    Meiner Meinung nach muss das Skript, um erfolgreich zu sein, drastisch verkleinert werden – um das Zehnfache.

    Ich denke, du hast die ältere Version verwendet, da ich vergessen hatte, die eval-Einstellung zu ändern, bevor ich die neu hinzugefügte eval()-Aufgabe ausgeführt habe. Jedenfalls ist dieses Problem inzwischen behoben, und die neueste Version sollte problemlos funktionieren, solange es keine anderen widersprüchlichen JS- oder CSS-Dateien gibt.

    Meiner Meinung nach müssen sich die Nutzer nicht wirklich um den eigentlichen Code kümmern – insbesondere nicht um Dinge wie die Dateigröße –, solange das Ganze nicht zu schwerfällig läuft. Das Sprichwort „weniger ist mehr“ gilt nur in dem Sinne, dass „weniger Unsinn mehr ist“. Wenn etwas tatsächlich ein universelles Gesetz oder eine göttliche Wahrheit wäre, dann sollte jede Software nur eine einzige Codezeile, ein Schlüsselwort, einen Buchstaben oder sogar gar keinen Code benötigen (null Code ist weniger als irgendein Code).

    Vor über 10 Jahren habe ich selbst mehrere Erweiterungen gepflegt und war auch ein Fan von Tab Mix Plus. Wie jede normale Software war TMP nicht perfekt und hatte seine Bugs. Obwohl ich die Fähigkeit hatte, den Code zu analysieren, wollte ich ihn nie selbst reparieren, weil:

    • Es besser ist, Probleme dem Entwickler zu melden, damit die Lösung allen zugutekommt.
    • Debugging und Fixes eigentlich nicht die Verantwortung der Nutzer sind.
    • Ganz ehrlich: Ich bin faul und lasse lieber den Fachmann die Arbeit machen.

    Wenn du also Fehler findest, Meinungen hast oder Verbesserungen vorschlagen möchtest, ist es am besten, den Entwickler damit zu betrauen – vorausgesetzt, er ist dazu bereit. Eigene private Mods sind in der Regel eine schlechte Idee, da sie mit neuen offiziellen Versionen wahrscheinlich kaputtgehen und du dann in einem endlosen Albtraum aus Merge-Arbeiten feststeckst (was ironischerweise genau das ist, was ich selbst gerade tue).

    Am Ende des Tages solltest du einfach die Skripte verwenden, mit denen du dich wohlfühlst.


    =============


    I think you were using the older version since I forgot to switch the eval preference before running the newly added eval() task. Anyway, that issue has been fixed, and the latest version should work fine as long as there aren’t other conflicting JS or CSS files.

    In my view, users don’t really need to worry about the actual code — especially things like file size — as long as it isn’t too heavy to run. The saying “less is more” only applies when it means “less nonsense is more”. If something were truly a universal law or divine truth, then every piece of software should need just one line of code, one keyword, one letter, or even no code at all (zero code is less than any code).

    Over 10 years ago, I used to maintain several extensions myself, and I was also a fan of Tab Mix Plus. Like any normal software, TMP wasn’t perfect and had its share of bugs. Even though I had the ability to analyze the code, I never wanted to fix it myself because:

    • It’s better to report issues to the developer so the fix benefits everyone.
    • Debugging and fixing isn’t really the user’s responsibility.
    • Honestly, I’m lazy and prefer to let the skilled developer handle it for me.

    So if you find bugs, have opinions, or want to suggest improvements, it’s best to let the developer take care of them — assuming they’re willing. Making your own private mod is usually a bad idea, because it will likely break with new official releases, and you’ll end up stuck in a cycle of merging your changes over and over like a nightmare (which, ironically, is kind of what I’m doing myself).

    At the end of the day, just use the scripts that make you feel comfortable.

  • Solange der Ersteller sich darum kümmert ist alles in bester Ordnung, aber die Erfahrung hat gezeigt, dass sehr viele Skripte irgendwann verwaist sind und andere die Fehlerbehebung durchführen müssen, was bei der Größe und Komplexität absolut ein Problem sein kann.

    Das stimmt. Es ist auch eine große Herausforderung für alle Einzelkämpfer-Entwickler. Wenn jemand übernehmen kann, ist das natürlich das beste Ergebnis. Wenn niemand weitermachen kann, dann muss man es einfach als Schicksal akzeptieren. Ich sehe „die Arbeit ist zu groß, und ich habe nicht genug Fähigkeit, sie weiterzuführen“ nicht als Fehler des Autors.

    Jedenfalls begann meine erste und erfolgreichste Erweiterung, Personal Menu, bereits 2006 (als Firefox noch bei Version 1.5 war). Obwohl ich sie selbst ab 2014 nicht mehr nutzte, nachdem Firefox 29 den orangefarbenen Firefox-Button entfernt hatte, habe ich sie bis 2017 (Firefox 57) weiterhin gut gepflegt – für all die Fans, die sie noch benutzten. Also… schauen wir mal, wozu ich fähig bin und was das Schicksal bringen wird.


    =========

    That’s true. It’s also a huge challenge for all one-man-band developers. If someone can take over, that’s obviously the best outcome. If no one is able to continue, then it just has to be accepted as fate. I don’t see “the work is too huge, and I don’t have enough ability to carry it on” as the author’s fault.

    Anyway, my first and most successful extension, Personal Menu, started back in 2006 (when Firefox was still at version 1.5). Even though I stopped using it myself in 2014 when Firefox 29 removed the orange Firefox button, I kept it well maintained until 2017 (Firefox 57), for all the fans who were still using it. So… let’s see what I’m capable of, and what fate will bring.

  • Die neue Version 4.6 ist veröffentlicht. Jetzt kann die Tab-Leiste unterhalb des Browserinhalts platziert werden (obwohl ich mich frage, wie viele Leute dieses Feature wirklich brauchen).

    By the way, some texts in the script appear in the UI. You’re welcome to provide a localization if you’d like the texts to be displayed in your language for better consistency.