Die Logik in diesem Satz verstehe ich nicht. Keine Veränderung von
" mir " habe ich wohl vergessen.
Das heißt ohne Scripts und css Dateien
Gruß
EDV-Oldi
Die Logik in diesem Satz verstehe ich nicht. Keine Veränderung von
" mir " habe ich wohl vergessen.
Das heißt ohne Scripts und css Dateien
Gruß
EDV-Oldi
Das heißt ohne Scripts und css Dateien
OK.
Und das hat nichts mit der Datei xulstore.json zu tun?
Wenn ich nicht irre, werden in dieser Datei doch u. a. auch die Positionen der Buttons gespeichert, so wie der Benutzer sie gewählt hat.
Ich habe versucht, die Datei RestartThunderbird.uc.js zu erstellen, aber offenbar funktioniert sie bei mir nicht. Ich kann den Button in keiner Symbolleiste finden.
Ich habe versucht, die Datei RestartThunderbird.uc.js zu erstellen, aber offenbar funktioniert sie bei mir nicht. Ich kann den Button in keiner Symbolleiste finden.
Hast du auch deinen TB für das Ausführen von Scripten vorbereitet ?
Hast du auch deinen TB für das Ausführen von Scripten vorbereitet ?
Eureka, danke das war's !!
Ich hatte kein Upgrade von TB 60.9.0 auf TB 68.2.1 gemacht, sondern die neue Version heruntergeladen, neben der alten installiert und ein neues Profil angelegt. Danach hatte ich völlig vergessen, den Ordner userChromeJS und die Dateien config.js und config-prefs.js in (inzwischen) Thunderbird 68.2.2 einzubauen.
Jetzt erscheint auch der Restart-Button und ich muss nur noch heraus finden, wo sich der Cache von userChrome.js befindet
Und es stimmt, dass dieser Button beim normalen Neustart die vom Nutzer gewählte Position nicht beibehält.
Und es stimmt, dass dieser Button beim normalen Neustart die vom Nutzer gewählte Position nicht beibehält.
Das wird aber ein Bug in der Version 68.X sein.
Ich passe gerade die Version 72.0a1 an, hier funktioniert alles.
Gruß
EDV-Oldi
Ich passe gerade die Version 72.0a1 an, hier funktioniert alles.
Bei mir klappt es bisher nicht in Thunderbird Daily.
Jetzt gehe ich erst mal raus, hier scheint die Sonne ☀️
ich meine damit den Start von Thunderbird.
In dieser Version wird beim ersten Start sofort alles so angezeigt wie ich es eingerichtet habe.
Gruß
EDV-Oldi
Bei mir klappt es bisher nicht in Thunderbird Daily.
Das war missverständlich ausgedrückt.
Ich wollte damit sagen, dass der Neustart-Button bei mir in Thunderbird Daily überhaupt nicht angezeigt wird.
Das Löschen des Cache ist nur notwendig, wenn man an den Scripten etwas ändert.
Ohne Löschen des Cache wird der alte Code weiter ausgeführt.
CSS-Code ist davon eigentlich nicht betroffen, die Änderungen werden immer gleich angewendet.
Die hier im Forum immer wieder eerwähnten merkwürdigen Effekte (z.B. mit der Buttonposition oder mit MSF) bei verschiedenen Arten des Neu- oder Wiederstarts sind auf Timingprobleme beim Start bestimmter TB-Versionen zurückzuführen.
Danke Thomas S. : Vielleicht noch ergänzende Hinweise. Ich habe umfassende Änderungen am TB vorgenommen, wenn ich dort etwas ändere, muss der Chrome-Cache geleert werden, (wie auch im Firefox), damit die Änderungen wirksam und sichtbar werden. Dies ermöglicht das besprochene Script..
Hier mal ein Komplett-Bild..
BTW: Der Restart-Button bleibt dort, wo ich ihn haben will, andere Buttons machen dies leider nicht...
siehe
Allow HTML Temp 5.7.3 ; Button fest hinter dem "Hamburger" anzeigen
Hallo Boersenfeger,
Der Restart-Button bleibt dort, wo ich ihn haben will, andere Buttons machen dies leider nicht..
warte ab bis die offizielle Version von 68 über das automatische Update kommt, ich vermute das dass noch ein Bug in der Version 68.x ist.
Gruß
EDV-Oldi
Wie heißt diese Version dann?
68.2.2 ist installiert... neuere Candidates sehe ich noch nicht..
Wie heißt diese Version dann?
Weiß ich wie lange die noch brauchen
Warten ist angesagt.
Gruß
EDV-Oldi
OK, gut zu wissen, das daran gearbeitet wird.
wenn ich dort etwas ändere, muss der Chrome-Cache geleert werden
"Dort" ist wo? Script? userChrome.css oder userContent.css?
Und wo befindet sich der Chrome-Cache (oder vielmehr der userChrome.js Cache), von dem hier ständig völlig abstrakt die Rede ist ?
Wenn ich im Entwickler-Werkzeugkasten etwas ändere, leere ich keinen Chrome-Cache danach, ich wüsste auch nicht wie.
damit die Änderungen wirksam und sichtbar werden. Dies ermöglicht das besprochene Script..
Welches "besprochene Script" ist das?
Der Restart-Button bleibt dort, wo ich ihn haben will, andere Buttons machen dies leider nicht...
Merkwürdig. Bei mir wird der Restart-Button in der Tableiste installiert Ich kann ihn zwar von dort in die Hauptsymbolleiste verschieben, aber er kehrt nach jedem Start wieder in Die Tableiste zurück. Es auch keinen Unterschied, ob ich einen Links-, Rechts- oder Mittelklick darauf mache, das Ergebnis ist immer das selbe. Wie kann man ihn z. B. in der Hauptsymbolleiste fixieren?
Ich benutze ebenfalls den Firefox-Restart-Button, der dort bleibt wo ich in hin schiebe.
Nicht alles in einen Topf werfen, bitte.
Im Werkzeugkasten werden Stile verändert. Das funktioniert auch über CSS und ein Cache ist nicht zu leeren.
User-Scripte, die in TB 68.x laufen, werden nach meinen Beobachtungen anders geldaden als in FF.
Ebenso werden die User-Buttons aus diesen Scripten anders erzeugt und eingebunden als in FF.
Ist gar nicht miteinander zu vergleichen.
Ich kann nur bestätigen, das dieses Script zum Restarten funktioniert, und zwar mit normalem Click nur als Restart, mit Mausrad-(Mittel-)-click mit Leeren des JS-Cache. Das Script ist hier im Forum in verschiedenen Varianten mit marginalen Änderungen veröffentlicht worden:
//RestartThunderbird.uc.js
"use strict";
(function() {
if (location != 'chrome://messenger/content/messenger.xul') return;
// Toolbar
var newtoolbarbutton = document.createElement('toolbarbutton');
var currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");
var buttonicon = "restart.png"
var props = {
id: 'restartThunderbird-button',
label: 'Neustart',
tooltiptext: 'Neustart (Mittelklick leert userChrome.js-Cache)',
style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/icons/" + buttonicon) + '");',
class: 'toolbarbutton-1',
onclick:
'if (event.button == 1) { \
event.preventDefault(); \
Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULRuntime).invalidateCachesOnRestart(); \
}; \
if (event.button == 0 || event.button == 1) { \
BrowserUtils.restartApplication(); \
};'
};
for (var p in props) newtoolbarbutton.setAttribute(p, props[p]);
var toolbox = document.getElementById("mail-toolbox");
toolbox.palette.appendChild(newtoolbarbutton);
var toolbar = document.getElementById("mail-bar3");
toolbar.insertItem("restartThunderbird-button", toolbar.lastChild);
// Menü-Datei (FilePopup)
var newmenuitem = document.createElement('menuitem');
var props = {
id: 'restartThunderbird-popupButton',
label: 'Neustart',
tooltiptext: 'Neustart (Mittelklick leert userChrome.js-Cache)',
style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/icons/" + buttonicon) + '");',
class: 'menuitem-iconic',
onclick:
'if (event.button == 1) { \
event.preventDefault(); \
Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULRuntime).invalidateCachesOnRestart(); \
}; \
if (event.button == 0 || event.button == 1) { \
BrowserUtils.restartApplication(); \
};'
};
for (var p in props) newmenuitem.setAttribute(p, props[p]);
var popup = document.getElementById('menu_FilePopup')
popup.insertBefore(newmenuitem, document.getElementById('menu_FileQuitItem'));
})();
Alles anzeigen
Darin enthalten ist der Befehl Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULRuntime).invalidateCachesOnRestart();, was den JS-Cache verwirft.
Folgendes Verhalten beobachte ich:
1. normales Beenden (Schließen) von TB und späteres neu Starten, ggf. auch nach Reboot des PC: alles Normal wie eingerichtet, Buttonpositionen wie gewünscht.
2. Restart, egal ob über Script oben oder über bereits vorhandene Befehle in TB (z.B. nach Update) verursacht bereits einen Verlust der User-Buttonpositionen (die per User-Script erzeugten). Alle User-Buttons stehen in der Toolbar-/Buttonleiste am Ende rechts. Wahrscheinlich wird beim Anlegen der Buttons die Funktion LastChild ausgeführt, ohne die bereits einmal neu gesetzte Position zu verwenden. Außerdem werden Scriptänderungen ignoriert.
3. Restart mit Mittelclick lädt geänderte Scripte neu und damit auch die Veränderungen in diesen. Ansonsten wie unter 2.
Wenn nach 2. oder 3. einmal 1. angewendet wird, sind die Buttons wieder da wo ich sie hingeschoben habe. Das Ganze ist zZ noch recht "wackelig".
Möglicherweise sind in meinen Scripten auch noch Fehler enthalten, werden die Buttons nicht richtig angelegt.
Ich bin kein Experte. Aber die JS-Konsole zeigt keine Fehler an - außer:
Hin und wieder wird beim Start von TB in dem einem oder anderen Script ein einzelnes angesprochenes Elemente als "nicht vorhanden" zurückgegeben (Rückgabewert ist "Null"), was eigentlich nur sein kann, wenn das Element (noch) nicht existieret. Seltsamerweise funktionieren auch diese Scripte inkl. dem Aufbau der Button trotzdem einwandfrei.
So etwas ist unter FF nicht zu bemerken.
ich kann auch nicht alles erklären, nur meine Beobachtungen wiedergeben.
Nicht alles in einen Topf werfen, bitte.
Im Werkzeugkasten werden Stile verändert.
Das weiß ich auch, dass im Werkzeugkasten keine Scripte erstellt werden. Dir sollte vielleicht aufgefallen sein, dass ich häufig nachfrage, wenn so allgemeine Aussagen gemacht werden wie z. B. "umfassende Änderungen am TB vorgenommen".
Auch die Aussage, dass es wichtig ist, den Chrome-Cache zu leeren, "wenn Firefox/ TB mit css Dateien verschönert", stammt nicht von mir.
mit Mausrad-(Mittel-)-click mit Leeren des JS-Cache.
Wie oder wo kann man das überprüfen? Die Frage habe ich schon mehrfach gestellt.
Alle User-Buttons stehen in der Toolbar-/Buttonleiste am Ende rechts.
Bei mir stehen sie automatisch in der Tableiste am rechten Ende zwischen den beiden Buttons von Lightning und kehren auch immer wieder dahin zurück, unabhängig davon wie ich neu-starte.
EDIT:
ich habe inzwischen mein bisher getestetes RestartThunderbird.uc.js Script durch ein neues Script ersetzt, das ich nach deiner obigen Vorlage erstellt habe. Mit dem neuen Script wird der Button nunmehr tatsächlich am rechten Ende der Hauptsymbolleiste (und nicht mehr in der Tableiste) angezeigt, von wo ich ihn in eine Position links von der Suchleiste verlegen konnte. Und nachdem ich meine Magic Mouse provisorisch durch eine Mighty Mouse mit Scrollkugel ersetzt hatte, konnte ich auch den Mittelklick testen!
Wie oder wo kann man das überprüfen? Die Frage habe ich schon mehrfach gestellt.
Ohne Kenntnis der Tiefen von TB (FF) nur indirekt über die oben geschilderten unterschiedlichen Beobachtungen. Ich habe noch nicht einmal heraus gefunden, wo die Positionen der Buttons gespeichert werden (habe schnell aufgegeben, danach zu suchen).
Und genau das ist ja das Problem. Trotz tagelanger Recherche im www habe ich keine Referenz zu diversen Funktionsaufrufen gefunden, die meiner Meinung nach den Begriff Referenz verdient.
Früher war alles besser
Ich kenne noch dicke Printmedien (die nannte man Bücher), in denen das Windows API haarklein beschrieben war - mit allen Funktionen, Parametern und den Besonderheiten der Deklarationen.
Heute wird lieber am Code geschraubt und experimentiert, habe ich den Eindruck. Dokumentation kostet halt Zeit - und die wird gerne eingespart.
Ich habe noch nicht einmal heraus gefunden, wo die Positionen der Buttons gespeichert werden (habe schnell aufgegeben, danach zu suchen).
Das könnte in dieser Zeile des Scripts festgelegt sein:
toolbar.insertItem("restartThunderbird-button", toolbar.lastChild);
Ich habe jetzt einfach mal einen Test mit firstChild gemacht .
Jetzt wird der Button ganz links eingefügt :
Vielleicht kann man noch einen Ausdruck für eine neutrale Position finden?
Das mit First... und auch mit einer Positionierung an einem anderen Button hatte ich bereits vor Wochen hier gepostet...
Zur Klarstellung: es geht um die Position nach händischer Verschiebung.
Die, die nach Restart auch mal weg ist.