1. Nachrichten
  2. Forum
    1. Unerledigte Themen
    2. Forenregeln
  3. Spenden
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. camp-firefox.de
  2. Mira_Belle

Beiträge von Mira_Belle

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 1. August 2025 um 20:51

    UND visibility: hidden; getestet, funzt nicht!

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 1. August 2025 um 20:33

    Endor Schau mal. Ist das i.O. für Dich?

    Ok, alle komischen "Kästchen" sind weg!
    Lösung ist zwar nicht besonders schön, aber funktioniert.

    JavaScript
    /* Firefox userChrome script
     * Shortcut menu to modify about:config entries
     * Tested on Firefox 143+
     * Author: garywill (https://garywill.github.io)
     * Edited by: Mira 
     * Souce: https://www.camp-firefox.de/forum/thema/139664/?postID=1276403#post1276403 
     */
    
    // ==UserScript==
    // @include         main
    // @onlyonce
    // ==/UserScript==
    
    console.log("aboutconfig_menu.uc.js");
    
    (() => {
      
    
        const prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
        ChromeUtils.importESModule("resource:///modules/CustomizableUI.sys.mjs")
        const sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService);
        // ---------------------------------------------------------------------------------------
        
        const button_label = "about:config Kontextmenü";
        const cssuri_icon = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent(`
            toolbarbutton#aboutconfig-button .toolbarbutton-icon {
                list-style-image: url("data:image/svg+xml;base64,PCEtLSBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCiAgIC0gTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcwogICAtIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiPjxwYXRoIGZpbGw9ImNvbnRleHQtZmlsbCIgZD0iTTEzLjkgOS44MWExLjIzIDEuMjMgMCAwIDAgMC0uMTd2LS4wOGE1LjY3IDUuNjcgMCAwIDAtMi40LTMuMzYgMS4xNyAxLjE3IDAgMCAxLS41Ni0uOTVWM2ExIDEgMCAwIDAtMS0xSDYuMDZhMSAxIDAgMCAwLTEgMXYyLjI1YTEuMTcgMS4xNyAwIDAgMS0uNTYgMSA1LjY2IDUuNjYgMCAwIDAtMi4zNSAzLjMzdi4xMmEuNTMuNTMgMCAwIDAgMCAuMTEgNS4zNSA1LjM1IDAgMCAwLS4xMSAxIDUuNjUgNS42NSAwIDAgMCAzLjI0IDUuMDkgMSAxIDAgMCAwIC40NC4xaDQuNTdhMSAxIDAgMCAwIC40NC0uMUE1LjY1IDUuNjUgMCAwIDAgMTQgMTAuODNhNS4zIDUuMyAwIDAgMC0uMS0xLjAyem0tOC4yNy0yYTMuMTggMy4xOCAwIDAgMCAxLjQzLTIuNlY0aDEuODh2MS4yNWEzLjE4IDMuMTggMCAwIDAgMS40MyAyLjYgMy42OCAzLjY4IDAgMCAxIDEuNTQgMi4yNHYuMjJhMi44MiAyLjgyIDAgMCAxLTMuNjgtLjU5QTMuNDggMy40OCAwIDAgMCA0LjU2IDlhMy43NiAzLjc2IDAgMCAxIDEuMDctMS4xNXoiPjwvcGF0aD48L3N2Zz4=");
            }
            toolbarbutton#aboutconfig-button .toolbarbutton-badge {
                background-color: #009f00;
                visibility: hidden; 
            }
                
            menuitem[checked="true"] > .menu-icon {
                -moz-context-properties: fill, fill-opacity;
            /*    fill: currentColor; */
                fill:rgb(0, 255, 0) !important;
                fill-opacity: var(--menu-icon-opacity);
                --menuitem-icon: url("chrome://global/skin/icons/menu-check.svg")!important;
            }
    
             menuitem[checked="false"] > .menu-icon {
                    -moz-context-properties: fill, fill-opacity;
                    fill: transparent !important;
                    fill-opacity: var(--menu-icon-opacity);
                    --menuitem-icon: url("chrome://global/skin/icons/menu-check.svg")!important;
            }
    
            menuitem[label="Zurücksetzen: 0"] > .menu-icon,
            menuitem[label="Zurücksetzen: 1"] > .menu-icon, 
            menuitem[label="Zurücksetzen: 100"] > .menu-icon,
            menuitem[label="Zurücksetzen: ''"] > .menu-icon,    
            menuitem[label="Zurücksetzen: 'normal'"] > .menu-icon,           
            menuitem[label="Zurücksetzen: false"] > .menu-icon,            
            menuitem[label="Zurücksetzen: true"] > .menu-icon {
                -moz-context-properties: fill, fill-opacity;
                fill: transparent !important;
                fill-opacity: var(--menu-icon-opacity);
                --menuitem-icon: url("chrome://global/skin/icons/menu-check.svg")!important;
            }
        `), null, null);
                
        const cssuri_warnbadge = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent(`
            toolbarbutton#aboutconfig-button .toolbarbutton-badge {
                background-color:rgb(255, 0, 0);
                visibility: unset;
            } 
        `), null, null);
       
        sss.loadAndRegisterSheet(cssuri_icon, sss.USER_SHEET);
      
        
        var prefItems = [ 
    	{
                name: "📼 Kein automatisches Popup beim Download",
                type: prefs.PREF_BOOL,
                pref: "browser.download.alwaysOpenPanel",
                possibleVals: [
                    {  val: false },
                    {  val: true },
                ]
            },
    	{
                name: "🎞️ Beim Schließen vom letzten Tab den Browser nicht schließen",
                type: prefs.PREF_BOOL,
                pref: "browser.tabs.closeWindowWithLastTab",
                possibleVals: [
                    {  val: false },
                    {  val: true },
                ]
            },
    		"seperator",
    	{
                name: "🔎 Suche aus Suchleiste im neuen Tab öffnen",
                type: prefs.PREF_BOOL,
                pref: "browser.search.openintab",
                possibleVals: [
                    {  val: false },
                    {  val: true },
                ]
            },
    	{
                name: "📖 Lesezeichen im neuen Tab öffnen",
                type: prefs.PREF_BOOL,
                pref: "browser.tabs.loadBookmarksInTabs",
                possibleVals: [
                    {  val: false },
                    {  val: true },
                ]
            },
    	{
                name: "📖 Link aus Adressleiste im neuen Tab öffnen",
                type: prefs.PREF_BOOL,
                pref: "browser.urlbar.openintab",
                possibleVals: [
                    {  val: false },
                    {  val: true },
                ]
            },
    		"seperator",
    	{
                name: "🎊 Animations Modus",
                type: prefs.PREF_STRING,
                pref: "image.animation_mode",
                possibleVals: [
                    { name: "Einmal", val: "once" },
                    { name: "Keine", val: "none" },
                    { name: "Dauerhaft", val: "normal" },
                ]
            },
    	     "seperator", 
    		{
                name: "🔏 CSP aktivieren - deaktivieren",
                type: prefs.PREF_BOOL,
                pref: "security.browser_xhtml_csp.enabled",
                possibleVals: [
                    {  val: false  },
                    {  val: true },
                ]
            },
    		{
                name: "🔏 Urlbar Verhalten - deaktivieren",
                type: prefs.PREF_BOOL,
                pref: "browser.urlbar.scotchBonnet.enableOverride",
                possibleVals: [
                    {  val: false  },
                    {  val: true },
                ]
            },		
    		{
                name: "🔏 eval erlauben - verbieten",
                type: prefs.PREF_BOOL,
                pref: "security.allow_unsafe_dangerous_privileged_evil_eval",
                possibleVals: [
                    {  val: false  },
                    {  name: "true ⚠️",  val: true , sign: '‼️' },
                ]
    		},	
            {
                name: "🌐 IPv6 ausschalten",
                type: prefs.PREF_BOOL,
                pref: "network.dns.disableIPv6",
                possibleVals: [
                    {  val: false },
                    {  val: true },
                ]
            },
            {
                name: "🔐 DNS Modus",
                type: prefs.PREF_INT,
                pref: "network.trr.mode",
                possibleVals: [
                    { name: "0 - Default" , val: 0 },
                    { name: "2 - DoH, fallback Plain DNS" , val: 2 },
                    { name: "3 - DoH only" , val: 3 }, 
                    { name: "5 - Plain DNS" , val: 5 }
                ]
            },
            {
                name: "🔐 DoH server",
                type: prefs.PREF_STRING,
                pref: "network.trr.uri",
                possibleVals: [
                    { name: "Cloudflare" , val: "https://mozilla.cloudflare-dns.com/dns-query" },
                    { name: "NextDNS" , val: "https://firefox.dns.nextdns.io/" }
                ] // See buildin DoH at 'network.trr.resolvers'
            },
            {
                name: "🔏 Veraltete TLS Version aktivieren",
                type: prefs.PREF_BOOL,
                pref: "security.tls.version.enable-deprecated",
                possibleVals: [
                    { val: false  },
                    { name: "true ⚠️",  val: true , sign: '‼️'},
                ]
            },
    
            "seperator",    
            {
                name: "🖱️ Mausrad-Y-Multiplikator",
                type: prefs.PREF_INT,
                pref: "mousewheel.default.delta_multiplier_y",
                possibleVals: [
                    { val: 150 },
                ]
            },
            {
                name: "🖱️ Vertikaler Faktor des Systembildlaufes",
                type: prefs.PREF_INT,
                pref: "mousewheel.system_scroll_override.vertical.factor",
                possibleVals: [
                    { val: 250 },
                ]
            },
    
    
            "seperator",    
            {
                name: "▶️ Autoplay Medien Standard",
                type: prefs.PREF_INT,
                pref: "media.autoplay.default",
                possibleVals: [
                    { val: 0, name: "0 - allow" },
                    { val: 1, name: "1 - blockAudible 👍" },
                    { val: 5, name: "5 - blockAll" },
                ]
            },
    		{
                name: "📺 Videos gesperrt - Videos frei",
                type: prefs.PREF_BOOL,
                pref: "media.mediasource.enabled",
                possibleVals: [
                    {  val: false  },
                    {  val: true },
                ]
            },
            {
                name: "▶️ Media Autoplay ext bg",
                type: prefs.PREF_BOOL,
                pref: "media.autoplay.allow-extension-background-pages",
                possibleVals: [
                    {  val: false  },
                    {  val: true },
                ]
            },
            {
                name: "▶️ Richtlinien zur Sperrung von Autoplay-Medien",
                type: prefs.PREF_INT,
                pref: "media.autoplay.blocking_policy",
                possibleVals: [
                    { val: 0, name: "0 - no block" },
                    { val: 1, name: "1 - block 👍" },
                    { val: 2, name: "2 - block more" },
                    // 0=sticky (default), 1=transient, 2=user
                ]
            },
            {
                name: "▶️ InternetAudio",
                type: prefs.PREF_BOOL,
                pref: "dom.webaudio.enabled",
                possibleVals: [
                    {  val: false },
                    {  val: true  ,  sign: '‼️' , warnbadge: true},
                ]
            },
    
            "seperator",    
            {
                name: "🔤 Benutzerdefinierte Web-Schriften zulassen",
                type: prefs.PREF_INT,
                pref: "browser.display.use_document_fonts",
                possibleVals: [
                    { name: "1 - Allow", val: 1 },
                    { name: "0 - Disallow", val: 0 },
                ]
            },
             {
                name: "💻 Keine Popup Anmeldung für Browser-Werkzeuge",
                type: prefs.PREF_BOOL,
                pref: "devtools.debugger.prompt-connection",
                possibleVals: [
                    {  val: true  },
                    { name: "false ⚠️",   val: false , sign: '‼️' },
                ]
            },
            {
                name: "🔏 Tooltips aktivieren - deaktivieren",
                type: prefs.PREF_BOOL,
                pref: "browser.chrome.toolbar_tips",
                possibleVals: [
                    {  val: false  },
                    {  val: true },
                ]
            },
    		 "seperator",
    		{
                name: "💻 Popups nicht automatisch schließen",
                type: prefs.PREF_BOOL,
                pref: "ui.popup.disable_autohide",
                possibleVals: [
                    {  val: false  },
                    {  val: true },
                ]
            },
        ];
    	
    	if (!window.gBrowser){
        return;
        }
        
        CustomizableUI.createWidget({
            id: 'aboutconfig-button', // button id
            type: "custom",
            defaultArea: CustomizableUI.AREA_NAVBAR,
            removable: true,
            onBuild: function (doc) {
                let btn = doc.createXULElement('toolbarbutton');
                btn.id = 'aboutconfig-button';
                btn.label = button_label;
                btn.tooltipText = button_label;
                btn.type = 'menu';
                btn.className = 'toolbarbutton-1 chromeclass-toolbar-additional';
                btn.setAttribute("badged", "true"); 
                btn.setAttribute("badge", "!"); 
                
                let mp = doc.createXULElement("menupopup");
                mp.id = 'aboutconfig-popup';
                mp.onclick = function(event) {  event.preventDefault()  ;} ;
                
    
                
                prefItems.forEach( function (item, items_i) { // loop every user defined pref
                    
                    if (item === "seperator") 
                    {
                        mp.appendChild(doc.createXULElement('menuseparator'));
                        return;
                    }
                    
                    //var current_val = getItemCurrentVal(item) ;
                    var menu = doc.createXULElement("menu");
                    menu.label = item.name ? item.name : item.pref ;
                    menu.id = "aboutconfig_menu_" + items_i ;
                    menu.className = 'menuitem-iconic' ;
                    
                
                    var menupopup = doc.createXULElement("menupopup");
                    menupopup.id = "aboutconfig_menupopup_" + items_i ;
                    menupopup.className = 'menuitem-iconic' ;
                    
    
                    
                    item.possibleVals.forEach( function (pv, i) { // loop every possible value
                        
                        var display_val = prefPossibleValToDisplay(item, pv.val) ;
                        
                        // Submenu item. One is one possible value
                        var menuitem = doc.createXULElement("menuitem");
                        menuitem.label = pv.name ? pv.name : display_val ;
                        menuitem.id = "aboutconfig_menu_" + items_i + "__" + i  ;
                        menuitem.setAttribute('type', 'radio') ;
                        menuitem.className = 'menuitem-iconic' ;
                        menuitem.tooltipText = display_val ;
    
                        if (pv ['sign'])
                            menuitem.label += '  ' + pv['sign']; 
                        
                        
                        menuitem.addEventListener('click', function(event) { 
                            //console.log(this.id); 
                            setItemPrefVal(item , pv.val);
                        } ) ;
                        menupopup.appendChild(menuitem);
                        
                    });           
                                    
                    var default_val = getItemDefaultVal(item);
                    var default_val_display = null;
                    var reset_label = "Zurücksetzen: ";
                    if (item.signWhenDefaultVal)
                        reset_label += item.signWhenDefaultVal + ' ' ;
                    if (default_val !== undefined && default_val !== null)
                    {
                        default_val_display = prefPossibleValToDisplay(item, default_val);
                        reset_label += default_val_display ;
                    }
                    else
                        reset_label += ' (delete in about:config)'
                    
                    menupopup.appendChild(
                        doc.createXULElement('menuseparator')
                    );
                    
                    // Submenu entry to reset a pref to default
                    var default_item = doc.createXULElement("menuitem");
                    default_item.id = "aboutconfig_menu_" + items_i + "__default" ;
                    default_item.className = 'menuitem-iconic';
                    default_item.label = reset_label;
                    default_item.tooltipText = default_val_display;
    
                    default_item.addEventListener('click', function(event) { 
                        //console.log(this.id); 
                        //setItemPrefVal(item , getItemDefaultVal(item) );
                        prefs.clearUserPref(item.pref);
                    } ) ;
                    
                    menupopup.appendChild(default_item);
                    
                    //------------
                    menu.appendChild(menupopup);
                    mp.appendChild(menu);
                    
                    
                });
                
                btn.appendChild(mp);
    
                mp.addEventListener('popupshowing', function() { 
                    //console.log(this);
                    evalPopulateMenu(this); 
                    
                    update_badge();
                    
                });
    
                btn.onclick = function(event) {
                    if (event.button == 1) {
                        const win = Components.classes["@mozilla.org/appshell/window-mediator;1"]
                            .getService(Components.interfaces.nsIWindowMediator)
                            .getMostRecentWindow("navigator:browser");
                        win.gBrowser.selectedTab = win.gBrowser.addTrustedTab('about:config');
                    }
                    
                    update_badge();
                };
                
                return btn;
            }
        });
        
        function getItemDefaultVal (item) {
            var default_val = undefined;
            try{
                if ( item.type == prefs.PREF_BOOL )
                    default_val = prefs.getDefaultBranch(item.pref).getBoolPref('');
                else if ( item.type == prefs.PREF_INT )
                    default_val = prefs.getDefaultBranch(item.pref).getIntPref('');
                else if ( item.type == prefs.PREF_STRING )
                    default_val = prefs.getDefaultBranch(item.pref).getStringPref('');
            }catch(err) { default_val = null }
            
            return default_val;
        }
        function getItemCurrentVal (item) {
            var current_val = null;
            try{
                if ( item.type == prefs.PREF_BOOL )
                    current_val = prefs.getBoolPref(item.pref);
                else if ( item.type == prefs.PREF_INT )
                    current_val = prefs.getIntPref(item.pref);
                else if ( item.type == prefs.PREF_STRING )
                    current_val = prefs.getStringPref(item.pref);
            }catch(err){ }
            return current_val ;
        }
        
        function if_pref_current_val_is (item, pv_index) {
            var current_val = getItemCurrentVal(item) ;
            if (current_val === null)
                return false;
            
            if ( current_val === item.possibleVals[pv_index].val )
                return true;
            else 
                return false;
        }
        
        function setItemPrefVal(item, newVal)
        {
            if ( item.type == prefs.PREF_BOOL )
                prefs.setBoolPref(item.pref, newVal);
            else if ( item.type == prefs.PREF_INT )
                prefs.setIntPref(item.pref, newVal);
            else if ( item.type == prefs.PREF_STRING )
                prefs.setStringPref(item.pref, newVal);
            
            update_badge();
        }
        function prefPossibleValToDisplay(item, possible_val ) {
            if (possible_val === null) 
                return "null";
            
            var display_val = possible_val.toString();
            if (item.type == prefs.PREF_STRING)
                display_val = `'${display_val}'`;
            
            return display_val;
        }
        
        function evalPopulateMenu(popupmenu)
        {
            prefItems.forEach( function (item, items_i) {
                if (item === "seperator") 
                    return;
                
                const menu = popupmenu.querySelector("#aboutconfig_menu_" + items_i);
                menu.label = item.name ? item.name : item.pref ;
                menu.style.fontWeight = "";
                
                const default_val = getItemDefaultVal(item);
                        
                var current_val = getItemCurrentVal(item) ;
                var current_val_display = prefPossibleValToDisplay(item, current_val);
                menu.tooltipText = `Pref: ${item.pref}\nValue: ${current_val_display}`;
                
                if (current_val !== null)
                {
                    if (item.type == prefs.PREF_BOOL) 
                        menu.label += '  [' + ( current_val?'T':'F' ) + ']';
                    else if (item.type == prefs.PREF_INT) 
                        menu.label += '  [' + current_val + ']';
                    else if (item.type == prefs.PREF_STRING) {
                        var current_val_display_short;
                        
                        if (current_val.length > 8)
                            current_val_display_short = current_val.substring(0, 6) + '..'; 
                        else 
                            current_val_display_short = current_val;
                        
                        menu.label += '  [' + current_val_display_short + ']';
                    }
                } 
                
                if (current_val !== default_val)
                    menu.style.fontWeight = "bold";
                
                if (current_val === default_val && item.signWhenDefaultVal)
                    menu.label += '  ' + item.signWhenDefaultVal;
    
                
                item.possibleVals.forEach( function (pv, i) {
                    menuitem = popupmenu.querySelector("#aboutconfig_menu_" + items_i + "__" + i);
                    if ( if_pref_current_val_is(item, i) )
                    { 
                        menuitem.setAttribute("checked",true);
                     
                        if (pv ['sign'])
                            menu.label += '  ' + pv['sign'];
                    }
                    else 
                        menuitem.setAttribute("checked",false);
                });
            });
        }
        
        function add_warnbadge()
        {
            if ( ! sss.sheetRegistered(cssuri_warnbadge, sss.USER_SHEET) )
                 sss.loadAndRegisterSheet(cssuri_warnbadge, sss.USER_SHEET);
        }
        function rm_warnbadge()
        {
            if ( sss.sheetRegistered(cssuri_warnbadge, sss.USER_SHEET) )
                 sss.unregisterSheet(cssuri_warnbadge, sss.USER_SHEET);
        }
        
        update_badge();
        async function update_badge()
        {
            
            var show_warnbadge = false;
            
            for (item of prefItems)
            {
                if (typeof(item) === "string")
                    continue;
                
                const current_val = getItemCurrentVal(item) ;
                if (
                    item.possibleVals.some ( function(ele) {
                        return ( ele ['val'] === current_val && ele ['warnbadge'] && ele ['warnbadge'] === true );
                    } )
                )
                {
                    show_warnbadge = true;
                    break;
                }
            }
                 
            
            if (show_warnbadge)
                add_warnbadge();
            else 
                rm_warnbadge();
        }
        
        
    })();
    Alles anzeigen
  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 1. August 2025 um 19:52

    Das Skript funktioniert auch ohne:!:

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 1. August 2025 um 19:32

    uuuunnnddd...

    Das "Kästchen" wenn Option nicht ausgewählt auch weg bekommen!

    JavaScript
        const cssuri_icon = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent(`
                toolbarbutton#aboutconfig-button .toolbarbutton-icon {
                    list-style-image: url("data:image/svg+xml;base64,PCEtLSBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCiAgIC0gTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcwogICAtIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiPjxwYXRoIGZpbGw9ImNvbnRleHQtZmlsbCIgZD0iTTEzLjkgOS44MWExLjIzIDEuMjMgMCAwIDAgMC0uMTd2LS4wOGE1LjY3IDUuNjcgMCAwIDAtMi40LTMuMzYgMS4xNyAxLjE3IDAgMCAxLS41Ni0uOTVWM2ExIDEgMCAwIDAtMS0xSDYuMDZhMSAxIDAgMCAwLTEgMXYyLjI1YTEuMTcgMS4xNyAwIDAgMS0uNTYgMSA1LjY2IDUuNjYgMCAwIDAtMi4zNSAzLjMzdi4xMmEuNTMuNTMgMCAwIDAgMCAuMTEgNS4zNSA1LjM1IDAgMCAwLS4xMSAxIDUuNjUgNS42NSAwIDAgMCAzLjI0IDUuMDkgMSAxIDAgMCAwIC40NC4xaDQuNTdhMSAxIDAgMCAwIC40NC0uMUE1LjY1IDUuNjUgMCAwIDAgMTQgMTAuODNhNS4zIDUuMyAwIDAgMC0uMS0xLjAyem0tOC4yNy0yYTMuMTggMy4xOCAwIDAgMCAxLjQzLTIuNlY0aDEuODh2MS4yNWEzLjE4IDMuMTggMCAwIDAgMS40MyAyLjYgMy42OCAzLjY4IDAgMCAxIDEuNTQgMi4yNHYuMjJhMi44MiAyLjgyIDAgMCAxLTMuNjgtLjU5QTMuNDggMy40OCAwIDAgMCA0LjU2IDlhMy43NiAzLjc2IDAgMCAxIDEuMDctMS4xNXoiPjwvcGF0aD48L3N2Zz4=");
                }
                toolbarbutton#aboutconfig-button .toolbarbutton-badge {
                    background-color: #009f00;
                    visibility: hidden; 
                }      
    
    			@media (-moz-platform: windows) {
                    menuitem[checked="true"] > .menu-icon {
                    -moz-context-properties: fill, fill-opacity;
                /*    fill: currentColor; */
                    fill:rgb(0, 255, 0) !important;
                    fill-opacity: var(--menu-icon-opacity);
                    --menuitem-icon: url("chrome://global/skin/icons/menu-check.svg")!important;
                    }
                }
    			@media (-moz-platform: windows) {
                    menuitem[checked="false"] > .menu-icon {
                    -moz-context-properties: fill, fill-opacity;
                    fill:#ffff0000 !important;
                    fill-opacity: var(--menu-icon-opacity);
                    --menuitem-icon: url("chrome://global/skin/icons/menu-check.svg")!important;
                    }
                }            }
                `), null, null);
    Alles anzeigen

    Woran ich mir aber gerade die Zähne ausbeiße, das "Kästchen" bei Zurücksetzen: ...

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 1. August 2025 um 19:15

    2002Andreas Klasse Idee! Jetzt müssten nur noch die "Kästchen" weg.
    Habe mir erlaubt klitze kleine Veränderungen vor zu nehmen.
    Häkchen ist jetzt grün,
    und das background-image: in Zeile 38 habe ich durch --menuitem-icon: ersetzt.

    JavaScript
    /* Firefox userChrome script
     * Shortcut menu to modify about:config entries
     * Tested on Firefox 132+
     * Author: garywill (https://garywill.github.io)
     * 
     */
    
    // ==UserScript==
    // @include         main
    // @onlyonce
    // ==/UserScript==
    
    console.log("aboutconfig_menu.uc.js");
    
    (() => {
      
    
        const prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
        ChromeUtils.importESModule("resource:///modules/CustomizableUI.sys.mjs")
        const sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService);
        // ---------------------------------------------------------------------------------------
        
        const button_label = "about:config Kontextmenü";
        const cssuri_icon = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent(`
                toolbarbutton#aboutconfig-button .toolbarbutton-icon {
                    list-style-image: url("data:image/svg+xml;base64,PCEtLSBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCiAgIC0gTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcwogICAtIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiPjxwYXRoIGZpbGw9ImNvbnRleHQtZmlsbCIgZD0iTTEzLjkgOS44MWExLjIzIDEuMjMgMCAwIDAgMC0uMTd2LS4wOGE1LjY3IDUuNjcgMCAwIDAtMi40LTMuMzYgMS4xNyAxLjE3IDAgMCAxLS41Ni0uOTVWM2ExIDEgMCAwIDAtMS0xSDYuMDZhMSAxIDAgMCAwLTEgMXYyLjI1YTEuMTcgMS4xNyAwIDAgMS0uNTYgMSA1LjY2IDUuNjYgMCAwIDAtMi4zNSAzLjMzdi4xMmEuNTMuNTMgMCAwIDAgMCAuMTEgNS4zNSA1LjM1IDAgMCAwLS4xMSAxIDUuNjUgNS42NSAwIDAgMCAzLjI0IDUuMDkgMSAxIDAgMCAwIC40NC4xaDQuNTdhMSAxIDAgMCAwIC40NC0uMUE1LjY1IDUuNjUgMCAwIDAgMTQgMTAuODNhNS4zIDUuMyAwIDAgMC0uMS0xLjAyem0tOC4yNy0yYTMuMTggMy4xOCAwIDAgMCAxLjQzLTIuNlY0aDEuODh2MS4yNWEzLjE4IDMuMTggMCAwIDAgMS40MyAyLjYgMy42OCAzLjY4IDAgMCAxIDEuNTQgMi4yNHYuMjJhMi44MiAyLjgyIDAgMCAxLTMuNjgtLjU5QTMuNDggMy40OCAwIDAgMCA0LjU2IDlhMy43NiAzLjc2IDAgMCAxIDEuMDctMS4xNXoiPjwvcGF0aD48L3N2Zz4=");
                }
                toolbarbutton#aboutconfig-button .toolbarbutton-badge {
                    background-color: #009f00;
                    visibility: hidden; 
                }      
    
    			@media (-moz-platform: windows) {
                    menuitem[checked="true"] > .menu-icon {
                    -moz-context-properties: fill, fill-opacity;
                /*    fill: currentColor; */
                    fill:rgb(0, 255, 0) !important;
                    fill-opacity: var(--menu-icon-opacity);
                    --menuitem-icon: url("chrome://global/skin/icons/menu-check.svg")!important;
                }
                }
                `), null, null);
                
        const cssuri_warnbadge = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent(`
                toolbarbutton#aboutconfig-button .toolbarbutton-badge {
                    background-color:rgb(255, 0, 0);
                    visibility: unset;
                } 
                `), null, null);
       
        sss.loadAndRegisterSheet(cssuri_icon, sss.USER_SHEET);
      
        
        var prefItems = [ 
    	{
                name: "📼 Kein automatisches Popup beim Download",
                type: prefs.PREF_BOOL,
                pref: "browser.download.alwaysOpenPanel",
                possibleVals: [
                    {  val: false },
                    {  val: true },
                ]
            },
    	{
                name: "🎞️ Beim Schließen vom letzten Tab den Browser nicht schließen",
                type: prefs.PREF_BOOL,
                pref: "browser.tabs.closeWindowWithLastTab",
                possibleVals: [
                    {  val: false },
                    {  val: true },
                ]
            },
    		"seperator",
    	{
                name: "🔎 Suche aus Suchleiste im neuen Tab öffnen",
                type: prefs.PREF_BOOL,
                pref: "browser.search.openintab",
                possibleVals: [
                    {  val: false },
                    {  val: true },
                ]
            },
    	{
                name: "📖 Lesezeichen im neuen Tab öffnen",
                type: prefs.PREF_BOOL,
                pref: "browser.tabs.loadBookmarksInTabs",
                possibleVals: [
                    {  val: false },
                    {  val: true },
                ]
            },
    	{
                name: "📖 Link aus Adressleiste im neuen Tab öffnen",
                type: prefs.PREF_BOOL,
                pref: "browser.urlbar.openintab",
                possibleVals: [
                    {  val: false },
                    {  val: true },
                ]
            },
    		"seperator",
    	{
                name: "🎊 Animations Modus",
                type: prefs.PREF_STRING,
                pref: "image.animation_mode",
                possibleVals: [
                    { name: "Einmal", val: "once" },
                    { name: "Keine", val: "none" },
                    { name: "Dauerhaft", val: "normal" },
                ]
            },
    	     "seperator", 
    		{
                name: "🔏 CSP aktivieren - deaktivieren",
                type: prefs.PREF_BOOL,
                pref: "security.browser_xhtml_csp.enabled",
                possibleVals: [
                    {  val: false  },
                    {  val: true },
                ]
            },
    		{
                name: "🔏 Urlbar Verhalten - deaktivieren",
                type: prefs.PREF_BOOL,
                pref: "browser.urlbar.scotchBonnet.enableOverride",
                possibleVals: [
                    {  val: false  },
                    {  val: true },
                ]
            },		
    		{
                name: "🔏 eval erlauben - verbieten",
                type: prefs.PREF_BOOL,
                pref: "security.allow_unsafe_dangerous_privileged_evil_eval",
                possibleVals: [
                    {  val: false  },
                    {  name: "true ⚠️",  val: true , sign: '‼️' },
                ]
    		},	
            {
                name: "🌐 IPv6 ausschalten",
                type: prefs.PREF_BOOL,
                pref: "network.dns.disableIPv6",
                possibleVals: [
                    {  val: false },
                    {  val: true },
                ]
            },
            {
                name: "🔐 DNS Modus",
                type: prefs.PREF_INT,
                pref: "network.trr.mode",
                possibleVals: [
                    { name: "0 - Default" , val: 0 },
                    { name: "2 - DoH, fallback Plain DNS" , val: 2 },
                    { name: "3 - DoH only" , val: 3 }, 
                    { name: "5 - Plain DNS" , val: 5 }
                ]
            },
            {
                name: "🔐 DoH server",
                type: prefs.PREF_STRING,
                pref: "network.trr.uri",
                possibleVals: [
                    { name: "Cloudflare" , val: "https://mozilla.cloudflare-dns.com/dns-query" },
                    { name: "NextDNS" , val: "https://firefox.dns.nextdns.io/" }
                ] // See buildin DoH at 'network.trr.resolvers'
            },
            {
                name: "🔏 Veraltete TLS Version aktivieren",
                type: prefs.PREF_BOOL,
                pref: "security.tls.version.enable-deprecated",
                possibleVals: [
                    { val: false  },
                    { name: "true ⚠️",  val: true , sign: '‼️'},
                ]
            },
    
            "seperator",    
            {
                name: "🖱️ Mausrad-Y-Multiplikator",
                type: prefs.PREF_INT,
                pref: "mousewheel.default.delta_multiplier_y",
                possibleVals: [
                    { val: 150 },
                ]
            },
            {
                name: "🖱️ Vertikaler Faktor des Systembildlaufes",
                type: prefs.PREF_INT,
                pref: "mousewheel.system_scroll_override.vertical.factor",
                possibleVals: [
                    { val: 250 },
                ]
            },
    
    
            "seperator",    
            {
                name: "▶️ Autoplay Medien Standard",
                type: prefs.PREF_INT,
                pref: "media.autoplay.default",
                possibleVals: [
                    { val: 0, name: "0 - allow" },
                    { val: 1, name: "1 - blockAudible 👍" },
                    { val: 5, name: "5 - blockAll" },
                ]
            },
    		{
                name: "📺 Videos gesperrt - Videos frei",
                type: prefs.PREF_BOOL,
                pref: "media.mediasource.enabled",
                possibleVals: [
                    {  val: false  },
                    {  val: true },
                ]
            },
            {
                name: "▶️ Media Autoplay ext bg",
                type: prefs.PREF_BOOL,
                pref: "media.autoplay.allow-extension-background-pages",
                possibleVals: [
                    {  val: false  },
                    {  val: true },
                ]
            },
            {
                name: "▶️ Richtlinien zur Sperrung von Autoplay-Medien",
                type: prefs.PREF_INT,
                pref: "media.autoplay.blocking_policy",
                possibleVals: [
                    { val: 0, name: "0 - no block" },
                    { val: 1, name: "1 - block 👍" },
                    { val: 2, name: "2 - block more" },
                    // 0=sticky (default), 1=transient, 2=user
                ]
            },
            {
                name: "▶️ InternetAudio",
                type: prefs.PREF_BOOL,
                pref: "dom.webaudio.enabled",
                possibleVals: [
                    {  val: false },
                    {  val: true  ,  sign: '‼️' , warnbadge: true},
                ]
            },
    
            "seperator",    
            {
                name: "🔤 Benutzerdefinierte Web-Schriften zulassen",
                type: prefs.PREF_INT,
                pref: "browser.display.use_document_fonts",
                possibleVals: [
                    { name: "1 - Allow", val: 1 },
                    { name: "0 - Disallow", val: 0 },
                ]
            },
             {
                name: "💻 Keine Popup Anmeldung für Browser-Werkzeuge",
                type: prefs.PREF_BOOL,
                pref: "devtools.debugger.prompt-connection",
                possibleVals: [
                    {  val: true  },
                    { name: "false ⚠️",   val: false , sign: '‼️' },
                ]
            },
            {
                name: "🔏 Tooltips aktivieren - deaktivieren",
                type: prefs.PREF_BOOL,
                pref: "browser.chrome.toolbar_tips",
                possibleVals: [
                    {  val: false  },
                    {  val: true },
                ]
            },
    		 "seperator",
    		{
                name: "💻 Popups nicht automatisch schließen",
                type: prefs.PREF_BOOL,
                pref: "ui.popup.disable_autohide",
                possibleVals: [
                    {  val: false  },
                    {  val: true },
                ]
            },
        ];
    	
    	if (!window.gBrowser){
        return;
        }
        
        CustomizableUI.createWidget({
            id: 'aboutconfig-button', // button id
            type: "custom",
            defaultArea: CustomizableUI.AREA_NAVBAR,
            removable: true,
            onBuild: function (doc) {
                let btn = doc.createXULElement('toolbarbutton');
                btn.id = 'aboutconfig-button';
                btn.label = button_label;
                btn.tooltipText = button_label;
                btn.type = 'menu';
                btn.className = 'toolbarbutton-1 chromeclass-toolbar-additional';
                btn.setAttribute("badged", "true"); 
                btn.setAttribute("badge", "!"); 
                
                let mp = doc.createXULElement("menupopup");
                mp.id = 'aboutconfig-popup';
                mp.onclick = function(event) {  event.preventDefault()  ;} ;
                
    
                
                prefItems.forEach( function (item, items_i) { // loop every user defined pref
                    
                    if (item === "seperator") 
                    {
                        mp.appendChild(doc.createXULElement('menuseparator'));
                        return;
                    }
                    
                    //var current_val = getItemCurrentVal(item) ;
                    var menu = doc.createXULElement("menu");
                    menu.label = item.name ? item.name : item.pref ;
                    menu.id = "aboutconfig_menu_" + items_i ;
                    menu.className = 'menuitem-iconic' ;
                    
                
                    var menupopup = doc.createXULElement("menupopup");
                    menupopup.id = "aboutconfig_menupopup_" + items_i ;
                    menupopup.className = 'menuitem-iconic' ;
                    
    
                    
                    item.possibleVals.forEach( function (pv, i) { // loop every possible value
                        
                        var display_val = prefPossibleValToDisplay(item, pv.val) ;
                        
                        // Submenu item. One is one possible value
                        var menuitem = doc.createXULElement("menuitem");
                        menuitem.label = pv.name ? pv.name : display_val ;
                        menuitem.id = "aboutconfig_menu_" + items_i + "__" + i  ;
                        menuitem.setAttribute('type', 'radio') ;
                        menuitem.className = 'menuitem-iconic' ;
                        menuitem.tooltipText = display_val ;
    
                        if (pv ['sign'])
                            menuitem.label += '  ' + pv['sign']; 
                        
                        
                        menuitem.addEventListener('click', function(event) { 
                            //console.log(this.id); 
                            setItemPrefVal(item , pv.val);
                        } ) ;
                        menupopup.appendChild(menuitem);
                        
                    });           
                                    
                    var default_val = getItemDefaultVal(item);
                    var default_val_display = null;
                    var reset_label = "Zurücksetzen: ";
                    if (item.signWhenDefaultVal)
                        reset_label += item.signWhenDefaultVal + ' ' ;
                    if (default_val !== undefined && default_val !== null)
                    {
                        default_val_display = prefPossibleValToDisplay(item, default_val);
                        reset_label += default_val_display ;
                    }
                    else
                        reset_label += ' (delete in about:config)'
                    
                    menupopup.appendChild(
                        doc.createXULElement('menuseparator')
                    );
                    
                    // Submenu entry to reset a pref to default
                    var default_item = doc.createXULElement("menuitem");
                    default_item.id = "aboutconfig_menu_" + items_i + "__default" ;
                    default_item.className = 'menuitem-iconic';
                    default_item.label = reset_label;
                    default_item.tooltipText = default_val_display;
    
                    default_item.addEventListener('click', function(event) { 
                        //console.log(this.id); 
                        //setItemPrefVal(item , getItemDefaultVal(item) );
                        prefs.clearUserPref(item.pref);
                    } ) ;
                    
                    menupopup.appendChild(default_item);
                    
                    //------------
                    menu.appendChild(menupopup);
                    mp.appendChild(menu);
                    
                    
                });
                
                btn.appendChild(mp);
    
                mp.addEventListener('popupshowing', function() { 
                    //console.log(this);
                    evalPopulateMenu(this); 
                    
                    update_badge();
                    
                });
    
                btn.onclick = function(event) {
                    if (event.button == 1) {
                        const win = Components.classes["@mozilla.org/appshell/window-mediator;1"]
                            .getService(Components.interfaces.nsIWindowMediator)
                            .getMostRecentWindow("navigator:browser");
                        win.gBrowser.selectedTab = win.gBrowser.addTrustedTab('about:config');
                    }
                    
                    update_badge();
                };
                
                return btn;
            }
        });
        
        function getItemDefaultVal (item) {
            var default_val = undefined;
            try{
                if ( item.type == prefs.PREF_BOOL )
                    default_val = prefs.getDefaultBranch(item.pref).getBoolPref('');
                else if ( item.type == prefs.PREF_INT )
                    default_val = prefs.getDefaultBranch(item.pref).getIntPref('');
                else if ( item.type == prefs.PREF_STRING )
                    default_val = prefs.getDefaultBranch(item.pref).getStringPref('');
            }catch(err) { default_val = null }
            
            return default_val;
        }
        function getItemCurrentVal (item) {
            var current_val = null;
            try{
                if ( item.type == prefs.PREF_BOOL )
                    current_val = prefs.getBoolPref(item.pref);
                else if ( item.type == prefs.PREF_INT )
                    current_val = prefs.getIntPref(item.pref);
                else if ( item.type == prefs.PREF_STRING )
                    current_val = prefs.getStringPref(item.pref);
            }catch(err){ }
            return current_val ;
        }
        
        function if_pref_current_val_is (item, pv_index) {
            var current_val = getItemCurrentVal(item) ;
            if (current_val === null)
                return false;
            
            if ( current_val === item.possibleVals[pv_index].val )
                return true;
            else 
                return false;
        }
        
        function setItemPrefVal(item, newVal)
        {
            if ( item.type == prefs.PREF_BOOL )
                prefs.setBoolPref(item.pref, newVal);
            else if ( item.type == prefs.PREF_INT )
                prefs.setIntPref(item.pref, newVal);
            else if ( item.type == prefs.PREF_STRING )
                prefs.setStringPref(item.pref, newVal);
            
            update_badge();
        }
        function prefPossibleValToDisplay(item, possible_val ) {
            if (possible_val === null) 
                return "null";
            
            var display_val = possible_val.toString();
            if (item.type == prefs.PREF_STRING)
                display_val = `'${display_val}'`;
            
            return display_val;
        }
        
        function evalPopulateMenu(popupmenu)
        {
            prefItems.forEach( function (item, items_i) {
                if (item === "seperator") 
                    return;
                
                const menu = popupmenu.querySelector("#aboutconfig_menu_" + items_i);
                menu.label = item.name ? item.name : item.pref ;
                menu.style.fontWeight = "";
                
                const default_val = getItemDefaultVal(item);
                        
                var current_val = getItemCurrentVal(item) ;
                var current_val_display = prefPossibleValToDisplay(item, current_val);
                menu.tooltipText = `Pref: ${item.pref}\nValue: ${current_val_display}`;
                
                if (current_val !== null)
                {
                    if (item.type == prefs.PREF_BOOL) 
                        menu.label += '  [' + ( current_val?'T':'F' ) + ']';
                    else if (item.type == prefs.PREF_INT) 
                        menu.label += '  [' + current_val + ']';
                    else if (item.type == prefs.PREF_STRING) {
                        var current_val_display_short;
                        
                        if (current_val.length > 8)
                            current_val_display_short = current_val.substring(0, 6) + '..'; 
                        else 
                            current_val_display_short = current_val;
                        
                        menu.label += '  [' + current_val_display_short + ']';
                    }
                } 
                
                if (current_val !== default_val)
                    menu.style.fontWeight = "bold";
                
                if (current_val === default_val && item.signWhenDefaultVal)
                    menu.label += '  ' + item.signWhenDefaultVal;
    
                
                item.possibleVals.forEach( function (pv, i) {
                    menuitem = popupmenu.querySelector("#aboutconfig_menu_" + items_i + "__" + i);
                    if ( if_pref_current_val_is(item, i) )
                    { 
                        menuitem.setAttribute("checked",true);
                     
                        if (pv ['sign'])
                            menu.label += '  ' + pv['sign'];
                    }
                    else 
                        menuitem.setAttribute("checked",false);
                });
            });
        }
        
        function add_warnbadge()
        {
            if ( ! sss.sheetRegistered(cssuri_warnbadge, sss.USER_SHEET) )
                 sss.loadAndRegisterSheet(cssuri_warnbadge, sss.USER_SHEET);
        }
        function rm_warnbadge()
        {
            if ( sss.sheetRegistered(cssuri_warnbadge, sss.USER_SHEET) )
                 sss.unregisterSheet(cssuri_warnbadge, sss.USER_SHEET);
        }
        
        update_badge();
        async function update_badge()
        {
            
            var show_warnbadge = false;
            
            for (item of prefItems)
            {
                if (typeof(item) === "string")
                    continue;
                
                const current_val = getItemCurrentVal(item) ;
                if (
                    item.possibleVals.some ( function(ele) {
                        return ( ele ['val'] === current_val && ele ['warnbadge'] && ele ['warnbadge'] === true );
                    } )
                )
                {
                    show_warnbadge = true;
                    break;
                }
            }
                 
            
            if (show_warnbadge)
                add_warnbadge();
            else 
                rm_warnbadge();
        }
        
        
    })();
    Alles anzeigen
  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 1. August 2025 um 16:35

    Ein Screenshot des Menüs, welches erzeugt werden soll, wäre nicht schlecht.
    Ich kann mir einfach nicht vorstellen, was das Skript macht.


    /* ***************************************************************************** */
    Hat sich erledigt!

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 1. August 2025 um 15:46
    Zitat von Endor

    Edit:
    Hat sich erledigt. Habe es selbst hinbekommen.
    Lag wohl an meiner dreckigen Brille......
    Mfg.
    Endor

    Und?
    Woran lag es?
    Übrigens ein interessantes Skript!

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 1. August 2025 um 15:31
    Zitat von 2002Andreas

    Dann teste das bitte mal mit diesem Icon:

    chrome://global/skin/icons/arrow-down.svg

    menuitem.style.setProperty('--menuitem-icon', 'url("chrome://global/skin/icons/arrow-down.svg")');
    No problemo! Größenanpassung erfolgt!


    Zitat von FuchsFan

    Für die eigenen Icons nutze ich eine css-Datei.

    Ah!
    Das ist z.B. ein Grund, warum ich gerne alles in einem Skript habe!
    Aber ich muss zu geben, ich bin da auch nicht immer konsequent.

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 1. August 2025 um 15:16

    FuchsFan Das Skript ist ganz schöner Murks!
    Es sind zwei oder gar drei Skripte, die miteinander verwurschtelt wurden!
    Dann ist nahezu alles in der Config tot, also ohne Funktion.
    Daraus folgt viele Zeilen ungenutzter Code, der eventuell aber dann doch hier oder da zu Problemen führen könnte.
    Es tut mir echt leid, wenn ich wirklich JavaScript könnte, würde ich Dir ein neues Skript mal eben so schreiben.
    Aber daran getraue ich mich nicht wirklich. Sorry.

    Ich finde z.B. nicht heraus woher die Symbole für die Anwendungen herkommen sollten.

    Dann der Code für die Firefoxfunktionen, die sind doch längst überholt!
    Funktionieren die denn überhaupt? Neustart und Browser-Werkzeuge.

    key.setAttribute('oncommand', 'document.getElementById("AMpopup").openPopup();'); kann eigentlich nicht mehr funktionieren!

    Ich denke, Du bist besser beraten, einzelne Skripte zu nutzen.
    Z.B. eines für ein abgespecktes Appmenü und das von Andreas genutzte OpenWith.us.js.

    Wenn Du magst, könnte ich mich ja am WE mal hinsetzen und schauen, ob ich nicht "mein" abgespecktes Appmenü-Skript
    irgendwie mit dem OpenWith.us.js verknüpfen könnte.
    Was fehlen würde, wäre die Funktion zum freien Verschieben des Buttons.

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 1. August 2025 um 14:52

    2002Andreas

    Zitat von 2002Andreas

    Der Code funktioniert auch, aber er vergrößert die beiden Pfeile nicht so groß wie die anderen Icons.

    Kann ich so nicht bestätigen!

    Dass das ganze etwas nach rechts verschoben ist, liegt an einem anderen Code.
    Bei mir in Original sind die Symbole ja auch kleiner und dann passt es!

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 1. August 2025 um 10:21

    Im Übrigen funktioniert das CSS bei mir in der Nightly!

    CSS
    	#context-navigation {	
    		> .menuitem-iconic {
    		  /* Gemeinsame Icon-Größe */
    			> .menu-icon {
    				width: 35px !important;
    				height: 35px !important;
    				max-width: 35px !important;
    				max-height: 35px !important;
    				background-size: contain !important; /* für perfekte Skalierung */
    				object-fit: contain !important; /* falls SVGs oder PNGs verwendet werden */
    	  		}
    		}
      	}
    Alles anzeigen

    Da funkt FuchsFan was anderes dazwischen!

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 1. August 2025 um 10:05

    2002Andreas FuchsFan muss da noch anderen Code haben!

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 1. August 2025 um 09:56

    FuchsFan Uff.
    Da ist aber ganz schön schwer daran gebastelt worden.
    Das schaue ich mir heute Nachmittag mal genauer an, ok?

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 1. August 2025 um 09:32
    Zitat von FuchsFan

    So sieht das jetzt aus, was darf ich ändern?

    Den dazugehörenden Code bräuchte ich.

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 1. August 2025 um 00:31

    2002Andreas Ich hab's


    Ändere die Zeile mit : image:    "moz-icon:file:///" + BrowserPath[i].split("<>")[0] + "?size=16",
    einfach in : image:  "moz-icon:file:///" + encodeURIComponent(BrowserPath[i].split("<>")[0]) + "?size=16",



    So! Nun muss ich aber ins Bett.

    Ach, und so ganz nebenbei habe ich das Appmenü-Skript auch gefixt!
    Wer nutzt das Original?

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 31. Juli 2025 um 22:12
    Zitat von Endor

    Da wird ja so einiges auf uns zukommen.
    Mal sehen ob wir das alles wieder zum laufen bringen.

    Es sind mehr Scripte davon betroffen als ich dachte.

    Die da wären?
    Bei mir sind es "nur" drei gewesen.
    Die Skripte mit der Funktion zum Übersetzen mit Google sowie DeepL habe ich "reparieren" können.
    Einzig das Appmenü-Skript von aborix, das will nicht so! Da stehe ich auf dem Schlauch.

  • Symbolabstände in einigen Menüs und Kontextmenüs zu groß

    • Mira_Belle
    • 31. Juli 2025 um 22:00

    Okey, ...!
    Mein Fehler, Dein FF kann kein JS, oder?
    Dann funktioniert das JavaScript natürlich nicht.

  • Symbolabstände in einigen Menüs und Kontextmenüs zu groß

    • Mira_Belle
    • 31. Juli 2025 um 17:12

    Du müsstest nur let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'));
    in let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'Icons')); ändern!

    Oder halt Deinen Ordner für die Symbole von Icons in icons umbenennen. Viele Wege führen nach Rom.

    CSS scheint da etwas gutmütiger zu sein! Denn da nutzt Du icons, aber der Ordner heißt Icons.
    Das ist aber eigentlich ein Fehler! Auch wenn es funktioniert, berichtige das, denn es könnte in Zunkunft
    eben DOCH zu fehlern führen und dann weist Du nicht, woran das liegt.
    Mein Vorschlag, ändere den Ordnernamen in "icons".
    Dann funktioniert weiterhin Dein CSS, aber eben auch das Skript ohne die Änderung.

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 31. Juli 2025 um 17:00

    Naja, will ja mein Problem auch gelöst haben,
    und das dürfte sich überlagern, denke ich.
    Auch meine Symbole.us.js und andere Skripte könnte es noch treffen,
    wahrscheinlich sogar. Wird viel "Arbeit".

  • ScrollTopAndBottom.uc.js und Open with.uc.js zeigen keine Icons mehr an im Nightly

    • Mira_Belle
    • 31. Juli 2025 um 16:33

    Ah, ok, dann werde ich mich mal dran machen, Vivaldi und der Edge und die Nightly stehen ja zur Auswahl.
    Komme aber erst spät dazu, das zu testen, frühesten ab 22°° Uhr!
    Eventuell findet ja schon vorher jemand eine Lösung, für unserer beiden Problemen.

Unterstütze uns!

Jährlich (2025)

92,9 %

92,9% (604,17 von 650 EUR)

Jetzt spenden
  1. Kontakt
  2. Datenschutz
  3. Impressum
Community-Software: WoltLab Suite™
Mastodon