1. Startseite
  2. Nachrichten
  3. Herunterladen
    1. Thunderbird Release-Version
    2. Thunderbird 128 ESR
    3. Thunderbird 115 ESR
    4. Thunderbird Beta-Version
    5. Sprachpaket (Benutzeroberfläche)
    6. Wörterbücher (Rechtschreibprüfung)
  4. Hilfe & Lexikon
    1. Anleitungen zu Thunderbird
    2. Fragen & Antworten (FAQ) zu Thunderbird
    3. Hilfe zu dieser Webseite
  5. Forum
    1. Unerledigte Themen
    2. Letzte Beiträge
    3. Themen der letzten 24 Stunden
  • Anmelden
  • Registrieren
  • 
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Forum
  • Lexikon
  • Artikel
  • Seiten
  • Erweiterte Suche
  1. Thunderbird Mail DE
  2. Forum
  3. Hilfe zu Add-ons und manuellen Anpassungen
  4. Manuelle Anpassungen per CSS oder Script

Eigenes Menü auf Basis von External-Aplication.uc.js

    • 115.*
    • Windows
  • Harff182
  • 25. November 2023 um 23:43
  • Geschlossen
  • Unerledigt
  • Harff182
    Mitglied
    Reaktionen
    6
    Beiträge
    87
    Mitglied seit
    20. Jun. 2015
    • 25. November 2023 um 23:43
    • #1

    TB: 115.5.0

    BS: Win11

    :D Hab eben mal Lust gehabt, ein Script von meinem FF für TB umzubasteln:

    JavaScript
    //     19_TB_ugs-menu.uc.js
    //
    //     basiert auf: External-Aplication.uc.js
    //     Herkunft:
    //     https://github.com/ardiman/userChrome.js/tree/master/externalapplications
    //
    //     CFF-Herkunft: https://www.camp-firefox.de/forum/thema/126871    #13
    //
    //    231125:    @harff182: will "ugs-Menu" im TB haben    
    
    //var currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path;
    var TBProfDir = Services.dirsvc.get("ProfD", Ci.nsIFile).path;
    
    var ugsmenu = {
        type: 'menu',
        insertafter: 'helpMenu',
    
        apps: [
            {name: 'this menu', path: TBProfDir + '/chrome/ugs_js/19_TB_ugs-menu.uc.js'},
            {name: 'separator'},
            {name: 'Icon-Dir', path: TBProfDir + '/chrome/icons'},
            {name: 'CSS-Dir', path: TBProfDir + '/chrome/ugs_css'},
            {name: 'JS-Dir', path: TBProfDir + '/chrome/ugs_js'},
            {name: 'Thunderbird_wissen', path: 'D:\\___Stickware\\comm\\TB-Wissen'},
            {name: 'separator'},
            {name: 'FF-LeistenBezeichnungen', path: 'D:\\___Stickware\\comm\\FirefoxPortable_wissen\\FF_LeistenBezeichnungen in Firefox.png'},
            {name: 'FF-wichtig', path: 'D:\\___Stickware\\comm\\FirefoxPortable_wissen\\0_wichtig.txt'},
            {name: 'Html-Farben', path: 'D:\\___Stickware\\comm\\FirefoxPortable_wissen\\html-farben (10.11.2023 14_54_29).html'},
            {name: 'TB-Tastatur', path: 'D:\\___Stickware\\comm\\TB-Wissen\\TB-Tastatur.url'},
            
            
        ],
    
        init: function() {
            for (var i=0; i<this.apps.length; i++) {
                if (!this.apps[i].path) continue;
                if (!this.apps[i].args) this.apps[i].args = [];
                this.apps[i].path = this.apps[i].path.replace(/\//g, '\\');
                var ffdir = Cc['@mozilla.org/file/directory_service;1'].getService(Ci.nsIProperties).get('CurProcD', Ci.nsIFile).path;
    
                if (/^(\\)/.test(this.apps[i].path)) {
                    this.apps[i].path = ffdir.substr(0,2) + this.apps[i].path;
                }
                else if (/^(\.)/.test(this.apps[i].path)) {
                    this.apps[i].path = ffdir + '\\' + this.apps[i].path;
                }
            }
            if (this.type == 'menu') {
                var mainmenu = document.getElementById('mail-menubar');
                var menu = mainmenu.appendChild(document.createXULElement('menu'));
                menu.setAttribute('label', 'ugs-menu'); 
                menu.setAttribute('accesskey', 'u');
                menu.setAttribute('id', 'ugsmenu');
    
                var menupopup = menu.appendChild(document.createXULElement('menupopup'));
                for (var i=0; i<this.apps.length; i++) {
                    menupopup.appendChild(this.createMenuitem(this.apps[i]));
                }
            }
            else {
                var menubarItems = document.getElementById(this.insertafter);
                var toolbaritem = menubarItems.parentNode.insertBefore(document.createXULElement('toolbaritem'), menubarItems.nextSibling);
                toolbaritem.id = 'ExtAppButtons';
                toolbaritem.setAttribute("class", "chromeclass-toolbar-additional");
                toolbaritem.setAttribute("orient", "horizontal");
                for (var i=0; i<this.apps.length; i++) {
                    toolbaritem.appendChild(this.createButton(this.apps[i]));
                }
            }
        },
    
        exec: function(path, args) {
            for (var i=0; i<args.length; i++) {
                args[i] = args[i].replace(/%u/g, gBrowser.currentURI.spec);
            }
    
            var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
            file.initWithPath(path);
            if (!file.exists()) {
                throw 'File Not Found: ' + path;
            }
    
            if (!file.isExecutable() || args.length==0) {
                file.launch();
            }
            else {
                var process = Cc['@mozilla.org/process/util;1'].getService(Ci.nsIProcess);
                process.init(file);
                process.run(false, args, args.length);
            }
        },
    
        createButton: function(app) {
            if (app.name == 'separator')
            return document.createXULElement('toolbarseparator');
    
            var item = document.createXULElement('toolbarbutton');
            item.setAttribute('class', 'toolbarbutton-1 chromeclass-toolbar-additional');
            item.setAttribute('label', app.name);
            item.setAttribute('image', 'moz-icon:file:///' + app.path + '?size=16');
            item.setAttribute('oncommand', 'ugsmenu.exec(this.path, this.args);');
            // item.setAttribute('tooltiptext', app.name);
            item.path = app.path;
            item.args = app.args;
            return item;
        },
    
        createMenuitem: function(app) {
            if (app.name == 'separator')
            return document.createXULElement('menuseparator');
    
            var item = document.createXULElement('menuitem');
            item.setAttribute('class', 'menuitem-iconic');
            item.setAttribute('label', app.name);
            item.setAttribute('image', 'moz-icon:file:///' + app.path + '?size=16');
            item.setAttribute('oncommand', 'ugsmenu.exec(this.path, this.args);');
            item.setAttribute('tooltiptext', app.name);
            item.path = app.path;
            item.args = app.args;
            return item;
        }
    };
    ugsmenu.init();
    Alles anzeigen

    Es ist bestimmt nicht perfekt und mag den ein oder anderen Fehler beinhalten, aber vielleicht interessierts ja den ein oder anderen von Euch...

    :sleeping: Guuts nächtle...

    W11 Home 64bit - TB 115.x (64-Bit) Portable

  • Endor
    Mitglied
    Reaktionen
    7
    Beiträge
    80
    Mitglied seit
    2. Apr. 2009
    • 5. Dezember 2023 um 13:07
    • #2

    Hallo Harff182.

    Vielen Dank für das Script.
    Funktioniert soweit prima.

    Du hast da mehrere Einträge wie zbs.:

    Code
    D:\\___Stickware\\comm\\TB-Wissen

    Die funktionieren natürlich nur bei Dir.
    Darf ich das Script eventuell in die Sammlung bei Github hochladen?

    Mfg.
    Endor

    Thunderbird 129 - Thunderbird Beta - Thunderbird Daily
    Scriptesammlung: ➜ https://github.com/Endor8/userChr…ter/Thunderbird

    Kein Support per PN. Fragen bitte im Forum stellen!

    Einmal editiert, zuletzt von Endor (5. Dezember 2023 um 13:31)

  • Harff182
    Mitglied
    Reaktionen
    6
    Beiträge
    87
    Mitglied seit
    20. Jun. 2015
    • 5. Dezember 2023 um 13:58
    • #3

    moin, moin, Endor ...

    Zitat von Endor

    Darf ich das Script eventuell in die Sammlung bei Github hochladen?

    Wenn Du es als würdig erachtest...


    Zitat von Endor

    Die funktionieren natürlich nur bei Dir.

    Das war nur mein erster (für mich) funktionierender Versuch;) und kann/sollte als Vorlage dienen.

    Bei mir gibts darauf aufbauend nun 3 Zusatzmenus, die mir das Basteln vereinfachen:

    - 19_TB_info-menu.uc.js

    - 20_TB_JS-menu.uc.js

    - 21_TB_CSS-menu.uc.js


    Ich kann aber leider nicht viel/zeitnahen Support bieten:(

    Ich bin pflegender Angegehöriger und kümmere mich 24/7/365 um meine Mutter.


    bis denne...

    Harff182

    W11 Home 64bit - TB 115.x (64-Bit) Portable

  • Endor
    Mitglied
    Reaktionen
    7
    Beiträge
    80
    Mitglied seit
    2. Apr. 2009
    • 5. Dezember 2023 um 19:27
    • #4
    Zitat von Harff182

    Ich bin pflegender Angehöriger und kümmere mich 24/7/365 um meine Mutter.

    Das kenne ich aus eigener Erfahrung. Ich habe meine Mutter viele Jahre gepflegt.
    Nun habe ich leider nur noch meinen Vater, der auch versorgt usw. werden muss.
    Ich mache das aber gerne. Das hat für mich immer Vorrang. Daher bin ich leider
    nur immer mal wieder hier und im FF Forum unterwegs.

    Danke, dass Ich das Script hochladen darf.
    Mfg.
    Endor

    Thunderbird 129 - Thunderbird Beta - Thunderbird Daily
    Scriptesammlung: ➜ https://github.com/Endor8/userChr…ter/Thunderbird

    Kein Support per PN. Fragen bitte im Forum stellen!

  • Community-Bot 5. Dezember 2024 um 04:30

    Hat das Thema geschlossen.

Aktuelle Programmversion

  • Thunderbird 138.0 veröffentlicht

    Thunder 30. April 2025 um 00:04

Aktuelle ESR-Version

  • Thunderbird 128.10.0 ESR veröffentlicht

    Thunder 29. April 2025 um 23:24

Keine Werbung

Hier wird auf Werbeanzeigen verzichtet. Vielleicht geben Sie dem Website-Betreiber (Alexander Ihrig - aka "Thunder") stattdessen etwas aus, um diese Seiten auf Dauer finanzieren zu können. Vielen Dank!

Vielen Dank für die Unterstützung!

Kaffee ausgeben für:

Per Paypal unterstützen*

*Weiterleitung zu PayPal.Me

Ähnliche Themen

  • Probleme mit Updates

    • Thomas Mischak
    • 3. Mai 2023 um 08:09
    • Allgemeines Arbeiten / Konten einrichten / Installation & Update
Thunderbird Mail DE
  1. Impressum & Kontakt
  2. Datenschutzerklärung
    1. Einsatz von Cookies
  3. Nutzungsbedingungen
  4. Spendenaufruf für Thunderbird
Hilfe zu dieser Webseite
  • Übersicht der Hilfe zur Webseite
  • Die Suchfunktion benutzen
  • Foren-Benutzerkonto - Erstellen (Neu registrieren)
  • Foren-Thema erstellen und bearbeiten
  • Passwort vergessen - neues Passwort festlegen
Copyright © 2003-2025 Thunderbird Mail DE

Sie befinden sich NICHT auf einer offiziellen Seite der Mozilla Foundation. Mozilla®, mozilla.org®, Firefox®, Thunderbird™, Bugzilla™, Sunbird®, XUL™ und das Thunderbird-Logo sind (neben anderen) eingetragene Markenzeichen der Mozilla Foundation.

Community-Software: WoltLab Suite™