Ja, ich meinte den Bereich Lesezeichen hinzufügen. Perfekte Lösung, vielen Dank!
Und welche Lösung hat jetzt welches Problem gelöst ?
Ja, ich meinte den Bereich Lesezeichen hinzufügen. Perfekte Lösung, vielen Dank!
Und welche Lösung hat jetzt welches Problem gelöst ?
Mir ist nicht ganz klar wie - aber mit einer wilden Mixtur aus Infos aus dem Forum hätte ich ( vielleicht ) hier eine potentiell funktionierende vertikale Toolbar in reduzierter Form .
Die auch den Browserinhalt anpasst beim Schliessen !
Vielleicht kann mir jemand mit mehr Kompetenz einen oder 2 Tips Tip geben, um weiterzukommen ohne zu viel Zeit mit meinem Amateurgepfusche zu verschwenden .
Zu erledigen # 1 : Im Symbolleiste anpassen Fenster ist die Zusatzleiste nicht sichtbar ; bei mir sind die Leseichensymbole nur drin weil ich sie in einer früheren Version schon reingepflanzt hatte ; in eine unsichtbare Leiste kann man eben nichts reinschieben oder rausnehmen .
Das wäre der allerwichtigste nächste Schritt .
#2 : Die Lesezeichen als Inhalt der Zusatzleiste werden nur im ersten geöffneten Firefox Fenster dargestellt; in jedem weiteren Fenster bleibt die Liste leer ( Anhang 1 erstes Fenster , Anhang 2 neues Fenster ) .
Andere Buttons aus dem Symbolleiste anpassen Fenster haben das Problem nicht - nur ausgerechnet die Lesezeichen Symbole machen Ärger ... Und um die geht's mir ja hauptsächlich ...
#3 : Beim Einklappen der seitlichen Leiste gibt es das gleiche Problem wie beim Aris Script; der Browserinhalt 'zuckt' etwas für einen Moment, auf der rechten Seite und besonders die Scrollbar , bevor er sich komplett in der Breite angepasst hat .
Wäre auch nett wenn man einen weichen Übergang haben könnte .
Und hier der Code; sehr grob noch und mit mehr Sturheit als Verstand zu Laufen gebracht :
Script für seitliche Toolbar :
/* new_toolbar.us.js */
(function() {
if (location != AppConstants.BROWSER_CHROME_URL)
return;
var tb = document.createXULElement('toolbar');
tb.id = 'new-toolbar-2';
tb.setAttribute('customizable', "true");
tb.setAttribute("class","toolbar-primary chromeclass-toolbar browser-toolbar customization-target");
tb.setAttribute('mode', 'icons');
tb.setAttribute("toolboxid","navigator-toolbox");
tb.setAttribute("orient","vertical");
tb.setAttribute("flex","1");
tb.setAttribute("context","toolbar-context-menu");
tb.setAttribute("toolbarname", "new-toolbar-2_label");
tb.setAttribute("label", "new-toolbar-2_label");
tb.setAttribute("defaultset","spring");
var parentE = document.getElementById('sidebar-box').parentNode;
var childE = document.getElementById('sidebar-box');
parentE.insertBefore( tb , childE );
CustomizableUI.registerArea('new-toolbar-2', {legacy: true});
CustomizableUI.registerToolbarNode(tb);
})();
Alles anzeigen
CSS, -moz-box-ordinal-group kann bestimmt auch in's Script, aber bis dahin braucht man das zur Positionierung .
#new-toolbar-2 {
background-color: orange !important;
color: red !important;
border: 2px solid red !important;
min-height: 180px !important;
width: 180px !important;
max-width: 180px !important;
-moz-box-ordinal-group: 1 !important;
}
/* Bookmarks vertical */
#PlacesToolbarItems {
display: flex;
flex-direction: column;
}
Alles anzeigen
Button zum Ein-/ Ausklappen :
// JavaScript Document
//Toggle new-toolbar-2
(function ptbut() {
if (location != 'chrome://browser/content/browser.xul' && location != 'chrome://browser/content/browser.xhtml')
return;
try {
CustomizableUI.createWidget({
id: 'NewToolbar-button',
type: 'custom',
defaultArea: CustomizableUI.AREA_NAVBAR,
onBuild: function(aDocument) {
var toolbaritem = aDocument.createXULElement('toolbarbutton');
var currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");
var buttonicon = "newtoolbar.png"
var props = {
id: 'NewToolbar-button',
class: 'toolbarbutton-1 chromeclass-toolbar-additional',
removable: true,
label: 'Toggle New Toolbar',
tooltiptext: 'Toggle New toolbar',
style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/icons/" + buttonicon) +'");',
};
for(var p in props)
toolbaritem.setAttribute(p, props[p]);
return toolbaritem;
}
});
CustomizableUI.registerToolbarNode(tb);
} catch(e) { };
document.getElementById('NewToolbar-button').addEventListener( "click", onClick );
document.addEventListener('keydown', (event) => {
var keyName = event.key;
// Mac : Funktion wird ausgeführt, wenn Cmd + < gedrückt wird
if (event.metaKey && keyName == '<') {
onClick(event);
}
}, false
);
function onClick(aEvent) {
var d2 = document.getElementById('new-toolbar-2');
if (d2.style.visibility == "") {
d2.style.visibility = "collapse";
} else if (d2.style.visibility == "visible") {
d2.style.visibility = "collapse";
} else if (d2.style.visibility == "collapse") {
d2.style.visibility = "visible";
}
}
})();
Alles anzeigen
Erwartet wird hier ein Icon in einem Ordner namens icons im chrome Ordner , genannt newtoolbar.png ( hängt an ) .
Ansonsten ist der Button da, aber nur bei hover erkennbar .
Kommentare, Hilfe und viel benötigte Verbesserungsvorschläge wie immer herzlich willkommen !
Ich nutze das Button_PersonalToolbar.uc.js, nur ist beim Start des Firefox
die Lesezeichen-Symbolleiste sichtbar.
Als Notlösung haben "wir", wie hier beschrieben
einfach eingefügt.
In dem Thread zum Toggle Button ist die Festlegung vom Startzustand eigentlich schn öfters definiert worden, in den Scripts die gepostet wurden.
BrokenHeart hat eine super Variante angeboten, die das Problem mit der mehrere Fenster übergreifenden Buttonfunktion löst .
Nur der Startzustand war dabei weggefallen , war aber ja auch nicht angefragt .
Beide unserer Notlösungen scheinen zu funktionieren, zumindest auf meiner Seite ; die Frage scheint mir eher ob man den Code eleganter einpflegen kann, als dass man eine komplett andere Lösung braucht .
Ich bekomme es einfach nicht gebacken!
Es gibt eine Funktion in JavaScript um Elemente auszublenden.
function hide_elements()
im zusammenspiel mit document.getElementById(elementName).style.display='none';
Aber ich bekomme es einfach nicht hin.
![]()
Jeztz bin ich etwas verwirrt - geht's dabei um die ursprüngliche Frage - das Anpassen des Browserfensters beim Schliessen einer seitlichen Leiste ?
Alles anzeigenDanke für den Tipp!
Habe mir meinen Beitrag #4 noch mal angesehen,
und mir fiel es wie Schuppen von den Augen.
Schaut jetzt bei mir so aus!
JavaScript// JavaScript Document //Button_PersonalToolbar.uc.js // Source file https://www.camp-firefox.de/forum/thema/134920-schaltfl%C3%A4che-um-lesezeichen-leiste-ein-auszublenden/?postID=1205823#post1205823 var off = document.getElementById('PersonalToolbar'); off.style.visibility = "collapse"; (function ptbut() {
Funktioniert.
Ob's richtig ist
¯\_(ツ)_/¯
Cool, funktioniert bei mir auch , Danke !
Jup, genau dieses!
Kann mir jemand etwas einfügen, damit die Leiste per default ausgeblendet ist?
Oder geht das nicht?
Genau das habe ich auch kürzlich ausprobiert ; hier ist was bei mir zu funktionieren scheint :
Im Script habe ich in den oberen Zeilen das hier verändert bzw. eingefügt ( Vorsicht, ich habe keine Ahnung vom Scripten ! ) :
// JavaScript Document
//Button_PersonalToolbar.uc.js
var d2 = document.getElementById('PersonalToolbar');
(function ptbut() {
if (location != 'chrome://browser/content/browser.xul' && location != 'chrome://browser/content/browser.xhtml')
return;
d2.style.visibility = "collapse";
try {
CustomizableUI.createWidget({ ........
Alles anzeigen
Also nur die beiden Zeilen ( hier: 5 und 13 ) eingefügt .
Aber wie gesagt, ich habe keine Ahnung davon, hab das nur von einer anderen Version des Scripts übernommen und mit etwas rumprobieren reinkopiert .
Ein Experte kann Dir sicher eine sauberere Lösung anbieten , wäre vielleicht auch was für den originalen Thread .
Ich bin mal auf Dein Endresultat gespannt.
Nutzen werde ich sie dann wahrscheinlich nicht, da 27' und ich z.Z. die Lesezeichenleiste per Script ausblende.
Aber wer weis, aus probieren würde ich Dein Ergebnis ja doch schon mal.
Welches Script benutzt Du denn dafür ?
Ich habe dieses hier im alltäglichen Gebrauch, für die normale horizontale Lesezeichenleiste .
Also ich habe dank freundlicher Helfer per CSS meine Sidebar so schön
umgestaltet, dass sie immer sichtbar sein soll und für mich nichts anderes darstellt als eine zweite (senkrechte) Lesezeichen-Symbol-Leiste. Dinge wie sidebar-header, sidebar-search-container und die Pfeil-Symbole links unsichtbar gemacht, schöne Trenn-Linien und eine bunte Animation als rechten Rand. Fast eine Sünde, solches vom Bildschirm verschwinden zu lassen
, zumal mein 16:10-Bildschirm so viel Horizontale hat gegenüber den vorigen mit 4:3 und 5:4.
Das ist übrigen der Code, welcher die Schönheit erzeugt:
Auch nicht schlecht, obwohl ich selber eher farbneutraler unterwegs bin .
Beim Projekt vertikale Lesezeichenleiste zum Einklappen gibt's auch was Neues ; erstmal hab ich die CSS tapfer und radikal reduziert .
Zusätzlich zum Script von Aris benutze ich nur noch das hier zur groben ersten Anpassung ; die Breite ist im Script eingetragen ( geht auch im CSS ) .
/* Bookmarks text left */
#PlacesToolbarItems > .bookmark-item > .toolbarbutton-text {
text-align: start !important;
padding-left: 6px !important;
}
/* Bookmarks vertical */
#PlacesToolbarItems {
display: flex;
flex-direction: column;
}
/* Bookmarks 1st popup position */
#PlacesToolbar menupopup:nth-child(1) {
margin-left: 150px !important;
margin-top: -31px !important;
}
Alles anzeigen
Zum stylen benutze ich die IDs #addonbar_v , #tooglebutton_addonbar_v, #PlacesToolbar und #personal-bookmarks ; #PersonalToolbar geht nicht, weil man ja die eigentliche Lesezeichenleiste nicht benutzt, sondern die neue #addonbar_v .
Eigentlich logisch, hat aber einen Moment gedauert bis ich drauf kam .
Zum Herumschieben im Symbolleiste anpassen Fenster hilft mir das hier :
Und nach ein paar zusätzlichen Schönheitsreparaturen sieht das Ganze momentan so aus - nicht ausführlich getestet, und wie schon erwähnt ist die Animation der Breitenanpassung beim Ein/Ausklappen etwas grob , aber immerhin .
Alles anzeigenAlso etwas hätte ich da noch.
Ist noch nicht die ganze Lösung, aber ein Anfang.
Dieses Script fügt eine Vertikale Symbolleiste ein, die mit Schaltfläche einund ausgeblendet werden kann. Inhalt, also Schaltflächen usw.
müssen über den Symbolleiste anpassen Dialog eingefügt werden.
Ich habe versucht den Inhalt der Lesezeichenleiste auch rein zu schieben,das geht, wird aber nicht untereinander dargestellt. Da müsste man dann
.....
mit CSS arbeiten.
Hier das Script ist glaube ich auch von Aborix:Hoffe das hilft weiter.
Mfg.
Endor
Das ist wirklich pfiffig; veilleicht nicht was ich persönlich für diesen speziellen Zweck benutzen würde, aber eine Bereicherung für die Scriptsammlung , vielen Dank !
Mit dem (groben) CSS von meinem Beitrag davor sitzen die Lesezeichen auch untereinander; die popup Fenster muss man halt dann nach Belieben anpassen .
Aber noch eine spezifische Frage an die Runde :
Ich arbeite weiter an bzw. mit dem Script von Aris , funktioniert soweit prima , nur eines ist etwas unschön : die Übergänge zwischen Leiste auf und Leiste zu sind sehr ruckhaft .
Beim Ein- und Ausblenden der Seitenleiste,während sich das Browserfenster in der Breite anpasst, gibt es keine Animation bzw. transition Phase, und zudem blitzt auf der rechten Seite kurz die Scrollbar auf , nach innen versetzt, bis sich das Fenster komplett justiert hat .
Die reguläre Sidebar zum Beispiel macht das geschmeidiger, wie ja auch zu erwarten ist .
Hättet Ihr evtl. Ideen dazu um das abzumildern ?
Hier nochmal der Link zum Originalscript .
Falls es was bringt ; in den Browserwerkzeugen lässt sich diese CSS für die Aris Toolbar auslesen ( Breite im Script schon auf 130px geändert ) :
#addonbar_v {
-moz-appearance: none !important;
background-color: var(--toolbar-bgcolor);
background-image: var(--toolbar-bgimage);
background-clip: padding-box;
color: var(--toolbar-color, inherit);
}
#main-window:-moz-lwtheme #addonbar_v {
background: var(--lwt-accent-color) !important;
}
#main-window[lwtheme-image="true"]:-moz-lwtheme #addonbar_v {
background: var(--lwt-header-image) !important;
background-position: 0vw 50vh !important;
}
#main-window:not([customizing]) #toolbox_abv:not([collapsed="true"]),
#main-window:not([customizing]) #addonbar_v:not([collapsed="true"]) {
min-width: 130px;
width: 130px;
max-width: 130px;
}
#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:-moz-lwtheme {
background: var(--lwt-header-image) !important;
background-position: 100vw 50vh !important;
}
#addonbar_v toolbarbutton,
#addonbar_v toolbar .toolbarbutton-1 {
padding: 0 !important;
}
#addonbar_v {
-moz-border-end: 1px solid var(--sidebar-border-color,rgba(0,0,0,0.1)) !important;
}
Alles anzeigen
Alles anzeigenIm Script von Aris habe ich außerdem die Zeile 38 geändert zu:
wird aber nicht untereinander dargestellt.
Hallo Endor.
Das Problem habe ich auch mit dem Script von Aris
var addonbar_v_width = "180px"; // toolbar width
Nach Installation vom Script, und öffnen vom Anpassenfenster, wird die neue Toolbar waagerecht angezeigt.
Dann muss man den Button aus der Lesezeichensymbolleiste in die neue Leiste verschieben.
Das ist noch in Arbeit, gut die Hälfte davon ist entweder unnötig oder muss weiter angepasst werden, aber für's erste bekomme ich die Lesezeicheneinträge damit untereinander dargestellt :
#PlacesToolbarItems > .bookmark-item > .toolbarbutton-text {
text-align: start !important;
}
@-moz-document url("chrome://browser/content/browser.xhtml") {
:root:not([inDOMFullscreen]) {
--uc-vertical-toolbar-width: 130px;
}
#PersonalToolbar {
height: 100vh !important;
max-height: 100vh !important;
position: fixed;
display: flex;
flex-direction: column;
left: 0;
width: var(--uc-vertical-toolbar-width);
min-width: var(--uc-vertical-toolbar-width);
z-index: 2 !important;
}
#personal-bookmarks,
#PlacesToolbar,
#PlacesToolbar > hbox {
-moz-box-orient: vertical !important;
}
#PlacesToolbarItems {
display: flex;
flex-direction: column;
/*flex-wrap: wrap;*/
overflow-x: visible;
overflow-y: auto;
}
#PersonalToolbar .toolbarbutton-1 {
padding-block: 10px !important;
}
#PersonalToolbar #PlacesToolbarItems > .bookmark-item {
padding-block: 4px !important;
}
#PlacesToolbarItems {
-moz-window-dragging: no-drag;
}
#PlacesToolbar #PlacesChevron {
display: none;
}
}
Alles anzeigen
Im Prinzip ist das der vertikale Lesezeichen Code vom Otherguy mit minimaler Änderung, was sehr ähnlich ist mit dem CSS für die mehrzeilige Lesezeichenleiste aus dem Forum hier .
Im Aris Skript ist die Breite auf 130px gesetzt, wie Andreas es beschrieben hat , die gleiche Breite habe ich dann erstmal einfach in die CSS gesetzt .
Ebenfalls wie von Andreas beschrieben ist das Vorgehen zum Verschieben der Lesezeichen in die neue Leiste .
Das geht alles noch viel eleganter, und die Abstände der Zeilen in der Lesezeichenleiste werden mit diesem CSS ignoriert, da muss ich wohl noch mit spezifischeren Selektoren rangehen , aber es ist ein Anfang .
Ids aus dem Aris Script zum Spielen, und die Hintergrundfarbe hilft zur Übersicht beim Testen :
#tooglebutton_addonbar_v {
list-style-image: url("bookmark-cap-32.png") !important;
}
#addonbar_v {
background-color: orange !important;
}
Kleiner Button im Anhang .
Und natürlich nicht zu vergessen : Dankeschön für Eure Hilfe !
Will Horstmann einfach nur eine zusätzliche, frei konfigurierbare Seitenleiste,
die den Fensterinhalt staucht,
oder bei Einblendung überlagert?Fragen über Fragen.
Genau das; eingeblendet reduziert die (zusätzliche) Seitenleiste das Browserfenster, ausgeblendet wächst das Browserfenster wieder zu voller Breite ; ansonsten wäre diese Seitenleiste idealerweise wie eine zusätliche toolbar, nur eben vertikal .
Also in diesem einen Verhalten genau wie die Sidebar - aber eben keine Sidebar, weil die mir generell im Aufbau und der Funktionsweise nicht gefällt .
Möglich dass die Sidebarskripts von oben eine entsprechende Modifikation erlauben, aber ich hatte die bisher nicht sauber zum laufen gebracht, wie gesagt .
Aber lange Rede kurzer Sinn - mit zarten Modifikationen am Skript von Aris und am vertikalen Bookmarks CSS von Mr. Otherguy bin ich nah dran ; es scheint soweit schon prima zu klappen, ich muss nur noch den ganzen Stylingkrams aus dem Skript überschreiben oder editieren .
Wenn doch bloss die Skripte Schreiber das ganze Stylegedöns in eine separate CSS Datei packen würden, wir Anfänger hätten's so viel einfacher ...
Sobald ich was Spruchreifes habe poste ich den Code - und vielen Dank nochmals für Eure Mühe !
Nimm doch bitte noch einmal das originale expandsidebar.uc.js Script,
ohne irgendwelche Veränderungen.
Teste es bitte in einem jungfräulichen Profil, natürlich vorbereitet, damit es auch CSS und Javescript verarbeiten kann.
Und berichte, bitte.
Habe ich widerholt versucht, Script hatte ich mehrmals neu kopiert, nie verändert, und in verschiedenen Profilen ; das Ergebnis ist immer das Gleiche wie im obigen Beitrag beschrieben .
Alles anzeigenHallo zusammen.
expandsidebar.uc.js funktioniert hier gut.
Wenn Ihr lust habe es gäbe da noch eine Alternative vom selben Autor
und etwas aktueller:SidebarModoki.uc.js
Dieser CSS Code muss dazu verwendet werden, bzw. über userchrome.css geladen werden:
SidebarModoki.uc.js.css
Verwende ich hier nicht.
Vielleicht passt das ja auch.
Mfg.
Endor
Kann gut sein dass ich etwas falsch mache hier , aber dieses Script erzeugt bei mir nur eine Sidebar mit ein paar kleinen Modifikationen, und einigen Bugs .
Der Inhalt lässt sich nicht verändern über Symbolleiste anpassen, weil die Leiste da nicht auftaucht, also gibt's auch keine austauschbaren Basis-Inhalte .
Es ist einfach eine stinknormale Sidebar mit extra Knöpfen, etwas misslungenem Styling und eben ein paar Bugs ....
Wie die Standard Sidebar ist sie vertikal, hat Sidebar Lesezeichen drin, und passt hier auch den Browserinhalt beim Schliessen/Öffnen in der Breite an .
Aber es ist eine klassische Sidebar, und eine klassische Sidebar ist ja eben nicht das Ziel , sondern eine vertikale Lesezeichen-Symbolleiste .
Dankeschön für eure Mühe, ich werde mich mal reinknien .
Alles anzeigenQuatsch
Kümmere Dich nicht um den ganzen Javascript-Code, der macht, was er soll.
einfügst.
Ich hoffe, dass ich Dir helfen konnte.
Ach!
Bearbeitbar per drag&drop, wie wir es von der Lesezeichen-Symbolleiste gewohnt sind.
Hehehe, das Script macht den Hintergund der normalen Firefox Sidebar transparent, und verhindert dass sich der Browserinhalt in der Breite anpasst, bei geöffneter normaler Sidebar .
Noch dazu geht die Sidebar nach kurzer Zeit automatisch zu, auch nicht optimal .
Im Symbolleiste anpassen Fenster - oder überhaupt irgendwo - taucht die zusätzliche Sidebar nicht auf , also drag&drop geht nicht ; das Skript zerschiesst einfach nur die reguläre Firefox Sidebar .
Das Ganze ausprobiert im Testprofil ohne andere Scripts, und mit CSS Dateien deaktiviert (userChrome.css umbenannt) ; meine anderen Scripts, wenn benutzt, funktionieren .
Ich benutze generell zur Verwendung von Scripten die Dateien von Endor, die hier verlinkt werden, seit Mitte diesen Jahres .
Irgendwo hakt es da wohl; bei Dir scheint das Script ja zu klappen, bei mir macht es 10 Schritte in die genau falsche Richtung .
Meine FF Version ist die aktuelle 106, auf macOS .
Hier noch ein Screenshot :
Es gibt was Neues!
Beängstigend .
Es ist nicht davon auszugehen, dass diese Option lange existieren wird.
Hauptsache die Funktion bzw. der Button lässt sich generell aus der Toolbar entfernen , oder im Notfall mit CSS rauswerfen .
Selber hab ich auch nur den Button rausgezogen .
Vielen Dank, Mira, besser erklärt und zusammengefasst als ich es geschafft habe !
Und um alles an einer Stelle zu haben, hier auch noch ein Skript von Aris , Original hier .
Damit erhält man eine zusätzliche vertikale Toolbar, die aber nur schwer zu bändigen ist - für mich jedenfalls .
Meine Vermutung ist dass um Zeile 180 herum die Anpassung der Browser-Fensterbreite geregelt wird .
Wie Mira aber schon dargestellt hat, ideal wäre wenn man "einfach nur" (...) im vorhandenen Button_PersonalToolbar
Skript diese Anpassung mit einpflegen könnte .
In der Höhe funktioniert es ja auch, wenn die Leseteichenleiste wie üblich horizontal ist .
// '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)
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 = "Vertical Add-on Bar"; // toolbar name
var button_label = "Toggle vertical Add-on Bar"; // Toggle button name
var addonbar_v_togglebutton = true; // display toggle button for vertical toolbar (true) or not (false)
var addonbar_v_on_the_left = true; // display vertical toolbar on the left (true) or the right (false)
var insert_before_borders = false; // may not always offer a visible change
var style_addonbar_v = true; // apply default toolbar appearance/colors to vertical add-on bar
var addonbar_v_width = "30px"; // 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 || appversion >= 86) 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 { \
-moz-appearance: none !important; \
background-color: var(--toolbar-bgcolor); \
background-image: var(--toolbar-bgimage); \
background-clip: padding-box; \
color: var(--toolbar-color, inherit); \
} \
#main-window:-moz-lwtheme #addonbar_v { \
background: var(--lwt-accent-color) !important; \
} \
#main-window[lwtheme-image="true"]:-moz-lwtheme #addonbar_v { \
background: var(--lwt-header-image) !important; \
background-position: 0vw 50vh !important; \
} \
#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:-moz-lwtheme { \
background: var(--lwt-header-image) !important; \
background-position: 100vw 50vh !important; \
} \
#addonbar_v toolbarbutton, \
#addonbar_v toolbar .toolbarbutton-1 { \
padding: 0 !important; \
} \
'+end_border+' \
';
}
if(addonbar_v_togglebutton) {
tooglebutton_addonbar_v_style ='\
#tooglebutton_addonbar_v .toolbarbutton-icon { \
list-style-image: url("chrome://browser/skin/sidebars.svg"); \
fill: green; \
}\
/*#tooglebutton_addonbar_v .toolbarbutton-icon { \
list-style-image: url("chrome://browser/skin/forward.svg"); \
fill: red; \
} \
#tooglebutton_addonbar_v[checked] .toolbarbutton-icon { \
fill: green; \
} \
#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);
/* Use the below code instead of the one above this line, if issues occur */
/*
setTimeout(function(){
AddonbarVertical.init();
},2000);
*/
Alles anzeigen
Was ich auch gerade festgestellt habe, die 'PersonalToolbar' überlagert bei mir zum Teil die Tableiste.
Das hat den unschönen Effekt, dass der erste Tab nicht "angefasst" werden kann!
Auch öffnet sich bei Rechtsklick folglich das falsche Kontextmenü.
Wissen macht "AHHHH"!
Ich habe die Tableiste per CSS nach unten versetzt, deshalb gibt es die Überlagerung
Den Spass hatte ich auch schon .
Es sollte klappen die Leiste nach unten zu schieben um die Höhe der Tabs Leiste :
Oder die Reihenfolge der Leisten festzulegen , zB auf die Art , abhängig von Deiner Konfiguration :
#nav-bar {
-moz-box-ordinal-group: 0 !important;
}
#titlebar {
-moz-box-ordinal-group: 1 !important;
}
#PersonalToolbar {
-moz-box-ordinal-group: 2 !important;
}
Alles anzeigen
Ich teste das Ganze momentan mit einem Einzeiler Profil, hatte die Überschneidungen aber auch am Anfang mit der Tableiste unten .
Wenn Du in about.config browser.tabs.firefox-view auf false setzt, sollte der Eintrag weg sein .