1. Home
  2. News
  3. Download
    1. Thunderbird Release Version
    2. Thunderbird 153 ESR (2026)
    3. Thunderbird 140 ESR (2025)
    4. Thunderbird Beta Version
    5. Language Pack (User Interface)
    6. Dictionaries (Spell Check)
  4. Help & Lexicon
    1. Instructions for Thunderbird
    2. Questions & Answers (FAQ) about Thunderbird
    3. Help for this Website
    4. Last Changes
  5. Forums
    1. Unresolved Threads
    2. Latest Posts
    3. Threads of the last 24 hours
  • Login
  • Register
  • 
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Forum
  • Lexicon
  • Articles
  • Pages
  • More Options
  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 ESR
    • Windows
  • Harff182
  • November 25, 2023 at 11:43 PM
  • Closed
  • Thread is Unresolved
  • Harff182
    Member
    Reactions Received
    6
    Posts
    89
    Member since
    20. Jun. 2015
    • November 25, 2023 at 11:43 PM
    • #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();
    Display More

    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 128.x (64-Bit) Portable

  • Endor
    Member
    Reactions Received
    6
    Posts
    81
    Member since
    2. Apr. 2009
    • December 5, 2023 at 1:07 PM
    • #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!

    Edited once, last by Endor (December 5, 2023 at 1:31 PM).

  • Harff182
    Member
    Reactions Received
    6
    Posts
    89
    Member since
    20. Jun. 2015
    • December 5, 2023 at 1:58 PM
    • #3

    moin, moin, Endor ...

    Quote from Endor

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

    Wenn Du es als würdig erachtest...


    Quote from 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 128.x (64-Bit) Portable

  • Endor
    Member
    Reactions Received
    6
    Posts
    81
    Member since
    2. Apr. 2009
    • December 5, 2023 at 7:27 PM
    • #4
    Quote from 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 December 5, 2024 at 4:30 AM

    Closed the thread.

Current app version

  • Thunderbird 153.0.3 veröffentlicht

    Thunder August 12, 2026 at 12:57 PM

Current 153 ESR version

  • Thunderbird 153.0.3 ESR veröffentlicht

    Thunder August 12, 2026 at 2:18 PM

Current 140 ESR version

  • Thunderbird 140.13.0 ESR veröffentlicht

    Thunder July 22, 2026 at 7:16 PM

No Advertisements

There are no advertisements here. Maybe you give the website owner (Alexander Ihrig - aka "Thunder") instead something to be able to finance these sites in the long run. Many Thanks!

Thank you for the support!

Coffee to be spent?

Donate now via Paypal*

*Forwarding to PayPal.Me

Similar Threads

  • Probleme mit Updates

    • Thomas Mischak
    • May 3, 2023 at 8:09 AM
    • Allgemeines Arbeiten / Konten einrichten / Installation & Update
Thunderbird Mail DE
  1. Imprint & Contact
  2. Privacy Policy
    1. Cookie Policy
  3. Terms of Use
  4. Donation Call for Thunderbird
Help for this website
  • All website support articles
  • How to use website search
  • How to create a forums user account
  • How to create and edit a forums thread
  • How to reset your forums password
Copyright © 2003-2026 Thunderbird Mail DE

You are NOT on an official page of the Mozilla Foundation. Mozilla®, mozilla.org®, Firefox®, Thunderbird™, Bugzilla™, Sunbird®, Seamonkey®, XUL™ and the Thunderbird logo are (among others) registered trademarks of the Mozilla Foundation.

Powered by WoltLab Suite™