Beiträge von Mitleser
-
-
Und wie ich schon einmal schrieb, schau in die Konsole,
da wird mit Sicherheit ein Fehler angezeigt!Hier nicht. Ist aber auch egal...Hier funzt es so mit allen Verschiebescripts
(PanelUI-button, nav-bar-overflow-button, unified-extensions-button) einwandfrei. Hättest Du mal einen Screen von der Fehlermeldung?JavaScript
Alles anzeigen//B_Move_Extensions.uc.js (function() { if (!window.gBrowser) return; /* Konfiguration */ const origID = "unified-extensions-button",// ID des originalen Buttons label = "Erweiterungen", tooltiptext = "Erweiterungen-Button"; /* Ende Konfiguration */ const menuButton = document.getElementById(origID), buttonID = 'ucjs_' + origID; if (!CustomizableUI.getPlacementOfWidget( buttonID )) { try { CustomizableUI.createWidget({ id: buttonID, type: 'custom', defaultArea: CustomizableUI.AREA_NAVBAR, onBuild: function(aDocument) { let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbaritem'); toolbaritem.id = buttonID; toolbaritem.className = 'chromeclass-toolbar-additional'; // toolbaritem.setAttribute('label', label); return toolbaritem; } }); } catch(e) { menuButton.style.display = 'none'; return; }; }; setTimeout(function() { document.getElementById(buttonID).appendChild(menuButton); menuButton.setAttribute('consumeanchor', buttonID); menuButton.setAttribute('label', label); menuButton.setAttribute('tooltiptext', tooltiptext); }, 0); }()); -
Das spielt keine Rolle, wie oft die Variable verwendet wird. Wenn du die Variablen-Deklaration in Zeile 7 löschst, was du ja machst, wenn du die Zeile auskommentierst, hast du einen Script-Fehler, sobald du diese verwendest.
Ja, ist klar.
Beide Zeilen (24 und 37) bewirken das gleiche. Also könnte eine gelöscht werden?
Genau Zeile 24 (siehe Beitrag #49) führt bei mir eben zum Verschwinden des Buttons...???
Wenn gelöscht, dann eben nicht; ich empfinde das als schon als sehr merkwürdig.Ich beziehe mich auf diesen Post:
Ich hatte auch zwischenzeitlich wieder einen Zustand, wo der Button wie beim TE ganz verschwunden war.
-
Danke für den Tip! Und lies bitte nochmal #49.
-
Die Variable wird zweimal angewendet: In Zeile 24 sowie in Zeile 37.
-
Auch die 'Verschiebescripte' haben noch einen Fehler: Wenn das label in Zeile 7 auskommentiert ist, verschwindet der Button. Das liegt wiederum am label in Zeile 24. Wird die Zeile gelöscht, funzt das Script auch ohne Label in Zeile 7 einwandfrei.
Referenz für die Zeilennummern:JavaScript
Alles anzeigen//B_Move_Extensions.uc.js (function() { if (!window.gBrowser) return; /* Konfiguration */ const origID = "unified-extensions-button",// ID des originalen Buttons label = "Erweiterungen", tooltiptext = "Erweiterungen-Button"; /* Ende Konfiguration */ const menuButton = document.getElementById(origID), buttonID = 'ucjs_' + origID; if (!CustomizableUI.getPlacementOfWidget( buttonID )) { try { CustomizableUI.createWidget({ id: buttonID, type: 'custom', defaultArea: CustomizableUI.AREA_NAVBAR, onBuild: function(aDocument) { let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbaritem'); toolbaritem.id = buttonID; toolbaritem.className = 'chromeclass-toolbar-additional'; toolbaritem.setAttribute('label', label); return toolbaritem; } }); } catch(e) { menuButton.style.display = 'none'; return; }; }; setTimeout(function() { document.getElementById(buttonID).appendChild(menuButton); menuButton.setAttribute('consumeanchor', buttonID); menuButton.setAttribute('label', label); menuButton.setAttribute('tooltiptext', tooltiptext); }, 0); }()); -
Lieber milupo , der .tab-audio-button befindet sich im shadow-root-Bereich. Also gibt es nur eine Lsg. über userChromeShadow.css; ein Teil befindet sich aber außerhalb dieses Bereiches; eine Lsg. die beide Bereiche bedient ist also: Die oben genannte Datei (so kompliziert sich der text auch liest!) in eine .us.js-Datei einzugliedern. Hast du was Besseres?
-
-
Gibts auch für das schon was?
Wenn dir das alles zu kompliziert ist, setze doch das css einfach in eine .uc.js, ungefähr so (Damit wäre der gesamte Quelltext an einem Ort):
CSS
Alles anzeigen// TabIconSound.css.uc.js (function() { if (location != 'chrome://browser/content/browser.xhtml') return; const // ■■ START UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ IconPath1 = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'css', 'image', 'ff_svg')), // Pfad zum 1.Ordner der das .svg-Symbol (mit: fill="context-fill" fill-opacity="context-fill-opacity") beinhaltet. IconPath2 = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'css', 'image')), // Pfad zum 2.Ordner der das .svg-Symbol (mit: fill="context-fill" fill-opacity="context-fill-opacity") beinhaltet. IconPath3 = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons')); // Pfad zum 3.Ordner der das .svg-Symbol (mit: fill="context-fill" fill-opacity="context-fill-opacity") beinhaltet. // ■■ END UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ const sss = Components.classes['@mozilla.org/content/style-sheet-service;1'].getService(Components.interfaces.nsIStyleSheetService); const uri = Services.io.newURI('data:text/css;charset=utf-8,' + encodeURIComponent(` .tab-audio-button { #tabbrowser-tabs:is([orient="vertical"][expanded], [orient="horizontal"]) &:not([pinned]):not([crashed]) { &[soundplaying]::part(button) { background-image: url("${IconPath2}/16_volume-up_moz.svg") !important; } } } .tab-audio-button:hover { #tabbrowser-tabs:is([orient="vertical"][expanded], [orient="horizontal"]) &:not([pinned]):not([crashed]) { &[soundplaying]::part(button) { background-image: url("${IconPath2}/16_volume-off_moz.svg") !important; } } } .tab-audio-button { #tabbrowser-tabs:is([orient="vertical"][expanded], [orient="horizontal"]) &:not([pinned]):not([crashed]) { &[muted]::part(button) { background-image: url("${IconPath2}/16_volume-off_moz.svg") !important; } } } .tab-audio-button:hover { #tabbrowser-tabs:is([orient="vertical"][expanded], [orient="horizontal"]) &:not([pinned]):not([crashed]) { &[muted]::part(button) { background-image: url("${IconPath2}/16_volume-up_moz.svg") !important; } } } .tab-audio-button { &[soundplaying]::part(button) { fill: green !important; } } .tab-audio-button { &[muted]::part(button) { fill: red !important; } } .tab-audio-button:hover { &[soundplaying]::part(button) { fill: red !important; background-color: lightgray !important; } } .tab-audio-button:hover { &[muted]::part(button) { fill: green !important; background-color: lightgray !important; } } #tabbrowser-tabs:is([orient="vertical"][expanded], [orient="horizontal"]) .tabbrowser-tab:not([pinned]):not([crashed]):is([soundplaying], [muted], [activemedia-blocked]) { .tab-content .tab-icon-image { display: none; } .tab-audio-button { --button-size-icon-small: 18px !important; --button-min-height-small: 18px !important; margin: auto 2px auto -20px !important; transform: translateY(-2px); } } `), null, null); sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET); })(); /*Der Letzte räumt den Quellcode auf*/Beispielicons:
-
Ich bin hier auf eine interessante Lsg. gestoßen;
CSS
Alles anzeigen/* hide favicon when audio is playing (like FF 135) */ #tabbrowser-tabs:is([orient="vertical"][expanded], [orient="horizontal"]) .tabbrowser-tab:not([pinned]):not([crashed]):is([soundplaying], [muted], [activemedia-blocked]) { .tab-content .tab-icon-image { display: none; } .tab-audio-button { --button-size-icon-small: 18px !important; --button-min-height-small: 18px !important;/**/ margin: auto 2px auto -20px !important; transform: translateY(-1.5px); } }Nach etwas Justierung ersetzt der .tab-audio-button das .tab-icon-image ganz ohne 'geflacker', Die Farbe muß - wie gehabt - angepasst werden.
-
Mir zumindest ist nichts bekannt.
Das ist das ist einzige Script, dass nach dem Update auf 136 bei mir nicht mehr funktioniert.
RIP 03/2025
-
auf 136.0 upgedatet
Diesen Button habe ich mal für mich selbst geschrieben, funzt auch in 136:
EDIT: zeitgleicher Post mit Andreas; damit ist dieser Beitrag überflüssig.
JavaScript
Alles anzeigen// JavaScript Document // B_Quit_Firefox.uc.js // Das Script erstellt einen Button, der ein einzelnes Firefox-Fenster separat schließt (Linksklick) oder Firefox beendet (Mittel-/Rechtsklick). Das .svg-Icon kann - je nach Hover-Zustand - mit zwei unterschiedlichen Farben gefüllt werden [fill]. Beim Überfahren des Buttons rotiert das Icon um 180deg [rotate: 180deg]. // Für das mitgelieferte Icon als .svg-Datei mit [moz-context-properties] ändert das Script die Einstellung [svg.context-properties.content.enabled] in about:config auf 'true'. (function() { if (!window.gBrowser) return; const // ■■ START UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ id = 'quit-button', // Id des neuen Buttons label = 'Fenster schließen/Firefox beenden', // Bezeichnung des neuen Buttons tooltiptext = 'Fenster schließen/Firefox beenden\n\nLinksklick: Fenster schließen\nMittel-/Rechtsklick: Firefox beenden', // Icon------------------------------------------------------- icon = 'quit-16.svg', // [Name.Dateiendung] des anzuzeigenden Symbols iconPath = '/chrome/icons/', // Pfad zum Ordner der das Icon beinhaltet iconColOu = 'red', // Farbe des Icons (nur .svg-Datei mit [moz-context-properties], bei anderen Icons hat const iconColOu keine Funktion) iconColOv = 'currentColor', // Farbe des Icons beim Überfahren des Buttons (nur .svg-Datei mit [moz-context-properties], bei anderen Icons hat const iconColOv keine Funktion) // ■■ END UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ curProfDir = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir)), cl = '.toolbarbutton-icon'; //const end if (Services.prefs.getBoolPref('svg.context-properties.content.enabled') == false) { Services.prefs.setBoolPref('svg.context-properties.content.enabled', true ); } //---- CustomizableUI.createWidget({ id: id, type: 'button', defaultArea: CustomizableUI.AREA_NAVBAR, label: label, tooltiptext: tooltiptext, onCreated: (button) => { button.style.MozContextProperties = 'fill, stroke, fill-opacity'; button.style.listStyleImage = 'url("' + curProfDir + iconPath + icon + '")'; button.style.fill = iconColOu; //over button.addEventListener('mouseover', () => { button.style.fill = iconColOv; button.querySelector(cl).style.rotate = '180deg'; }); //out button.addEventListener('mouseout', () => { button.style.fill = iconColOu; button.querySelector(cl).style.rotate = '0deg'; }); //click button.addEventListener('click', () => { if (event.button === 0) { event.target.ownerGlobal.BrowserCommands.tryToCloseWindow(event); } else if (event.button === 1 || event.button === 2) { event.target.ownerGlobal.goQuitApplication(event); } }); } }); //---- })(); -
-
-
Danke, auch für die Erklärung...


-
Das im Link abgesprochene Problem mit der deutschen Tastaturbelegung wurde durch die Verwendung von X11 anstatt Wayland als Fenstermanager behoben.
Habe gerade im Anmelde-'Bildschirm' umgestellt, nun passt es...
Aber ich bin unsicher welche Datei ich von FF als Starter verwenden soll; entweder firefox
oder firefox-bin ?EDIT: Ich habe aus dieser Quelle installiert :https://www.mozilla.org/de/firefox/all…ase/linux64/de/
-
Linux Mint 22.1 Xia
Gerade installiert, hat bei mir Macken, z.B. https://forums.linuxmint.com/viewtopic.php?t=440060, usw., ist eben noch zu neu und 'wayland' funzt auch noch nicht...abwarten...
-
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.
-
Trotzdem muss das Skript für Fx 136 angepasst werden, denn damit funktioniert es nicht mehr.
Ich push das mal, gibt es Neuigkeiten zu diesem Script?
-
"Spielverderber"
will ich bestimmt nicht sein, Vorschlag getestet, geht trotzdem nicht; Fehler liegt bestimmt irgendwo in meinem Profil; was soll's, bei den Anderen klappts, das ist die Hauptsache...