Menü "Extras": "Einstellungen": "Schriftarten".
Jede Menge Auswahl....
Menü "Extras": "Einstellungen": "Schriftarten".
Jede Menge Auswahl....
Aber hat denn nun schon jemand Erfolg zu vermelden mit Rechtsklick für userContent.css ?
milupo :
Danke für den Schubs:
Das tuts:
window.__SSi == "window0" && CustomizableUI.createWidget({
id: "Reload_userChrome",
label: "Reload userChrome",
localized: false,
onCreated(btn) {
var u = Services.io.newURI;
var code = Cu.readUTF8URI(u(
u(Components.stack.filename).resolve("reload_userChrome.txt")
)).replace(
'Components.utils.import("resource://gre/modules/Services.jsm", {})',
"Cu.getGlobalForObject(Cu)"
);
var del = function() {
this.previousSibling.remove();
this.remove();
};
var currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");
var buttonicon = "/chrome/icons/css-vorschau.png";
(this.onCreated = btn => {
// btn.setAttribute("image", "data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABPElEQVQ4ja3TsU6UQRQF4G8D7jaS2EqhwMaYSGHnI1BQ+ATaUtqR0BJIDGjhMxhKKgLxEQStDFYmGpTKqC8grMdiZ80w4d/KSW5xM/ece2fuOTQnDMOL8D78DL/CSdgJd0vN7XAeDmrgbHgZRiEdcRk2w2rJ//QmYBxhpfB9wR4+4AaW8RQL1f1S3f151WU7Y1D7tEHYbacSlqqxt1tgAd8PayVOW4KtkpyFfgfBu44/Gc3iUal73eP3dQTYxy3MXOV1IDwIG2GuA/z/T7gZnoWh8Cp8buJTWJ9CMPm3Q1OEc9wBHoRvpWZLAzqt1nWvg2BnsoGw0BKk+GBwDbBfgf9pppfxOrgqz6/GUv6IER7iiWImvMHjHpf1BKvFKBdTzDQqU8zUox0Va86X/E7xxtvwI3wvStwNi+3T/gL+gPNd4cyuEQAAAABJRU5ErkJggg==");
btn.setAttribute("image", "file:" + currentProfileDirectory + buttonicon);
btn.defaultContextId = "toolbar-context-menu";
var win = btn.ownerGlobal;
var wdp = new win.DOMParser();
var parser = class {
parseFromString(...args) {
var doc = wdp.parseFromSafeString(...args);
doc.documentElement.lastChild.appendChild = del;
return doc;
}
}
win.setTimeout(() => new win.Function("DOMParser", code).call(btn, parser), 50);
})(btn);
}
});
Alles anzeigen
Soweit ich weiß, funktioniert diese Kurzform nicht in Skripten.
Ähhh...
das war nur zum verdeutlichen, wo das css-vorschau.png liegt.
Irgendwie muß man doch auch in diesem Script das base64 durch ein File ersetzen können
Hülfäää
Ich kriegs mal wieder nicht hin.
Wie ersetze ich das base64
btn.setAttribute("image", "data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABPElEQVQ4ja3TsU6UQRQF4G8D7jaS2EqhwMaYSGHnI1BQ+ATaUtqR0BJIDGjhMxhKKgLxEQStDFYmGpTKqC8grMdiZ80w4d/KSW5xM/ece2fuOTQnDMOL8D78DL/CSdgJd0vN7XAeDmrgbHgZRiEdcRk2w2rJ//QmYBxhpfB9wR4+4AaW8RQL1f1S3f151WU7Y1D7tEHYbacSlqqxt1tgAd8PayVOW4KtkpyFfgfBu44/Gc3iUal73eP3dQTYxy3MXOV1IDwIG2GuA/z/T7gZnoWh8Cp8buJTWJ9CMPm3Q1OEc9wBHoRvpWZLAzqt1nWvg2BnsoGw0BKk+GBwDbBfgf9pppfxOrgqz6/GUv6IER7iiWImvMHjHpf1BKvFKBdTzDQqU8zUox0Va86X/E7xxtvwI3wvStwNi+3T/gL+gPNd4cyuEQAAAABJRU5ErkJggg==");
durch ../icons/css-vorschau.png
96_CSS-Vorschau.uc.js:
// reload_userChrome.uc.js = 96_CSS-Vorschau.uc.js
// Applying changes to userChrome.css and userContent.css styles without restarting Firefox
// The file reload_userChrome.txt should be in the same folder with the script
window.__SSi == "window0" && CustomizableUI.createWidget({
id: "Reload_userChrome",
label: "Reload userChrome",
localized: false,
onCreated(btn) {
var u = Services.io.newURI;
var code = Cu.readUTF8URI(u(
u(Components.stack.filename).resolve("reload_userChrome.txt")
)).replace(
'Components.utils.import("resource://gre/modules/Services.jsm", {})',
"Cu.getGlobalForObject(Cu)"
);
var del = function() {
this.previousSibling.remove();
this.remove();
};
(this.onCreated = btn => {
btn.setAttribute("image", "data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABPElEQVQ4ja3TsU6UQRQF4G8D7jaS2EqhwMaYSGHnI1BQ+ATaUtqR0BJIDGjhMxhKKgLxEQStDFYmGpTKqC8grMdiZ80w4d/KSW5xM/ece2fuOTQnDMOL8D78DL/CSdgJd0vN7XAeDmrgbHgZRiEdcRk2w2rJ//QmYBxhpfB9wR4+4AaW8RQL1f1S3f151WU7Y1D7tEHYbacSlqqxt1tgAd8PayVOW4KtkpyFfgfBu44/Gc3iUal73eP3dQTYxy3MXOV1IDwIG2GuA/z/T7gZnoWh8Cp8buJTWJ9CMPm3Q1OEc9wBHoRvpWZLAzqt1nWvg2BnsoGw0BKk+GBwDbBfgf9pppfxOrgqz6/GUv6IER7iiWImvMHjHpf1BKvFKBdTzDQqU8zUox0Va86X/E7xxtvwI3wvStwNi+3T/gL+gPNd4cyuEQAAAABJRU5ErkJggg==");
btn.defaultContextId = "toolbar-context-menu";
var win = btn.ownerGlobal;
var wdp = new win.DOMParser();
var parser = class {
parseFromString(...args) {
var doc = wdp.parseFromSafeString(...args);
doc.documentElement.lastChild.appendChild = del;
return doc;
}
}
win.setTimeout(() => new win.Function("DOMParser", code).call(btn, parser), 50);
})(btn);
}
});
// 96_CSS-Vorschau.uc.js
// 231106: lenny2
// https://www.camp-firefox.de/forum/thema/112673-userchrome-js-scripte-f%C3%BCr-den-fuchs-diskussion/?postID=1239120#post1239120
Alles anzeigen
reload_userChrome.txt:
// reload_userChrome.txt
// Applying changes to userChrome.css and userContent.css styles without restarting Firefox
// Place in the same folder as the reload_userChrome.uc.js script
// To deactivate the reload function of userContent.css, comment out lines 82-88, edit tooltiptext line 11
var c = msg => Services.console.logStringMessage(String(msg)), i = obj => inspectObject(obj), n = node => inspectDOMNode(node);
(obj => {
this.onclick = obj.click.bind(obj);
this.oncontextmenu = obj.contextmenu.bind(obj);
this.tooltipText = "L: Reload userChrome.css\nR: Reload userContent.css";
})
({
async click(e) {
if (e.button == 1) return gShowPopup(self);
if (e.button || !this.chromeSheet) return;
await this.reload(this.chromeSheet);
this.restyle(0);
},
re: /^(?:web.*|file|extension|privilegedabout)$/,
get url() {
delete this.url;
return this.url = `chrome://extensions/content/dummy.x${
parseInt(Services.appinfo.platformVersion) >= 74 ? "htm" : "u"
}l`;
},
async contextmenu(e) {
if (e.ctrlKey || e.shiftKey || e.detail != 1 || !this.contentSheetURL) return;
e.preventDefault();
var count = Services.ppmm.childCount, one = count == 1;
var data = await this.reloadTab(this.url, one ? false : {});
if (one) this.reloadTab();
else if (data) {
var url = "data:," + encodeURIComponent(
self.Help + this.contentSheetURL + '", ' + JSON.stringify(data) + ");"
);
for(var ind = 0; ind < count; ind++) {
var child = Services.ppmm.getChildAt(ind);
var rt = child.remoteType;
rt && this.re.test(rt) && child.loadProcessScript(url, false);
}
}
this.restyle(250);
},
async reload(sheet, obj) {
try {var style = await (await fetch(sheet.href)).text();}
catch (ex) {return obj;}
InspectorUtils.parseStyleSheet(sheet, style);
if (obj) obj[sheet.href] = style;
for(var ind = 0, len = sheet.cssRules.length; ind < len; ind++) {
var rule = sheet.cssRules.item(ind);
rule.type == rule.IMPORT_RULE
&& rule.styleSheet.href.startsWith("file:///")
&& await this.reload(rule.styleSheet, obj);
}
return obj;
},
reloadTab(url, obj) {
var tab = gBrowser.addTab(url, {skipAnimation: true, triggeringPrincipal: document.nodePrincipal});
tab.style.setProperty("display", "none", "important");
return new Promise(resolve => {
var result, stop, destroy = () => {
if (!stop) resolve(result), gBrowser.removeTab(tab), stop = true;
}
setTimeout(destroy, 500);
try {
tab.linkedBrowser.addEventListener("DOMContentLoaded", async e => {
var sheet = this.getSheet(e.target, this.contentSheetURL);
if (sheet) result = await this.reload(sheet, obj);
destroy();
}, {once: true});
} catch(ex) {
destroy();
}
});
},
getSheet(doc, href) {
var sheets = InspectorUtils.getAllStyleSheets(doc);
return sheets.find(sheet => sheet.href == href);
},
get contentSheetURL() {
var file = Services.dirsvc.get("UChrm", Ci.nsIFile);
file.append("userContent.css");
if (!file.exists()) return null;
delete this.contentSheetURL;
return this.contentSheetURL = Services.io.newFileURI(file).spec;
},
get restyle() {
var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
var uri = Services.io.newURI("data:text/css,:root{}"), type = sss.USER_SHEET;
delete this.restyle; return this.restyle = delay => setTimeout(() => {
sss.loadAndRegisterSheet(uri, type);
sss.unregisterSheet(uri, type);
}, delay);
},
get chromeSheet() {
var file = Services.dirsvc.get("UChrm", Ci.nsIFile);
file.append("userChrome.css");
if (!file.exists()) return null;
var href = Services.io.newFileURI(file).spec;
var sheet = this.getSheet(document, href);
if (!sheet) return null;
delete this.chromeSheet; return this.chromeSheet = sheet;
}
});
Alles anzeigen
03_leistenfolge+farben_89.css
/* 03_leistenfolge+farben_89.css
GEWÜNSCHTE Leisten-Farben
220609: FF89neu
Weit vorne, damit ich auch mitbekommne, was, wo, warum oder nicht ;)
*/
/*
Titelzeile = #titlebar = unveränderbar, WIN-bestimmt
#toolbar-menubar = Menü-Bereich = 1 = coral
#fp-statusbar-2 = Status-bar = 2 = gainsboro = Suchen+AddOns
#PersonalToolbar = Lesezeichen-Bereich = 3 = yellow
#nav-bar = Navigations-Bereich = 4 = cornflowerblue = aktuelle URL und diverses
#TabsToolbar = TAB-Bereich = 5 = default Farbe = #eeeeee =helles grau
Anmerkung:
Nach einem Kurzzeittest mit "Gold" scheint mir ein zu einheitliches Farb-Layout nicht zu liegen...
230412: Vorbereitung FF113
*/
@-moz-document url-prefix("chrome://browser/content/browser.xhtml") {
#toolbar-menubar {
background: coral!important;
}
#fp-statusbar-2 {
background: gainsboro !important; /*gainsboro, wenn oben ;)*/
/* background: sandybrown !important; */ /*sandybrown wenn unten ;)*/
}
#PersonalToolbar {
background: yellow !important;
/* background: pink !important; */
/*pink zum rumtesten*/
}
#nav-bar {
order: 100 !important; /*ab FF113 ? */
-moz-box-ordinal-group: 100 !important; /*funktioniert irgendwie :o */
background: lightskyblue !important; /* lightskyblue */
order: 100 !important;
}
#TabsToolbar {
background: #eeeeee !important; /* #eeeeee=helles grau; pink zum rumtesten*/
}
}
Alles anzeigen
about_downloads.css
/* about:downloads anpassen*/
/* ACHTUNG !!! das ist für wenns im TAB auftaucht */
/* und das gehört in den content-Bereichwegen about: */
/* 211217 Nachfragen/Antworten/Einbau:
https://www.camp-firefox.de/forum/thema/133984/?postID=1192861#post1192861
*/
/* 220922 für ALLE Fenster
sagt Dharkness: https://www.camp-firefox.de/forum/thema/135293
*/
button.downloadButton.downloadIconShow {
color: white !important;
border: 2px solid black !important;
border-radius: 5px !important;
background: lightgreen!important;
margin: 2px !important;
}
button.downloadButton.downloadIconShow:hover {
color: black!important;
border: 2px solid black !important;
border-radius: 5px !important;
background: coral!important;
margin: 2px !important;
}
/* 220923: about:downloads den Leerbereich anpassen*/
#downloadsListBox{
border: 4px solid black !important;
background-color: gold !important;
}
#contentAreaDownloadsView{
border: 4px solid black !important;
background-color: yellow !important;
/* background-color: blue !important; */
}
/* 211231: Fortschritt bunt*/
/* Andy: https://www.camp-firefox.de/forum/thema/134010/?postID=1193247#post1193247 */
.downloadProgress {
appearance: none !important;
height: 10px !important;
background-color: yellow !important;
}
.downloadProgress::-moz-progress-bar {
background-color: red !important;
height: 10px !important;
}
.downloadProgress[paused]::-moz-progress-bar {
background-color: lightgreen !important;
}
Alles anzeigen
hth...
Melde jehorsamst: dat tut
Beides
Ich hab lediglich die Codes "aufgeräumt" = eingerückt und dann in 2 Files Farben zum Test geändert:
userChrome.css: 03_leistenfolge+farben_89.css
userContent.css: about_downloads.css
Beide werden jeweils per Import aus Unterverzeichnissen (css bzw contentCSS) geladen.
einfach mit in den Ordner chrome, dort wo auch das Skript ist.
Ahhh... bei mir also chrome/my_js/reload_userChrome.txt
Oder habe ich/wird das alles nur falsch verstanden
war für mich eigentlich eindeutig
Lassen wir uns mal überraschen...
Du hast auch die Datei reload_userChrome.txt angelegt?
Ähhh...
Und wo gehört die hin?
Und was gehört da rein?
Bei mir bleibt der Button auch leer...
Frage: Funktioniert das bei jemandem?
Bei mir passiert nix, wenn ich auf den Button drücke, nachdem ich ein importiertes .css geändert habe.
Teste bitte wieder:
Danke, das klappt wieder.
Das Video wird ihm vom Website-Content losgelöst und dauerhaft sichtbar angezeigt und er möchte das nicht.
Danke.
Teste bitte mal:
Die haben wohl irgenwas geändert, jetzt taucht es wieder auf.
2002Andreas : findest Du wieder die Lösung?
Du könntest mal diese Version einer vertikalen Leiste testen:
Danke, ich habs mal in meinen 4tests-Ordner gespeichert.
Von wem und woher is das?
Riecht allerdings nach nem Zeitaufwand, den ich kaum habe.
Boah, seid Ihr schnell
Alles widda da, Schankedön
PS: Das Script könnte mal ausgemistet werden. Code, um Firefox 62 und älter zu unterstützen, scheint mir nicht mehr notwendig zu sein.
Würde ich gerne, aber sowohl meinereiner als auch meine Mom sind im Real-Life dermaßen angeschlagen, daß ich so gut wie keine Zeit für meine geliebten FF-Basteleien habe.
n'abend....
Nach dem Update von 116.0.3 auf 117 fehlt meine Vertikale bar rechts.
Mag bitte jemand den Code mal gegenchecken und notfalls helfen?
// 21_vertikalbar.uc.js
// 'Vertical Add-on Bar' script for Firefox 60+ by Aris
//
// no 'close' button
// 'toggle' toolbar with 'Ctr + Alt + /' on Windows/Linux or 'Cmd + Alt + /' on macOS
// optional toggle button hides the toolbar temporarily, it gets restored on every restart
// 'Vertical Add-on Bar' entry is only visible in toolbars context menu when in customizing mode
//
// flexible spaces on toolbar work 'vertically'
// toolbar can be on the left or on the right
// toolbar is display horizontally in customizing mode
// [!] Fix for WebExtensions with own windows by 黒仪大螿蟹 (for 1-N scripts)
// 210827: milupo: https://www.camp-firefox.de/forum/thema/133276-script/?postID=1181581#post1181581
// 210827: meine Nachfragen: https://www.camp-firefox.de/forum/thema/133278
Components.utils.import("resource:///modules/CustomizableUI.jsm");
var {Services} = Components.utils.import("resource://gre/modules/Services.jsm", {});
var appversion = parseInt(Services.appinfo.version);
var AddonbarVertical = {
init: function() {
if (appversion >= 76 && location != 'chrome://browser/content/browser.xhtml')
return;
/* blank tab workaround */
try {
if(gBrowser.selectedBrowser.getAttribute('blank')) gBrowser.selectedBrowser.removeAttribute('blank');
} catch(e) {}
var addonbar_v_label = "Vertikale Add-on-Leiste"; // toolbar name
var button_label = "Vertikale Add-on-Leiste umschalten";// Toggle button name
var addonbar_v_togglebutton = true; // display toggle button for vertical toolbar (true) or not (false)
var addonbar_v_on_the_left = false; // display vertical toolbar on the left (true) or the right (false)
var insert_before_borders = true; // may not always offer a visible change
var style_addonbar_v = false; // apply default toolbar appearance/colors to vertical add-on bar
var addonbar_v_width = "40px"; // toolbar width
var compact_buttons = false; // compact button size (true) or default button size (false)
try {
if(document.getElementById('toolbox_abv') == null && document.getElementById('addonbar_v') == null) {
if(appversion <= 62) var toolbox_abv = document.createElement("toolbox");
else var toolbox_abv = document.createXULElement("toolbox");
toolbox_abv.setAttribute("orient","horizontal");
toolbox_abv.setAttribute("id","toolbox_abv");
toolbox_abv.setAttribute("insertbefore","sidebar-box");
if(appversion <= 62) var tb_addonbarv = document.createElement("toolbar");
else var tb_addonbarv = document.createXULElement("toolbar");
tb_addonbarv.setAttribute("id","addonbar_v");
tb_addonbarv.setAttribute("customizable","true");
tb_addonbarv.setAttribute("class","toolbar-primary chromeclass-toolbar browser-toolbar customization-target");
tb_addonbarv.setAttribute("mode","icons");
tb_addonbarv.setAttribute("iconsize","small");
tb_addonbarv.setAttribute("toolboxid","navigator-toolbox");
tb_addonbarv.setAttribute("orient","vertical");
tb_addonbarv.setAttribute("flex","1");
tb_addonbarv.setAttribute("context","toolbar-context-menu");
tb_addonbarv.setAttribute("toolbarname", addonbar_v_label);
tb_addonbarv.setAttribute("label", addonbar_v_label);
tb_addonbarv.setAttribute("lockiconsize","true");
tb_addonbarv.setAttribute("defaultset","spring");
toolbox_abv.appendChild(tb_addonbarv);
CustomizableUI.registerArea("addonbar_v", {legacy: true});
if(appversion >= 65) CustomizableUI.registerToolbarNode(tb_addonbarv);
if(addonbar_v_on_the_left) {
if(insert_before_borders) document.getElementById("browser").insertBefore(toolbox_abv,document.getElementById("browser").firstChild);
else document.getElementById("browser").insertBefore(toolbox_abv,document.getElementById("browser").firstChild.nextSibling);
}
else {
if(insert_before_borders) document.getElementById("browser").appendChild(toolbox_abv);
else document.getElementById("browser").insertBefore(toolbox_abv,document.getElementById("browser").lastChild);
}
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
try {
if(document.querySelector('#main-window').getAttribute('customizing')) {
document.querySelector('#addonbar_v').setAttribute("orient","horizontal");
document.querySelector('#navigator-toolbox').appendChild(document.querySelector('#addonbar_v'));
}
else {
document.querySelector('#addonbar_v').setAttribute("orient","vertical");
document.querySelector('#toolbox_abv').appendChild(document.querySelector('#addonbar_v'));
}
} catch(e){}
});
});
observer.observe(document.querySelector('#main-window'), { attributes: true, attributeFilter: ['customizing'] });
try {
Services.prefs.getDefaultBranch("browser.vaddonbar.").setBoolPref("enabled",true);
setToolbarVisibility(document.getElementById("addonbar_v"), Services.prefs.getBranch("browser.vaddonbar.").getBoolPref("enabled"));
setToolbarVisibility(document.getElementById("toolbox_abv"), Services.prefs.getBranch("browser.vaddonbar.").getBoolPref("enabled"));
} catch(e) {}
if(addonbar_v_togglebutton) {
CustomizableUI.createWidget({
id: "tooglebutton_addonbar_v", // button id
defaultArea: CustomizableUI.AREA_NAVBAR,
removable: true,
label: button_label, // button title
tooltiptext: button_label, // tooltip title
onClick: function(event) {
var windows = Services.wm.getEnumerator(null);
while (windows.hasMoreElements()) {
var win = windows.getNext();
var vAddonBar = win.document.getElementById("addonbar_v");
setToolbarVisibility(vAddonBar, vAddonBar.collapsed);
var vAddonBarBox = win.document.getElementById("toolbox_abv");
setToolbarVisibility(vAddonBarBox, vAddonBarBox.collapsed);
Services.prefs.getBranch("browser.vaddonbar.").setBoolPref("enabled",!vAddonBar.collapsed);
if(!vAddonBar.collapsed)
win.document.querySelector('#tooglebutton_addonbar_v').setAttribute("checked","true");
else win.document.querySelector('#tooglebutton_addonbar_v').removeAttribute("checked");
}
},
onCreated: function(button) {
if(Services.prefs.getBranch("browser.vaddonbar.").getBoolPref("enabled"))
button.setAttribute("checked","true");
return button;
}
});
}
// 'Ctr + Alt + /' on Windows/Linux or 'Cmd + Alt + /' on macOS to toggle vertical add-on bar
var key = document.createXULElement('key');
if(appversion < 69) key = document.createElement("key");
key.id = 'key_toggleVAddonBar';
key.setAttribute('key', '/');
key.setAttribute('modifiers', 'accel,alt');
key.setAttribute('oncommand','\
var windows = Services.wm.getEnumerator(null);\
while (windows.hasMoreElements()) {\
var win = windows.getNext(); \
var vAddonBar = win.document.getElementById("addonbar_v");\
setToolbarVisibility(vAddonBar, vAddonBar.collapsed);\
var vAddonBarBox = win.document.getElementById("toolbox_abv");\
setToolbarVisibility(vAddonBarBox, vAddonBarBox.collapsed);\
Services.prefs.getBranch("browser.vaddonbar.").setBoolPref("enabled",!vAddonBar.collapsed);\
if(!vAddonBar.collapsed)\
win.document.querySelector("#tooglebutton_addonbar_v").setAttribute("checked","true");\
else win.document.querySelector("#tooglebutton_addonbar_v").removeAttribute("checked");\
}\
');
document.getElementById('mainKeyset').appendChild(key);
}
} catch(e) {}
// style toolbar & toggle button
var addonbar_v_style = '';
var tooglebutton_addonbar_v_style = '';
if(style_addonbar_v) {
var end_border =' \
#addonbar_v { \
-moz-border-end: 1px solid var(--sidebar-border-color,rgba(0,0,0,0.1)) !important; \
}\
';
if(!addonbar_v_on_the_left) {
end_border ='\
#addonbar_v { \
-moz-border-start: 1px solid var(--sidebar-border-color,rgba(0,0,0,0.1)) !important; \
}\
';
}
addonbar_v_style ='\
#addonbar_v { \
appearance: none !important; \
background-color: forestgreen; \
background-image: var(--toolbar-bgimage); \
background-clip: padding-box; \
color: var(--toolbar-color, inherit); \
} \
#main-window:not([customizing]) #toolbox_abv:not([collapsed="true"]), \
#main-window:not([customizing]) #addonbar_v:not([collapsed="true"]) { \
min-width: '+addonbar_v_width+'; \
width: '+addonbar_v_width+'; \
max-width: '+addonbar_v_width+'; \
} \
#main-window[chromehidden="menubar toolbar location directories status extrachrome "] #toolbox_abv:not([collapsed="true"]), \
#main-window[chromehidden="menubar toolbar location directories status extrachrome "] #addonbar_v:not([collapsed="true"]), \
#main-window[sizemode="fullscreen"] #toolbox_abv:not([collapsed="true"]), \
#main-window[sizemode="fullscreen"] #addonbar_v:not([collapsed="true"]) { \
min-width: 0px; \
width: 0px; \
max-width: 0px; \
} \
#main-window[customizing] #addonbar_v { \
outline: 1px dashed !important; \
outline-offset: -2px !important; \
} \
#addonbar_v { \
background: var(--lwt-header-image) !important; \
background-position: 100vw 50vh !important; \
} \
'+end_border+' \
';
}
if(addonbar_v_togglebutton) {
tooglebutton_addonbar_v_style ='\
#tooglebutton_addonbar_v .toolbarbutton-icon { \
background: 4px 4px url(file:///../icons/dummy.png) no-repeat; \
}\
/*#tooglebutton_addonbar_v .toolbarbutton-icon { \
list-style-image: url("chrome://browser/skin/forward.svg"); \
fill: cyan; \
} \
#tooglebutton_addonbar_v[checked] .toolbarbutton-icon { \
fill: cyan; \
} \
#tooglebutton_addonbar_v { \
background: url("chrome://browser/skin/back.svg") no-repeat; \
background-size: 35% !important; \
background-position: 10% 70% !important; \
} \
#tooglebutton_addonbar_v[checked] { \
transform: rotate(180deg) !important; \
background: url("chrome://browser/skin/back.svg") no-repeat; \
background-position: 10% 30% !important; \
}*/\
';
}
var compact_buttons_code = "";
if(compact_buttons)
compact_buttons_code = "\
#addonbar_v toolbarbutton .toolbarbutton-icon { \
padding: 0 !important; \
width: 16px !important; \
height: 16px !important; \
} \
#addonbar_v .toolbarbutton-badge-stack { \
padding: 0 !important; \
margin: 0 !important; \
width: 16px !important; \
min-width: 16px !important; \
height: 16px !important; \
min-height: 16px !important; \
} \
#addonbar_v toolbarbutton .toolbarbutton-badge { \
margin-top: 0px !important; \
font-size: 8px !important; \
} \
";
var uri = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent('\
'+addonbar_v_style+' \
'+tooglebutton_addonbar_v_style+' \
'+compact_buttons_code+' \
'), null, null);
var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService);
sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
}
}
/* initialization delay workaround */
document.addEventListener("DOMContentLoaded", AddonbarVertical.init(), false);
Alles anzeigen
Ich habe dafür in der userChrome.css das flexible Teil (toolbarspring) benutzt:
Jo, gefällt auch, scheint einfacher und flexibler zu sein....
Danke fürs teilen
Eine Art CSS Variante ist etwas das ich gelegentlich einsetze, die nicht benutzte Buttons verwendet.
Die für einen verfügbaren/sowieso nie benutzten Buttons muss man sich dann halt raussuchen.
Danke, mitgenommen, Sack gesteckt
Wäre ebenso eine Möglichkeit, ich bin aber interessiert / wissbegierig zum Aufwand vs Nutzen.
Ich habe mir vor vielen (14)Jahren das Rauchen dank E-Dampfen abgewöhnt und das Dampfen wurde zum Hobby.
So hab ich z.b. einen Ordner "Geekvape" in dem ich normale Links (Homepage, Verdampfer-Seiten) als auch Ordner für die diversen Verdampfer habe.
In den Verdampfer-Ordnern habe ich entweder Links zu Shops oder für jedes Modell einen Unterordner.
In den Modell-Unterordnern habe ich wieder jeweils Links zu Shopseiten oder für Zubehör je einen Unterordner.
Hinzu kommen noch Links zu YT-Video-Reviews oder Threads in einem Dampferforum.
Neben der Sortierung habe ich (als Gewohnheitstier) dadurch auch einen schnellen Überblick.
Hört sich komisch an, is aber so
Aber Mann/Frau/Divers könnte sich ja aus den Unicodes was passendes raussuchen: