Ah, vielleicht war der Kaffee noch nicht stark genug, sorry ![]()
lenny2 schrieb am Mi. hier das der Eintrag noch sichtbar ist. Da war doch aber schon Version 144 draußen, oder? Und Mittwoch Nachmittag schreibt Mitleser hier über einen Eintrag in "about:config".
Ich habe gerade in einem Testprofil das Update gemacht und da kann ich das ganz ohne *.css ausblenden. Grundsätzlich ist es ja schön wenn verschiedene Stellschrauben zum gleichen Ergebnis führen, aber wenn ICH einen Eintrag mit minimalem Aufwand (in diesem Fall direkt via Kontext-Menü "KI-Chatbot entfernen") wegbekomme, tu' ich mir doch nicht den Mehraufwand an und nehme Umwege in Kauf. Bei einem *.css Eintrag muss ich das um mich zu erinnern dokumentieren und auch bei about:config-Einträgen sollte man das nachhalten.
Das hatte mich gewundert.
Beiträge von Stoiker
-
-
-
und jeweils noch keine Lösung dafür gefunden
Keine Ahnung ob das hilft, aber ich nutze ja auch (allerdings müsste ich da jetzt erstmal nachschauen welche Version) eine Version für die mehrzeilige Tableiste. Ich habe das Problem nicht das bei angehefteten Tabs irgendwelche ungewöhnlichen Abstände zwischen den angehefteten und den normalen Tabs auftreten. Egal ob zwei, drei oder >20 Tabs offen sind ich welche anhefte.
-
'n Abend
Also erst mal freut es mich das aus einer eher nebensächlichen Frage eine Diskussion entstanden ist
Finden "Helfende" und "Hilfesuchende" da jetzt irgendwie zusammen? Die techn. Beiträge kann ich lesen, verstehe sie aber nur teilweise. Da müssen sich, denke ich, die Helfenden auf einen Nenner bringen.
Wie könnte das denn mit einem "Basisskript" aussehen? Lässt sich das nicht mal als Szenario durchspielen? -
Das Skript? => MultiRowTabLiteforFx.uc.js
Was wäre das denn?
Danke fürs Nachfragen
Ich werde zu gegebener Zeit bestimmt wieder mit einer Anfrage nerven 
Ich hatte ja mal in den Raum geworfen, dass es eine Basis-Version gibt, die jeder für sich nachvollziehbar verändert. Wenn man eine alte und neue Basis-Version vergleicht, die Änderungen ins eigene Script überträgt, sollte doch jedem geholfen sein.
Also ich würde da mitmachen. Bleibt die Frage wie das aufzuziehen wäre das sowohl Fragesteller als auch die Helfenden damit arbeiten können.
-
Danke dir.
Mein altes Skript basiert tatsächlich auf zweiteren, aber da funktionierte ab FF 137 einiges nicht mehr. Im direkten Vergleich sehe ich Unterschiede zwischen meiner alten und der verlinkten Version, kann aber mangels Kenntnisse nicht einschätzen ab wann bei folgenden Updates von Firefox da wieder Probleme auftauchen könnten.
Daher bleibe ich wohl bei der Version die Endor übersetzt hat, auch wenn mir dort ein paar Feinheiten fehlen
-
Guten Abend
Ich bin gerade verwirrt. Ich hatte bisher aus diesem Thread das Skript über viele Jahre genutzt und auch etwas angepasst. Hier hat Endor eine aktuelle dt. Version bereitgestellt. Und ich ging davon aus das auf Grund des im Laufe der Zeit immer unübersichtlicher gewordenen Codes bestimmte Sachen nicht mehr einstell- bzw. modifizierbar sind.
Eher durch Zufall bin ich jedoch gerade in diesem Thread auf diese Version gestoßen und frage mich jetzt welche ist die aktuellere und/oder besser modifizierbare Version. Meinem ersten Eindruck nach ist die zweite Variante etwas flexibler.
Kann mir da bitte mal jemand auf die Sprünge helfen? -
Moin
Installiert man ein neues Theme gibt es zwei Pop-Up Hinweise.
Den ersten verstehe ich noch, will mich Firefox doch darauf hinweisen das "etwas" geändert werden soll. Sicherheit und so, is' klar:
Nach der Installation bekomme ich einen zweiten Hinweis der wiederum zumindest für mich keinerlei Mehrwert hat und den Flow, mal eben schnell eine ganze Reihe Themes zu testen dadurch unterbricht das ich dieses Fenster auch wegklicken muss. Und ich muss dafür mit der Maus permanent hin- und herspringen. Lässt sich das ausblenden o. unterdrücken?
-
Guten Morgen
-Dankeschön- auch an dich Mira_Belle
Funktioniert wieder so wie gewünscht
Bitte das Skript so lassen
Am Skript selbst kann ich qua mangelnder Kenntnisse sowieso nix ändern, habe nur einen Link zum Beitrag eingefügt falls ich mal irgendwann die Quelle suche
-
-
Ich denke ich soll mich nicht an bestehende Threads dranhängen
Ja, thematisch ähnlich, aber Struktur bzw. Wünsche schon unterschiedlich. Am Ende ist mir das Wumpe, Hauptsach' ich komm zumindest wieder in die Nähe dessen wie es zuletzt funktioniert hat -
Du, ich hätte da noch ein paar Baustellen

Ich habe bisher zwei Skripte für die LZ genutzt, beide tun nicht mehr wie bisher.
Skript 1 hat mir die Anzahl der LZ u. Unterordner angezeigt. Ich hatte schon in einem anderen Thread nach einer Alternative geschaut, aber das ist mir zu überfrachtet.
Erste Zahl sagt ob Unterordner, zweite Zahl wie viele LZ.
Der Code:Code
Alles anzeigen(function() { if (!window.gBrowser) return; setTimeout(function() { setFunction(); },50); function setFunction() { const css =` .countClass::after { content: attr(data-value); color: white; } `; const sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService); const uri = Services.io.newURI('data:text/css,' + encodeURIComponent(css)); sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); let bmbMenu = document.getElementById('bookmarks-menu-button'); let bookMenu = document.getElementById('bookmarksMenu'); let persToolBar = document.getElementById('PersonalToolbar'); if(bmbMenu) bmbMenu.addEventListener('popupshowing', onPopupShowing ); if(bookMenu) bookMenu.addEventListener('popupshowing', onPopupShowing ); if(persToolBar) persToolBar.addEventListener('popupshowing', onPopupShowing ); } function onPopupShowing(aEvent) { let popup = aEvent.originalTarget; for (let item of popup.children) { if (item.localName != 'menu' || item.id?.startsWith('history')) continue; setTimeout(() => { let itemPopup = item.menupopup; itemPopup.openPopup(); itemPopup.hidePopup(); let menuitemCount = 0; let menuCount = 0; for (let subitem of itemPopup.children) { if (subitem.classList.contains('bookmark-item') && !subitem.disabled && !subitem.hidden) { if (subitem.localName == 'menuitem') { menuitemCount++; } else if (subitem.localName == 'menu') { menuCount++; } } } let label = item.childNodes[3]; //label.menu-iconic-text label.classList.add('countClass'); let strCountOut = " " + menuCount + "/" + menuitemCount + "" label.setAttribute('data-value', strCountOut); }, 100); } } })();Das zweite Skipt hat Links in einem Ordner in einem Rutsch geöffnet

Das ist besonders bei Recherchen hilfreich viele LZ-Ordner mit entsprechenden LZ aus der LZ-Leiste sehr schnell öffnen zu können.
Der Code:Code
Alles anzeigen(function() { if (!window.gBrowser) return; function setFunction() { PlacesViewBase.prototype._mayAddCommandsItems = function PVB__mayAddCommandsItems(aPopup) { let hasMultipleURIs = false; let menuitemCount = 0; let menuCount = 0; if (aPopup._placesNode.childCount > 0) { for (let item of aPopup.children) { if (item._placesNode) { if (item.localName == 'menuitem') { menuitemCount++; } else if (item.localName == 'menu') { menuCount++; } } } if (menuitemCount > 0 || menuCount > 0) { hasMultipleURIs = true; } } if (!hasMultipleURIs) { aPopup.setAttribute("nofooterpopup", "true"); if (aPopup._endOptOpenAllInTabs) { aPopup.removeChild(aPopup._endOptOpenAllInTabs); aPopup._endOptOpenAllInTabs = null; aPopup.removeChild(aPopup._endOptSeparator); aPopup._endOptSeparator = null; } return; } aPopup.removeAttribute("nofooterpopup"); if (!aPopup._endOptOpenAllInTabs) { aPopup._endOptSeparator = document.createXULElement("menuseparator"); aPopup._endOptSeparator.className = "bookmarks-actions-menuseparator"; aPopup.insertBefore(aPopup._endOptSeparator, aPopup.firstChild); aPopup._endOptOpenAllInTabs = document.createXULElement("menuitem"); aPopup._endOptOpenAllInTabs.className = "openintabs-menuitem"; if (this.options?.extraClasses?.entry) { aPopup._endOptOpenAllInTabs.classList.add( this.options.extraClasses.entry ); } aPopup._endOptOpenAllInTabs.setAttribute( "oncommand", "PlacesUIUtils.openMultipleLinksInTabs(this.parentNode._placesNode, event, " + "PlacesUIUtils.getViewForNode(this));" ); aPopup._endOptOpenAllInTabs.setAttribute( "onclick", "checkForMiddleClick(this, event); event.stopPropagation();" ); aPopup.insertBefore(aPopup._endOptOpenAllInTabs, aPopup.firstChild); } let label = menuCount + " Ordner"; label += " / " + menuitemCount + " Link" if (menuitemCount != 1) { label += "s"; } if (menuitemCount == 1) { label += " -> Link in Tab öffnen" } else if (menuitemCount > 1) { label += " -> Links in Tabs öffnen" } aPopup._endOptOpenAllInTabs.setAttribute("label", label); } } setTimeout(function() { setFunction(); },50); })(); -
-
Der zweite Teil in diesem Skript hat bisher per Kontextmenü "Alle Tabs schließen" ausgelöst. Tut es aber nun auch nicht mehr:
JavaScript
Alles anzeigen// TabContextCloseAllTabs.uc.js (function() { if (location != 'chrome://browser/content/browser.xhtml') return; var closeAllTabsItem = document.createXULElement('menuitem'); closeAllTabsItem.id = 'context_closeAllTabs'; closeAllTabsItem.setAttribute('label', 'Alle Tabs schließen'); closeAllTabsItem.setAttribute('oncommand', 'for (let tab of gBrowser.visibleTabs) gBrowser.removeTab(tab)'); var refItem = document.getElementById('context_closeOtherTabs'); refItem.parentNode.insertBefore(closeAllTabsItem, refItem.nextSibling); })();Ist das auch reparabel? Ersatz habe ich bisher keinen in den einschlägigen Threads gefunden oder wenn, dann übersehen
-
Browser gewechselt

Danke, funktioniert.
Hier hattest du 2002Andreas Zitronella schon mit einem Update bzgl. "linke Tabs schließen" geholfen, allerdings verändert das die Reihenfolge im Kontextmenü. Liegt das in dem Skript begründet oder in einem anderen?
Bis 137.x:
Seit 139:
-
Guten Abend
Ich hatte es schon einige Zeit im Forum verfolgt das mit Version 138 etliche Skripte einer Anpassung bedürfen um weiter ihren Dienst zu tun. Nachdem ich jetzt sehr lange Glück hatte und viele Skripte viele Updates überlebt haben, ist es nun leider mal wieder an der Zeit sich damit zu beschäftigen.
Ich hatte gesehen das einige hier in einem Thread ihre Problemfälle gepostet hatten und im besten Fall Updates erhielten.
Ein erstes Skript (Restart) welches ich mir aus diesem Thread von Mira_Belle geliehen habe funktioniert, bis auf das Icon welches ich gern tauschen würde aber leider nicht hinbekomme:
JavaScript
Alles anzeigen// Restart_Firefox.uc.js // RestartFirefoxButtonM.uc.js // v. 0.8 // Source file https://www.camp-firefox.de/forum/thema/126132/?postID=1093563#post1093563 // Source file https://www.camp-firefox.de/forum/thema/139338/?postID=1271880#post1271880 /* ----------------------------------------------------------------------------------- */ /* Zu beachten ist, dass die Grafiken sich im richtigen Ordner befinden müssen */ /* %appdata%\Mozilla\Firefox\Profiles\"Profilname"\chrome\icons */ /* ----------------------------------------------------------------------------------- */ // Linksklick if (event.button == 0) // Mittelklick if (event.button == 1) // Rechtsklick if (event.button == 2) (function() { if (location.href !== 'chrome://browser/content/browser.xhtml') return; try { CustomizableUI.createWidget({ id: 'restart-button2a', type: 'custom', defaultArea: CustomizableUI.AREA_NAVBAR, onBuild: function(aDocument) { var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton'); let props = { id: 'restart-button2a', class: 'toolbarbutton-1 chromeclass-toolbar-additional', label: 'Neustart', tooltiptext: 'Neustart (inkl. SkriptCache Löschen)', // Hier wird die Hintergrundfarbe und die Iconfarbe direkt gesetzt //style: 'background-color: #FF5733; color: white;' //style: 'color: #f60000;', }; for (let p in props) toolbaritem.setAttribute(p, props[p]); // Pfad zum Profilordner let ProfilePath = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/"); // Pfad in den entsprechenden Unterordner let IconPath = '/chrome/icons/'; // Name & Dateiendung des anzuzeigenden Symbols! let ButtonIcon = "restart.svg"; // Erstelle ein img-Element, um zu überprüfen, ob die Grafik geladen werden kann let img = new Image(); img.src = "file:" + ProfilePath + IconPath + ButtonIcon; img.onload = function() { // Wenn die Grafik geladen werden kann, setze das listStyleImage toolbaritem.style.listStyleImage = 'url("' + ("file:" + ProfilePath + IconPath + ButtonIcon) + '")'; toolbaritem.style.fill = 'red'; // Hier wird die Iconfarbe direkt gesetzt }; img.onerror = function() { // Wenn die Grafik nicht geladen werden kann, verwende das Fallback-Icon toolbaritem.style.listStyleImage = 'url("chrome://browser/skin/fxa/avatar-empty.svg")'; toolbaritem.style.fill = 'red'; // Hier wird die Iconfarbe direkt gesetzt }; return toolbaritem; } }); } catch(e) { }; document.getElementById('restart-button2a').addEventListener('click', event => { // rechte Maus Neustart if (event.button == 2) { Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); } // linke Maus Neustart mit Löschung des Start-Caches if (event.button == 0) { event.preventDefault(); Services.appinfo.invalidateCachesOnRestart(); Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); } // Mittelklick if (event.button == 1) { // event.preventDefault(); // Services.appinfo.invalidateCachesOnRestart(); // Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); openTrustedLinkIn("about:config", "tab"); } }); let sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService); let uri = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent(` #restart-button2a.toolbarbutton-1.chromeclass-toolbar-additional image.toolbarbutton-icon { width: 32px !important; height: 32px !important; } `), null, null); sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET); })();Road-Runner fragt in dem Thread auch, aber irgendwie passen die in der Antwort von Mira_Belle gegebenen Zeilen nicht.
-
2002Andreas Danke für den Test. Ich habe es in einem produktivem Profil sowie in einem neuen ebenfalls mit den von Seeteufel empfohlenen Änderungen in der about:config versucht: es funktioniert nicht (mehr)!
Seeteufel Funktionieren die Änderungen bei dir noch? Weil, spätestens in einem komplett frischen Profil ohne Anpassungen und Verbiegungen müsste das ja klappen.Halt einfach den Ball flach statt solche Anschuldigungen in den Raum zu werfen. Gehts noch?

Das ist meiner Erfahrung nach ein typischer Fehler von LLM/KIs. Ein Satzzeichen fehlt, EIN Satzzeichen ... und sie/du produzieren Käse. Wer den Kontext versteht, kann erkennen, dass das eine rhetorische Figur als Reaktion auf mein Zitat von Sörens Satz ist. Aber gut, der Fehler liegt eindeutig bei mir.
Wenn du meinst, Firefox würde dich mit DRM ausspionieren
Meine ich das? Oder denkst du nur das ich das meine?
Da würde ich doch glatt einen Browserwechsel vorschlagen.

Ich werde mir jetzt nicht die Zeit nehmen und ein paar Tests mit Edge, Chrome, Vivaldi oder anderen Browsern versuchen um herauszufinden ob ich dort überhaupt entsprechende Einstellungen finde (was, wenn ich Sören nicht wieder komplett missverstehe, wahrscheinlich nicht der Fall ist noch ob ich entsprechende Änderungen überhaupt vornehmen kann) und weiter bei Firefox bleiben eben WEIL es sowohl entsprechende Einstellungen gibt und darüber hinaus sogar Möglichkeiten das ganz radikal zu unterbinden.Hauptsache, es passt zur eigenen Blase.
Ja, nee is klar.
Ich wiederhole mich: du lieferst hier teils sehr guten, zumindest für mich, technischen Content, biegst aber in schöner Regelmäßigkeit rhetorisch in ein völlig anderes Universum ab.
Sei so nett und setz' mich bitte BITTE auf deine Igno-Liste, denn...Ich habe seinen Satz als pauschale Aussage gelesen
Tja, gelesen hast du ihn, halt "pauschal". Aber eben nur gelesen.
Man kann sich ja in Wut reden, wenn es einem partout gegen den Strich geht.
"nicht rational" = gaga Entwickler. Nur hat es dazu genau zwei Möglichkeiten: nicht mehr verwenden oder an die frische Luft gehen.
... beleidigt unser beider Intelligenz. Und Sören erklärt es (dir) sogar noch.
Eine mögliche Reaktion wäre da jetzt: "Sorry, ich habe mal wieder schneller geschrieben als gelesen. Und dann habe ich da auch noch was missverstanden. Damned, ich sollte nachfragen. Danke Sören das du mich drauf hingewiesen hast. Ich werde ab sofort mehr auf den Kontext achten, nachdenken und dann erst schreiben".Sören Hentzschel Danke für deine Ausführungen zu den Builds. Ich habe sie gelesen, aber so richtig schlau werde ich daraus nicht. Auch bleiben für mich offene Fragen, aber ich will das nicht vertiefen, weil ... es ging ja (wie so oft) um eine (anpassungs)technische Frage.
Neben den hilfreichen Antwort folgt der Thread dann leider den hinlänglich bekannten Mustern.
-
Ah, stimmt, auf about:config hätte ich auch selbst kommen können. Danke Seeteufel für den Hinweis

Fyi: ich habe mit Anpassungen in der userChrome.css (derzeit) keine Probleme.
Ich probier den Code von Andreas und dann auch die Änderung via about:config. Mal schauen was besser schmeckt.Dass es diese speziellen Builds gibt, hat einen ganz anderen Grund, der mit rationalen Gründen nichts zu tun hat.
Mozilla erstellt und verteilt (seit Jahren!) Builds die nichts mit rationalen Gründen zu tun haben; ich habe Fragen ...

Sören Hentzschel
Ich suche nach einer Lösung für ein sehr, sehr spezielles Problem.
Das Plugin, die entsprechenden Einstellungen und die Geschmeidigkeit in der Umsetzung mögen für die allermeisten User passend sein. Fein. Mich stört da 'was'.
Und da Firefox ein Browser ist der sich noch immer konfigurieren lässt suche ich dort nach Lösungen wo ich sie am ehesten vermute: in einem Forum wie diesen.
Ich will hier weder Mozilla, noch Firefox oder sonst irgendwen oder irgendwas "ans Zeuch". Ich stelle eine Frage und vielleicht hat ja jemand Antworten oder zumindest Optionen. Mehr ist da nicht. Oder sagen wir besser, mehr mache ich bei meiner Frage da jetzt gar nicht draus.
Was ich nicht suche sind Gründe, mich rechtfertigen zu müssen
-
Das Skript funktioniert soweit, danke Andreas. Ich schaue mal ob der Nutzen den potentiellen Schaden überwiegt
Edit:
da waren wir wohl fast zeitgleich am Schreiben. D.h. der obige Code ist spezifischer und bügelt nicht alle Meldungen weg, sondern nur die von dem Hinweis? Versteh ich das so ungefähr richtig? -
Ich habe schlicht keinen Bedarf für das Plugin, noch für Inhalte die darauf aufbauen. Und weil es keinen Bedarf dafür gibt, gibt es ja die Option den Firefox in einer pluginfreien Version zu nutzen. Nur sind da halt manche Webseiten die mich dann wissen lassen das sie mir Sachen andrehen wollen die ich aber noch nicht mal ignorieren mag.
Und da Firefox dem Anschein nach keine Lösung für anbietet suche ich nach der Nischenlösung. Aber ich fürchte ich bekomme den Hinweis nur "gewaltsam" mit dem Skript weg