Weiter Infos zum Entwickler-Werkzeugkasten.
https://developer.mozilla.org/de/docs/Tools/Browser_Werkzeuge
Gruß
EDV-Oldi
Weiter Infos zum Entwickler-Werkzeugkasten.
https://developer.mozilla.org/de/docs/Tools/Browser_Werkzeuge
Gruß
EDV-Oldi
Nachtrag:
der Aufgaben-Button heißt:
task-tab-button
Gruß
EDV-Oldi
ersetzt durch "kalender-button". Wird aber nicht angezeigt. Weder vor noch nach dem Kalenderbutton.
so einfach ist das nicht der Button heißt:
calendar-tab-button
Gruß
EDV-Oldi
Nein, siehe auch obigen Beitrag # 25 - da habe ich die Titelleiste erwähnt
Wie wurde die Titelleiste erzeugt, mit einer Erweiterung?
Ich habe so etwas nicht.
Funktioniert die noch?
Gruß
EDV-Oldi
Noch ne Nachfrage. Mit welchen Button ersetzen. Was meinst du genau?
Bei diesen Scripts, muss Du angeben hinter oder vor welchen Button Du diesen Button einbinden willst.
Zum Beispiel hinter den Kalenderbutton.
Bei mir liegt der Button ganz rechts hinter dem Config Button.
Gruß
EDV-Oldi
Das funktioniert so leider nicht im Thunderbird, so ähnliche Scripts habe ich auch versucht zu ändern, leider ohne Erfolg.
Gruß
EDV-Oldi
Am besten man erstellt einen neuen Kalender.
Die Geburtstage müssen so " YYYY-MM-DD" eingegeben werden.
Dann in den Einstelllungen von Cardbook auf den Reiter Geburtstage klicken.
Das oder die Adressbücher auswählen aus dem die Geburtstage gesuchte werden sollen.
Dann einen Kalender, am besten einen eigenen Geburtstags-Kalender auswählen, dann auf ok klicken.
Jetzt den Reiter "Geburtstags-Erinnerungen" anklicken.
Ich habe diese Einstellungen.
Viel Spaß beim testen
Gruß
EDV-Oldi
Gibt es eine andere Lösung?
Ich bin auf Cardbook umgestiegen, mit dieser Erweiterung werden auch die Geburtstage in einem Kalender geschrieben.
Das Adressbuch finde ich viel besser als das Standard Adressbuch von Thunderbird.
Gruß
EDV-Oldi
Das ist aber nicht in der Menüzeile oder?
Der Link funktioniert nicht.
Du kannst auch direkt hier Dateianhänge hochladen.
Den Restartbutton habe ich auch, der funktioniert im Thunderbird aber nur in einer xul Version.
<?xml version="1.0"?>
<?xml-stylesheet href="data:text/css,
@namespace%20url('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul');
@namespace%20html%20url('http://www.w3.org/1999/xhtml');
%23restartfirefox-button {
list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC60lEQVQ4jXWSWUyTURCFDxQFqpQ1hkokQiiE6AuGuqEkxgWDiMpiEBEBAzTugEBA3BHQCBgVFBEBUXFFKIsasdi0QGtrcSMSsVWkQUOMr74Yjw/93VDPy9ybme/MzM0F/i0fzE8q9M88djVgW/kt++i8SsB12X9q/5DILSa7JaFZz9KBcRbprMzRvucurZXRnWZKd575CLiF/A8Wz95z7lPFs3Ee1I2yQPueWep3VKjeMuWBhQn3zIztMnPWWQ3hK18tMKE/6RmpxYMnn4/zkADnaEa4XTvG1J5RJnW/49rON1ypHObSttcMrlbRI+OwTqwoOy8M7pWYrrLyiN4G79BY6b/79AhC12dBFpHqvGF/i7zRyLCWIc6sG6Ck+jFFNUYi9eC5XwvMXKwI2Vf/ZcujMU6Nze3+a0FP/xgUPSCOa4lTfUTtY9pnHK4FgsOT4bco+Weha1A8AMkE3Bebyy04obPBNf10uGSgeEdxHbAkrXDvk8+UF1/5ar9CUfoP2Ca/0DiklT3FqR46NBrofs1Ij6ySBiA8Jb9A94Hbet4yQ22lvOohPbeUKSH2mjPBwk6IwU6ZRVelZ9voU1TeBIQl52b1jjGt28LE+2ZGdZgpic9VAnCcYOBkt2lPKyZNmifcJzvKgpcDCzfmKDRWJt4zM7brDSO7LBTF71P91X1rqUlyfYDTb+jpk19qgkQis6XmbdidrB7jmi4LI9uHGXZ7iDjQS2yv/4aU4lakl7TbHWmmS/MTSm8aGNRh5Fz1S3otj1LYDOZE57nEZde6p594uaLTwhk1JqJEQ1T0EtX9RJ2eUy7r6X3TwMB2I+U9LxiYf8j4+3guQpR4KCpGp1QNEOW9xJk+4oKO4iY9vW8YKFMaGaoeZGDh0VcAnAE4/HhYEQAxAC8AUiyIqUHuRaLBRHGzid53nlJ29xkDKhu+eUZEnQQwTagVCyawEw7Owh/wAOAJ0eR1juGrcpyXRGYDWA3AXchJfp/gOw9GYE6MbzLWAAAAAElFTkSuQmCC);
}
" type="text/css"?>
<!DOCTYPE overlay [
]>
<overlay id="restartOverlay"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript"><![CDATA[
var ToolRstartMod = {
//SAVE_SESSION_RESTART_VERSION: "0.0.2",
init: function() {
if (document.getElementById("Restart_Firefox_withDelDevCache")) return;
var optionsitem, menuitem, menupopup;
var UI = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"].
createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
UI.charset = "UTF-8";
var gPref = Components.classes["@mozilla.org/preferences-service;1"].
getService(Components.interfaces.nsIPrefBranch);
try{
if (!gPref.getBoolPref("browser.sessionstore.enabled")&&gPref.getBoolPref("extensions.tabmix.sessions.manager")){
var button = document.getElementById("btn_sessionmanager");
var label = "Neustart";
//try {label =UI.ConvertToUnicode(label)} catch(e){}
if (button){
//button.setAttribute("disabled",false); //Fix With Rewindfowerd.xpi
menuitem = document.createElement("menuitem");
menuitem.setAttribute("id", "Restart_Firefox0__withDelDevCache");
menuitem.setAttribute("class", "menuitem-iconic");
menuitem.setAttribute("label", label);
menuitem.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6%2BR8AAAABGdBTUEAALGPC%2FxhBQAAAkVJREFUeJxVks1Lk3EAxz%2B%2FZ79ne575tk2ntjlsCnaY1aGC7hYWVPRyiA7RX1CEEdRp8xAFRnQI6tClSx0sCBEi8FDRC4ZpSaIpvsSWm07ndC8%2B255nT4cw6nv6Hj6f20fwz26%2FS3eXy5WB6JIRomSCEFwL13G8Uxs80uXp3%2BHEzrn8ajm2lrOjXodNq0eljMC0bMySxdt0hX1u5eGtk4GnrTWO92LJtrUHr1dujK2Uo6c6NHRd4hA2DiBv2hiWTblcZSJpcrTVkT1%2FoPGMHBlNhzdzVvREWEPTHHR5VPbu0tFVhfV8hYnUNlIIGnWTgW85T3PN2iOZL1bvGaaFpmm0uCX7m1QwDBSh0u51EmhQsW14NpnlsN%2FFuY%2BZihycy4Z7QnVkKzaudJ7HMym%2Bb5o0WyZXettoD%2FkAWEgZrFZs%2FIaFzG0VzaThxue26d1dS%2BfBJsyq4PnXddJlBT1jYCsKqRKMFIBiCWnlCnIlV8%2B2W0d1VHErZTbyJXQqXP1Swl%2FN0O2RTKo6%2FnpIFw0pTwe0xZeJ7B5PXQ3xdAGRqeDz6fR0KBwKCkBh7JfFjNQhvgWbhUWZTBb6WnIcK2byPFktkljY5GLEQdDvRFEUfmbhkzeE2iDZmE6SHl3uE%2FdfzLmG3szfnMUVTQSbweWEqkmbLgh7XASCXpBOpj8vMvlhNoa%2FeudvEZFLQzHTqUd%2FtPqgpQF%2FUy2RWgm5bZLTKQrj8Vhi%2BGz%2Ffxn9EYcjdW777vy22oYqAIHLKMUT4%2FnrTF2Y2uF%2BA5XB81eiCxQGAAAAAElFTkSuQmCC");
menuitem.setAttribute("onclick", "ToolRstartMod.SaveRestart(event,0);");
optionsitem = document.getElementById("btn-sm-settings");
optionsitem.parentNode.insertBefore(menuitem, optionsitem);
}
menuitem = document.createElement("menuitem");
menuitem.setAttribute("id", "Restart_Firefox1__withDelDevCache");
menuitem.setAttribute("label", label);
menuitem.setAttribute("onclick", "ToolRstartMod.SaveRestart(event,0);");
optionsitem = document.getElementById("menu_FileQuitItem");
optionsitem.parentNode.insertBefore(menuitem, optionsitem);
}
}catch(e){}
label = "Neustart";
//try {label =UI.ConvertToUnicode(label)} catch(e){}
menuitem = document.createElement("menuitem");
menuitem.setAttribute("label", label);
menuitem.setAttribute("accesskey", "R");
menuitem.setAttribute("onclick", "ToolRstartMod.restartApp(event);");
optionsitem = document.getElementById("menu_FileQuitItem");
optionsitem.parentNode.insertBefore(menuitem, optionsitem);
menuitem.setAttribute("id", "Restart_Firefox");
optionsitem = document.getElementById("appmenu_quit") || document.getElementById("appmenu-quit");
if (optionsitem) {
menuitem = optionsitem.parentNode.insertBefore(menuitem.cloneNode(true), optionsitem);
menuitem.setAttribute("id", "Restart_Firefox2");
}
dump("Initialized addRestartButtons");
},
SaveRestart: function(e,f) {
e.stopPropagation();
if (f==0) {
SessionManager.sessionUtil('save', 'allwindows');
}
ToolRstartMod.restartApp(e,f);
},
//sessionsaver_.2-0.2.1.031-fx+mz.xpi??
restartApp: function(e,f) {
if (e.button !=0 || f==1) {
let xRE = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULRuntime);
xRE.invalidateCachesOnRestart();
}
const nsIAppStartup = Components.interfaces.nsIAppStartup;
// Notify all windows that an application quit has been requested.
var os = Components.classes["@mozilla.org/observer-service;1"]
.getService(Components.interfaces.nsIObserverService);
var cancelQuit = Components.classes["@mozilla.org/supports-PRBool;1"]
.createInstance(Components.interfaces.nsISupportsPRBool);
os.notifyObservers(cancelQuit, "quit-application-requested", null);
// Something aborted the quit process.
if (cancelQuit.data)
return;
// Notify all windows that an application quit has been granted.
os.notifyObservers(null, "quit-application-granted", null);
// Enumerate all windows and call shutdown handlers
var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator);
var windows = wm.getEnumerator(null);
var win;
while (windows.hasMoreElements()) {
win = windows.getNext();
if (("tryToClose" in win) && !win.tryToClose())
return;
}
Components.classes["@mozilla.org/toolkit/app-startup;1"].getService(nsIAppStartup)
.quit(nsIAppStartup.eRestart | nsIAppStartup.eAttemptQuit);
}
}
ToolRstartMod.init();
]]></script>
<toolbar id="tabbar-toolbar">
<toolbarbutton id="restartfirefox-button" class="toolbarbutton-1"
onclick="ToolRstartMod.restartApp(event);" tooltiptext="Neustart (mit Rechts- und Mittelklick wird userChrome.js-Cache geleert)"
insertafter="om-button" />
</toolbar>
</overlay>
Alles anzeigen
speichern als RestartThunderbird.uc.xul und dann testen.
Der Button muss noch positioniert werden,( insertafter="om-button") muss Du durch einen anderen Button ersetzen.
Gruß
EDV-Oldi
beendebutton.uc.js
Heißt der wirklich so?
Auch auf GitHub finde ich den nicht.
Gruß
EDV-Oldi
Bei mir funktioniert dieser Code:
function doDatUhrCallback() {try{doDatUhr();}catch(ex){} }
function doDatUhr() {
var days = ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"];
var months = ["Jan", "Feb", "März", "Apr", "Mai", "Juni", "Juli", "Aug", "Sep", "Okt", "Nov", "Dez"];
window.setTimeout(doDatUhrCallback, 1000);
var D = new Date();
var day = days[D.getDay()];
var month = months[D.getMonth()];
var year = D.getFullYear();
var hour = D.getHours();
var minute = D.getMinutes();
var second = D.getSeconds();
var date = " " + day + ", " + (D.getDate() < 10 ? "0" +D.getDate() : D.getDate()) + ". " + month + " " + year + " ";
var time = (hour < 10 ? "0" +hour : hour) + ":" + (minute < 10 ? "0" +minute : minute) + ":" + (second < 10 ? "0" +second : second);
var timestr = date + time + "" + " ";
var text ="Thunderbird" + ' ' +AppConstants.MOZ_APP_VERSION_DISPLAY + ' ' + ">designend by EDV Oldie< ";
var status = document.getElementById("statusbar-clock-display");
status.setAttribute("value",text + timestr);}
//var ClockStatus = document.getElementById("statusbar-display");
var ClockStatus = document.getElementById("helpMenu");
var ClockLabel = document.createElement("label");
ClockLabel.setAttribute("id", "statusbar-clock-display");
ClockLabel.setAttribute("class", "statusbarpanel-text");
ClockLabel.setAttribute("style", "padding-top:1px; padding-left: 5px;color:blue;text-shadow:none");
ClockStatus.parentNode.insertBefore(ClockLabel, ClockStatus.nextSibling);
doDatUhr();
Alles anzeigen
Aber wie schon in einem anderen Faden geschrieben habe ich die Scriptfunktion auch anders eingebunden.
Genauso und mit den selben Daten wie im Firefox-Forum beschrieben wurde.
Daten und Beschreibung findet man hier:
https://github.com/ardiman/userChrome.js
ganz unten am ende der Seite.
Gruß
EDV-Oldi
Etwa 1% der Scripts aus dem Firefox Forum funktionieren im Thunderbird, weiter oben habe ich meine Scripts aufgelistet, mehr funktionieren glaube ich im Thunderbird auch nicht.
Gruß
EDV-Oldi
Bisher hatte ich diese Datei im Ordner "chrome" innerhalb des Profils gespeichert.
Ist das denn noch da drin?
![]()
Gruß
EDV-Oldi
Hallo boersenfeger,
ich würde auch nicht so viel auf einmal machen, erst das Bild, dann die Scripts.
Wenn Du im Ordner chrome Dein Hintergrundbild speicherst und in der userChrome,css den Code für das Hintergrundbild gespeichert hast, dann sollte der css Code zum aufrufen des Bildes so lauten:
background-image:url("boersengeger.jpg") !important;
Gruß
EDV-Oldi
Es wird wohl so sein wie im Firefox das der Cache gelöscht werden muss, damit die Scripts geladen werden.
Ich starte dann immer Thunderbird einmal im abgesichertem Modus und danach hat es bei mir dann immer funktioniert.
Die aboutconfig-button.uc.xul sieht bei mir so aus und die Button liegen in der tabbar-toolbar.
<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="chrome://global/skin/"?>
<?xml-stylesheet href="data:text/css,
@namespace%20url('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul');
@namespace%20html%20url('http://www.w3.org/1999/xhtml');
%23configEditor-button {list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAAABmJLR0QA%2FwD%2FAP%2BgvaeTAAAACXBIWXMAACcPAAAnDwGrs%2B%2FJAAAAB3RJTUUH1AwRDyUGYuIbjQAAAwRJREFUOMuFkV1rWwUAhp%2BTnnNyPpOsbjVZsSC6sVHY1hXZ1RiIon%2FAC7%2BmF16Jv2RjwnDTXfiBoHUoanQLrDpvhMKgiHajq7NN89E0aU6bpM35zDnJOV5YpmMXPnfvzcPL%2BwoAFy9%2BPh4nPB3HcT6Oh4U4Jm%2FoSkHTtbyiyAVZlvOSLOYdx3V%2BujX%2F2tzc1dvsI1y%2B%2FNV7x6afeT%2BbMSVFVdDUNIqiMIpHhGFEGIYMwoixVIqG43Ll65uN%2B1370nZ57Vqw8E0g3Cgt9E%2FNHDdr9SbBICQMI6IoIkl4hPstC236CAefyLO49CfFYrFU%2B%2FLSK6m0LJqO4xEEIfVala3WJrqmYegaVrvJtSsXWL67SM12mDhUwB9EjOKEzPihl0mNnUulhARVkdF0jbkvPuZW6XsUJY2ma%2Bz2djhz5jQvvXiWqYkD%2FHZvlXsra1TrG3St1oB4NC4igKKkMXQDSRRRNQ1VVZEkGV03mDlxhEqlwrBapqNO8nt9i85W02%2F%2FemMBuCNG0RAhJaLrGrphYJomuq4hSTJpWeKTTz%2Fj2PGTvHH%2BHXIZgzfPv11bunn9AjAPrIuDcISQGkPXVQQgk8lgGBqiKJHNZZl4cpITJ2cwDB0vCEmGowgoAk2AVBAMIIkxNYmppw7T2Wkhjf2TTT1NLmOQyyiYmoTtOAxHw0feET0%2FIApD5GyaQiHP7Ows3%2F7wHTsHpqh3XTpDjeclEVkWsPsuw%2BFjAh%2FH9TBNheXlFYIgoDc5zQtnn%2BOw5bGo6hSXNzl9KqJvO48LfM%2FHdnyyXsirr7%2BF67r8aEW0dny6uzau51Hd3KbXc%2Bh0domiMAGSfwV%2BgG17eEHEs0enASgVb7P4xwq247Be3eBgHDH%2Fyx3Kq38l9Vp5A%2FAfClzPGz5YrYjt7Q6eH%2BC6HnnX5uelu%2FQTkqDd9MWg53xQut5rtxtrltX4ENh7KKitlz9ybOdd294Lt62mY7Wbvf5et9Xv71Z6PetBGA7WK1Dfv60DuP%2FdQABk4ByQAxrAJtDdrznif%2FgbTgGEQikOjI8AAAAASUVORK5CYII%3D);
}
" type="text/css"?>
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<toolbar id="tabbar-toolbar">
<toolbarbutton id="configEditor-button"
class="toolbarbutton-1 tbutton"
label="about-config"
tooltiptext="About:Config"
oncommand='window.openDialog("chrome://global/content/config.xul"); window.content.focus();'/>
</toolbar>
</overlay>
Alles anzeigen
Kann ich das im Chrome-Ordner liegende Hintergrundbild direkt einbinden, ohne base 64-Code?
Ja wenn Du den richtigen Pfad nimmst.
Die userChrome.css sieht bei mir so aus:
@import url("file:///D:/Seafile/Mozilla/Thunderbird/CSS-Ordner/css-dateien/cardbook.css");
@import url("file:///D:/Seafile/Mozilla/Thunderbird/CSS-Ordner/css-dateien/clippings.css");
@import url("file:///D:/Seafile/Mozilla/Thunderbird/CSS-Ordner/css-dateien/enigmail.css");
@import url("file:///D:/Seafile/Mozilla/Thunderbird/CSS-Ordner/css-dateien/extra-config-menu.css");
@import url("file:///D:/Seafile/Mozilla/Thunderbird/CSS-Ordner/css-dateien/fensterlayout.css");
@import url("file:///D:/Seafile/Mozilla/Thunderbird/CSS-Ordner/css-dateien/lightning.css");
@import url("file:///D:/Seafile/Mozilla/Thunderbird/CSS-Ordner/css-dateien/menu_bar.css");
@import url("file:///D:/Seafile/Mozilla/Thunderbird/CSS-Ordner/css-dateien/silvermel.css");
@import url("file:///D:/Seafile/Mozilla/Thunderbird/CSS-Ordner/css-dateien/Navigationsleiste Hintergrundbild.css");
Ich habe alle css Datei auf meinem Raspi liegen und die werden über Seafile mit meinem Notebook synchronisiert.
Auf dem Raspi in einem Ordner liegen alle css Dateien und auch das Hintergrundbild in einem Unterordner "pics"
So das der Aufruf für das Bild so aus sieht:
background-image:url("pics/boersengeger.jpg") !important;
Hoffentlich nicht zu verwirrend.
Gruß
EDV-Oldi