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. FuchsFan

Beiträge von FuchsFan

  • Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt.

    • FuchsFan
    • 24. Juli 2023 um 09:50
    Zitat von omar1979

    und es tut mir wirklich leid dass dich genervt habe

    Du hast nicht genervt, Du hast oberflächlich gearbeitet. :P :)

    Denke immer daran, in der Ruhe liegt die Kraft. :thumbup:

    So sieht das hier mit Deinem Script aus, habe für das Icon nur den base64 wieder eingefügt.

  • Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt.

    • FuchsFan
    • 24. Juli 2023 um 08:51
    Zitat von omar1979

    Na toll. Nach diesen Änderungen und einem FF-Neustart ist das ExtraConfigMenu-Icon verschwunden.

    Na, toll! :cursing:

    Warum musst Du erst immer Fehler machen, um dann mit dem Aufräumen zu beginnen, Du hast wieder einmal nicht beachtet, was ich geschrieben und gezeigt habe.

    In Schritt 1 solltest Du aus der Null eine Sechs machen, hast Du gemacht.

    Aber was solltest Du in Schritt 2 machen?

    Du solltest nur den rot eingerahmten Teil (case 6:) nachtragen. Was hast Du gemacht, Du hast im ersten Teil case: 0 entfernt, und dann noch den neuen Teil unplatziert eingefügt. Wo ist auf meinem Screenshot case 6:, nach case 5: logischerweise.

    Nun fragst Du noch nach der Löschung der Ordner. Was habe ich in meinem Text dazu geschrieben?

    Ich bitte Dich doch etwas gewissenhafter zu arbeiten, wenn Du Hilfe erwartest.

    Übrigens gibt es alle Deine Probleme hier bei mir nicht, von Beta, über ESR bis Nightly. Also konzentriere Dich und frisch an's Werk.

  • Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt.

    • FuchsFan
    • 23. Juli 2023 um 20:00

    omar1979

    So, dann gibt es Änderungen, die dann, so hoffe ich, auch das letzte Problemchen beseitigen. Wenn das erledigt ist, dann können die vier Dateien aus dem Ordner Scripte wieder entfernt werden, weil das Script dann wieder auf die Dateien im Ordner chrome zugreift.

    Ich habe die Änderungen wieder an diesem RE: Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt. geänderten Script gemacht, solltest Du was geändert haben, dann musst Du Dir die Passagen selbst heraussuchen.

    Schritt 1:

    In dem Script gibt diesen Absatz für Konfigurationsdateien, der so aussieht.

    Bei den vier Dateien steht im Original eine 0, also dort dann eine 6 eintragen.

    Schritt 2:

    Ca. bei Zeile 180 beginnt ein Absatz mit edit:function(OpenMode,Filename){, in diesem muss ein Nachtrag gemacht werden, der dann so aussieht.

    Achte darauf, das die Klammern richtig gesetzt bleiben.

  • Frage zum Firefox Nightly Updates

    • FuchsFan
    • 23. Juli 2023 um 11:18
    Zitat von Foxxiator

    Irgendwann ist es dann aber da und wird dann auch anstandslos installiert....

    Gestern war es auch so, heute nicht mehr.

  • Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt.

    • FuchsFan
    • 23. Juli 2023 um 09:57
    Zitat von omar1979

    Danke für die Info.

    Ja, gerne doch, aber das bringt uns auch nicht weiter, denn die Dateien im Ordner Scripte sind nur da, damit das Script diese Dateien anzeigen kann. Änderungen können darin gemacht werden, sie sind aber nicht wirksam.

    Da kann ich nicht sagen, was da im Script geändert werden muss, dass die Dateien wieder aus dem Ordner chrome aufgerufen werden. Wer kann helfen?

  • Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt.

    • FuchsFan
    • 23. Juli 2023 um 09:06
    Zitat von omar1979

    Habt ihr das auch so? Kann ich vom scripte ordner löschen?

    Du darfst keine davon löschen, die im Ordner Scripte werden m.M.n. von dem Script selbst gebraucht, deswegen sind sie dort extra wieder angelegt worden. Wieso das so sein muss, das kann ich i.M. noch nicht sagen, mal sehen ob da im Script zusätzlich was geändert werden muss.

  • Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt.

    • FuchsFan
    • 22. Juli 2023 um 19:46
    Zitat von omar1979

    Ja das hab ich erledigt. Danke.

    Gern geschehen, Hauptsache es looooft wieder. :)

  • Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt.

    • FuchsFan
    • 22. Juli 2023 um 19:25
    Zitat von omar1979

    Sieht so aus ja

    Andreas meinte sicher das, was ich hier RE: Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt. im Nachtrag gebracht habe. Hast Du das auch abgearbeitet?

  • Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt.

    • FuchsFan
    • 22. Juli 2023 um 11:10
    Zitat von 2002Andreas

    Du kannst hier den Namen ändern:

    Danke, Andreas, das habe ich schon probiert, wollte aber erst einmal keine Fehler produzieren.

    Du hast ja jetzt die Vorlage geliefert, kann dann jeder selbst entscheiden. :)

  • Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt.

    • FuchsFan
    • 22. Juli 2023 um 10:25

    omar1979

    Dein Script von hier RE: Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt. habe ich auch abgeändert, dass alle Scripte in einem Ordner untergebracht sind.

    Der Name des Ordners muss JS sein.

    Dieses userChrome.import("JS\\", "UChrm"); muss zusätzlich in die userChrome.js eingetragen werden (siehe bege).

    Ist das alles gemacht, dann sieht es hier so aus:

    ...das geänderte Script:

    CSS
    // ==UserScript==
    // @name           extras_config_menu.uc.js
    // @compatibility  Firefox 5*.*
    // @include        main
    // @version        1.0.20190504
    // @edit           @aborix 7/21 CSS Dateien als Untermenü eingefügt 
    // @edit           @2002Andreas 8/21 Shadow CSS Dateien als Untermenü + Ordner eingefügt 
    // ==/UserScript==
    
    var uProfMenu = {
      // Beginn der Konfiguration
      // In der folgenden Zeile (11) den Pfad zum Texteditor eintragen (unter Ubuntu 10.04 z.B.: '/usr/bin/gedit'). Bei Fehleintrag wird view_source.editor.path ausgelesen:
      //TextOpenExe: 'C:\\Program Files (x86)\\Notepad++\\notepad++.exe',
      TextOpenExe: 'D:\\PortableProgramme\\Notepad++8.1.9.Portable.x64\\notepad++.exe',
      // Falls gewuenscht, in Zeile 15 einen Dateimanager eintragen (komplett leer lassen fuer Dateimanager des Systems) Beispiele:
      // vFileManager: 'E:\\Total Commander\\Totalcmd.exe',
      // vFileManager: 'C:\\Program Files (x86)\\FreeCommander\\FreeCommander.exe'
      vFileManager: '',
      // Falls die JavaScript-Scripte nicht im chrome-Verzeichnis, sondern einem Unterverzeichnis sind,
      // in der folgenden Zeile das Unterverzeichnis eintragen, sonst '':
      jsSubfolder: 'JS',
      // In der folgenden Zeile (19) 'menu' eintragen, damit es unter "Extras" als Menue erscheint, sonst die id des gewuenschten
      // Elements *nach* dem der Button erscheinen soll (z.B. 'urlbar', 'searchbar', 'undoclosetab-button','abp-toolbarbutton')
      // Bitte nicht so etwas wie die Menue- oder Navigationsleiste (sondern einen Menuepunkt oder einen Button mit id auf diesen Leisten) eintragen:
     warpmenuto: 'urlbar-container',
     // Unter Linux sollte/kann versucht werden, die userChromeJS-Skripte zu sortieren, unter Windows ist das evtl. nicht noetig (die Sortierung wird Gross- und Kleinschreibung *nicht* beruecksichtigen - dazu wird die sort()-Funktion entsprechend mit einer Vergleichsfunktion aufgerufen)
      sortScripts: 0,   // 1 zum Erzwingen der Sortierung
      // Einbindung GM-Skripte-Ordner (0: nein, 1: Greasemonkey [Profil-Verzeichnis], 2: UserScriptLoader [Chrome-Verzeichnis], 3: Scriptish [Profil-Verzeichnis]):
      gmOrdner: 0,
      // Einbindung CSS-Ordner (0: nein, 1: UserCSSLoader-Ordner im Chrome-Verzeichnis):
      cssOrdner: 0,
      // In Zeile 30 gueltige about:Adressen eintragen, die ebenfalls aufgerufen werden sollen.
      // - Zum Ausblenden: abouts: [],
      // - Damit die about:-Seiten nicht als Untermenue, sondern direkt als Menuepunkte aufgefuehrt werden, muss das erste Element '0' sein:
      // abouts: ['0','about:about','about:addons','about:cache','about:config','about:support'],
      abouts: ['about:about','about:debugging#/runtime/this-firefox','about:cache','about:config','about:crashes','about:downloads','about:home','about:logins','about:memory','about:support','about:preferences','about:performance','about:profiles'],
      // Die normalen Firefox-Einstellungen auch zur Verfuegung stellen (0: nein, 1: ja):
      showNormalPrefs: 0,
      // Stellt "Skriptliste in Zwischenablage" zur Verfuegung (1: ja, 2: mit getrennter Nummerierung, 3: mit gemeinsamer Nummerierung) oder nicht (0):
      enableScriptsToClip: 1,
      // Um den Eintrag "Neustart" zu erzwingen (falls z.B. das andere Skript zu spaet eingebunden und nicht erkannt wird), auf 1 setzen:
      enableRestart: 0,
      // Ende der Konfiguration
    
      init: function() {
        if (this.warpmenuto.toLowerCase() == 'menu') {
          // aufgrund des gewaehlten warpmenuto als Untermenue von Extras anlegen
          var zielmenu = document.getElementById('menu_ToolsPopup');
          if (zielmenu==null) {
            userChrome.log("extras_config_menu.uc.js findet Zielmenue nicht, evtl. weil ein anderes Fenster als das Hauptfenster " +
                           "geoeffnet wurde. Falls dieser Fehler auch im Hauptfenster auftritt, bitte die vorgehende Definition " +
                           "von 'zielmenu' kontrollieren.");
            return;
          }
          var menu = zielmenu.appendChild(this.createME("menu","Config Men\u00FC",0,0,"ExtraConfigMenu"));
          menu.setAttribute("class","menu-iconic");
          menu.setAttribute("ondblclick","openTrustedLinkIn('about:config', 'tab');");
         } else {
            
         // als verschiebbaren Button anlegen
          if (window.__SSi == "window0") {
            CustomizableUI.createWidget({
              id: "ExtraConfigMenu-button",
              defaultArea: CustomizableUI.AREA_NAVBAR,
              label: "Extra Config Menü",
              tooltiptext: "Extra Config Menü\nMittelklick \öffnet about:config"
            });
          }
          var menu = document.getElementById("ExtraConfigMenu-button");
          menu.setAttribute("type", "menu");
          menu.setAttribute("onclick", "if (event.button == 1) openTrustedLinkIn('about:config', 'tab');");
        }
        
        //ab hier ist alles gleich, egal ob Button oder Menue
        var css = " \
          #ExtraConfigMenu, #ExtraConfigMenu-button { \
            list-style-image: url(file:///C:/Users/Ramo/AppData/Roaming/Mozilla/Firefox/Profiles/g4mso52s.default-release/chrome/Icons/extraConf.png)  \
          } \
          #ExtraConfigMenu-button > dropmarker, #ExtraConfigMenu-button > hbox > .toolbarbutton-menu-dropmarker { \
            display: none !important; \
          }";
        var sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
        var uri = makeURI('data:text/css;charset=UTF=8,' + encodeURIComponent(css));
        sss.loadAndRegisterSheet(uri,sss.AGENT_SHEET);
        menu.setAttribute("onpopupshowing","uProfMenu.getScripts(0);uProfMenu.getCss(3);uProfMenu.getCss(4);uProfMenu.getCss(5)");
        var menupopup = menu.appendChild(this.createME("menupopup",0,0,0,"ExtraConfigMenu-popup"));
        // Anlegen von Untermenues fuer userChromeJS-Skripte und CSS-Dateien (befuellen spaeter)
        var submenu=menupopup.appendChild(this.createME("menu","Scripte",0,0,"submenu-ucjs"));
        var submenupopup = submenu.appendChild(this.createME("menupopup",0,0,0,"submenu-ucjs-items"));
        // var submenu = menupopup.appendChild(this.createME("menu","uc.xul",0,0,"submenu-ucxul"));
        // var submenupopup = submenu.appendChild(this.createME("menupopup",0,0,0,"submenu-ucxul-items"));
        var submenu = menupopup.appendChild(this.createME("menu","css",0,0,"submenu-css"));
        var submenupopup = submenu.appendChild(this.createME("menupopup",0,0,0,"submenu-css-items"));
        var submenu = menupopup.appendChild(this.createME("menu","CSSShadow",0,0,"submenu-CSSShadow"));
        var submenupopup = submenu.appendChild(this.createME("menupopup",0,0,0,"submenu-CSSShadow-items"));
        var submenu = menupopup.appendChild(this.createME("menu","cssweb",0,0,"submenu-cssweb"));
        var submenupopup = submenu.appendChild(this.createME("menupopup",0,0,0,"submenu-cssweb-items"));
        if (this.enableScriptsToClip) menupopup.appendChild(this.createME("menuitem","Skriptliste in Zwischenablage","uProfMenu.getScripts(1)","uProfMenu_clipboard",0));
        // Ende Anlegen von Untermenues
        menupopup.appendChild(document.createXULElement('menuseparator'));
        // Einbindung von Konfigdateien
        menupopup.appendChild(this.createME("menuitem","userChrome.css","uProfMenu.edit(0,'userChrome.css');","uProfMenu_edit",0));
        menupopup.appendChild(this.createME("menuitem","userChromeShadow.css","uProfMenu.edit(0,'userChromeShadow.css');","uProfMenu_edit",0));
        menupopup.appendChild(this.createME("menuitem","userContent.css","uProfMenu.edit(0,'userContent.css');","uProfMenu_edit",0));
        menupopup.appendChild(this.createME("menuitem","userChrome.js","uProfMenu.edit(0,'userChrome.js');","uProfMenu_edit",0));
        menupopup.appendChild(this.createME("menuitem","prefs.js","uProfMenu.edit(1,'prefs.js');","uProfMenu_edit",0));
        menupopup.appendChild(this.createME("menuitem","user.js","uProfMenu.edit(1,'user.js');","uProfMenu_edit"),0);
    
        // Ende Einbindung von Konfigdateien
        menupopup.appendChild(document.createXULElement('menuseparator'));
        // Einbindung von Ordnern
        switch (this.gmOrdner) {
          case 1:
            menupopup.appendChild(this.createME("menuitem","GM-skripty","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('ProfD')+uProfMenu.getDirSep()+'gm_scripts');","uProfMenu_folder"),0);
            break;
          case 2:
            menupopup.appendChild(this.createME("menuitem","USL-skripty","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('UChrm')+uProfMenu.getDirSep()+'UserScriptLoader');","uProfMenu_folder"),0);
            break;
          case 3:
            menupopup.appendChild(this.createME("menuitem","Skripty Scriptish","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('ProfD')+uProfMenu.getDirSep()+'scriptish_scripts');","uProfMenu_folder"),0);
            break;
        }
    
        menupopup.appendChild(this.createME("menuitem","CSS-Ordner öffnen","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('UChrm')+uProfMenu.getDirSep()+'css');","uProfMenu_folder"),0);
        menupopup.appendChild(this.createME("menuitem","CSSShadow-Ordner öffnen","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('UChrm')+uProfMenu.getDirSep()+'CSSShadow');","uProfMenu_folder"),0);
        menupopup.appendChild(this.createME("menuitem","CSSWeb-Ordner öffnen","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('UChrm')+uProfMenu.getDirSep()+'CSSWeb');","uProfMenu_folder"),0);
        menupopup.appendChild(this.createME("menuitem","Chrome-Ordner öffnen","uProfMenu.prefDirOpen('UChrm');","uProfMenu_folder"),0);
        menupopup.appendChild(this.createME("menuitem","Profil-Ordner öffnen","uProfMenu.prefDirOpen('ProfD');","uProfMenu_folder"),0);
        menupopup.appendChild(this.createME("menuitem","Icons-Ordner öffnen","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('UChrm')+uProfMenu.getDirSep()+'Icons');","uProfMenu_folder"),0);
        menupopup.appendChild(this.createME("menuitem","Installations-Ordner öffnen","uProfMenu.prefDirOpen('CurProcD');","uProfMenu_folder"),0);
        menupopup.appendChild(this.createME("menuitem","Addon-Ordner öffnen","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('ProfD')+uProfMenu.getDirSep()+'extensions');","uProfMenu_folder"),0);
        menupopup.appendChild(this.createME("menuitem","Startup-Cache-Ordner öffnen","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('ProfLD')+uProfMenu.getDirSep()+'startupCache');","uProfMenu_folder"),0);
      /*   menupopup.appendChild(this.createME("menuitem","Ordner about","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('UChrm')+uProfMenu.getDirSep()+'about');","uProfMenu_folder"),0); */
        // Ende Einbindung von Ordnern
        // Einbindung von abouts
        if (this.abouts.length>0) {
          menupopup.appendChild(document.createXULElement('menuseparator'));
          // falls der erste Eintrag des Arrays = '0' ist, dann kein Untermenue anlegen, sondern direkt als Menuepunkte einbinden
          if (this.abouts[0]=='0') {
            for (var i = 1; i < this.abouts.length; i++) {
            menupopup.appendChild(this.createME("menuitem",this.abouts[i],"openTrustedLinkIn('"+this.abouts[i]+"','tab')","uProfMenu_about"),0);
            }
           } else {
            // der erste Eintrag des arrays ist ungleich '0', deshalb als Untermenue einrichten
            var submenu = menupopup.appendChild(this.createME("menu","uc.js",0,0,"submenu-about"));
            var submenupopup = submenu.appendChild(this.createME("menupopup",0,0,0,"submenu-about-items"));
            this.fillMenu("submenu-about","submenu-about-items", "about:",this.abouts,"uProfMenu_about",1);
          }
        }
        // Ende Einbindung von abouts
        // Separator, falls dieser nicht schon durch abouts generiert wurde und weitere Menuepunkte folgen werden
        if (this.abouts.length==0 && (this.showNormalPrefs || typeof(ToolRstartMod) != "undefined")) menupopup.appendChild(document.createXULElement('menuseparator'));
        // Falls gewuenscht (s. Konfigurationsabschnitt), Zugriff auf die normalen Einstellungen
        if (this.showNormalPrefs) menupopup.appendChild(this.createME("menuitem","Einstellungen","try{openOptionsDialog();}catch(e){openPreferences();}","uProfMenu_prefs"),0);
        // Falls addRestartButton installiert ist, Neustart zur Verfuegung stellen (addRestartButton 1.0.20120105mod erforderlich)
        if(typeof(ToolRstartMod) != "undefined" || this.enableRestart) menupopup.appendChild(this.createME("menuitem","Neustart",
        "try{ToolRstartMod.restartApp(false);} catch(e){alert(e);}","uProfMenu_restart"),0);
      },
    
      getDirSep:function() {
        // Betriebssystem nach https://developer.mozilla.org/en/Code_snippets/Miscellaneous ermitteln
        var osString = Components.classes["@mozilla.org/xre/app-info;1"].getService(Components.interfaces.nsIXULRuntime).OS;
        var dirsep = "/";
        switch(osString) {
          case "WINNT":
            dirsep = "\\";
            break;
          case "Linux":
            dirsep = "/";
            break;
          case "Darwin":
            dirsep = "/";
            break;
        }
        return dirsep;
      },
    
      edit:function(OpenMode,Filename){
        var Path = "";
        var dSep = this.getDirSep();  // die Trennzeichen zwischen Ordnern abhaengig vom Betriebssystem machen
        switch (OpenMode){
          //Current is Chrome Directory
          case 0:
            if (this.jsSubfolder.length != 0) {
            var Path = this.getPrefDirectoryPath("UChrm") + dSep + this.jsSubfolder + dSep + Filename;
            } else {
               var Path = this.getPrefDirectoryPath("UChrm") + dSep + Filename;
            }
            break;
          //Current is Profile Directory
          case 1:
            var Path = this.getPrefDirectoryPath("ProfD") + dSep + Filename;
            break;
          //Current is Root
          case 2:
            var Path = Filename;
            break;
          //Current is CSS folder
          case 3:
            var Path = this.getPrefDirectoryPath("UChrm") + dSep + "CSS" + dSep + Filename;
            break;
          //Current is CSSWeb folder
          case 4:
            var Path = this.getPrefDirectoryPath("UChrm") + dSep + "CSSWeb" + dSep + Filename;
            break;
            //Current is CSSShadow folder
          case 5:
            var Path = this.getPrefDirectoryPath("UChrm") + dSep + "CSSShadow" + dSep + Filename;
            break;
        }
        this.launch(this.TextOpenExe,Path);
      },
    
      dirOpen:function(Path){
        if (this.vFileManager.length != 0) {
          var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
          var process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess);
          var args = [Path];
          file.initWithPath(this.vFileManager);
          process.init(file);
          // Verzeichnis mit anderem Dateimanager oeffnen
          process.run(false, args, args.length);
         } else {
          // Verzeichnis mit Dateimanager des Systems oeffnen
          var dir = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
          dir.initWithPath(Path);
          dir.launch();
        }
      },
    
      prefDirOpen:function(prefDir){
        Path = this.getPrefDirectoryPath(prefDir);
        this.dirOpen(Path);
      },
    
      getPrefDirectoryPath:function(str){
        // get profile directory
        var file = Components.classes["@mozilla.org/file/directory_service;1"]
          .getService(Components.interfaces.nsIProperties)
          .get(str, Components.interfaces.nsIFile);
        if (str == 'CurProcD') {
          file = file.parent;
        };
        return file.path;
      },
    
      launch:function(RanPath,OpenPath){
        var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsIFile);
        var proc = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
        var args = [OpenPath];
        file.initWithPath(RanPath);
        // falls der im Konfigurationsabschnitt definierte Editor nicht gefunden wird, auf Einstellung in about:config ausweichen:
        if (!file.exists()) {
          var pref = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
          RanPath = pref.getCharPref("view_source.editor.path");
          file.initWithPath(RanPath);
        }
        proc.init(file);
        proc.run(false, args, args.length);
      },
    
      stringComparison:function(a, b){
        a = a.toLowerCase();
        a = a.replace(/ä/g,"a");
        a = a.replace(/ö/g,"o");
        a = a.replace(/ü/g,"u");
        a = a.replace(/ß/g,"s");
        b = b.toLowerCase();
        b = b.replace(/ä/g,"a");
        b = b.replace(/ö/g,"o");
        b = b.replace(/ü/g,"u");
        b = b.replace(/ß/g,"s");
        return(a==b)?0:(a>b)?1:-1;
      },
    
      getScripts:function(iType) {
        // Arrays (jeweils ein Array fuer uc.js und uc.xul) nehmen Namen der gefundenen Skripte auf
        let ucJsScripts = [];
        // let ucXulScripts = [];
        // Suchmuster, also die Dateierweiterungen uc.js und uc.xul
        let extjs = /\.uc\.js$/i;
        // let extxul= /\.uc\.xul$/i;
        let aFolder = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
        if (this.jsSubfolder.length != 0) {
           aFolder.initWithPath(Services.dirsvc.get("UChrm", Ci.nsIFile).path+uProfMenu.getDirSep()+this.jsSubfolder);
        } else {
            aFolder.initWithPath(Services.dirsvc.get("UChrm", Ci.nsIFile).path);
        };
        // files mit Eintraegen im Chrome-Ordner befuellen
        let files = aFolder.directoryEntries.QueryInterface(Ci.nsISimpleEnumerator);
        // Ordner bzw. files durchlaufen und kontrollieren, ob gesuchte Dateien dabei sind
        while (files.hasMoreElements()) {
          let file = files.getNext().QueryInterface(Ci.nsIFile);
          // keine gewuenschte Datei, deshalb continue
          if (!extjs.test(file.leafName) /* && !extxul.test(file.leafName) */) continue;
          // uc.js gefunden -> im Array ablegen
          if (extjs.test(file.leafName)) ucJsScripts.push(file.leafName);
          // uc.xul gefunden -> im Array ablegen
          // if (extxul.test(file.leafName)) ucXulScripts.push(file.leafName);
        }
        if (this.sortScripts) {
          ucJsScripts.sort(this.stringComparison);
          // ucXulScripts.sort(this.stringComparison);
        }
        // Aufruf der naechsten Methoden um die beiden Untermenues oder die Zwischenablage zu befuellen
        if (iType==0) {
          this.fillMenu("submenu-ucjs","submenu-ucjs-items", "Scripte",ucJsScripts,"uProfMenu_ucjs",0);
          // this.fillMenu("submenu-ucxul","submenu-ucxul-items", "uc.xul",ucXulScripts,"uProfMenu_ucxul",0);
         } else {
          var result=this.fillClipboardValue(ucJsScripts/* ,ucXulScripts */);
          Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper).copyString(result);
        }
      },
    
      getCss:function(iType) {
        // Array nimmt Namen der gefundenen css-Dateien auf
        let cssFiles = [];
        // Suchmuster, also die Dateierweiterung css
        let extcss = /\.css$/i;
        let aFolder = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
        if (iType==3) {
          aFolder.initWithPath(Services.dirsvc.get("UChrm", Ci.nsIFile).path+this.getDirSep()+"CSS");
         } else if (iType==4) {
          aFolder.initWithPath(Services.dirsvc.get("UChrm", Ci.nsIFile).path+this.getDirSep()+"CSSWeb");
        }  else if (iType==5) {
          aFolder.initWithPath(Services.dirsvc.get("UChrm", Ci.nsIFile).path+this.getDirSep()+"CSSShadow");
        }
        // files mit Eintraegen im CSS- bzw. CSSWeb-Ordner befuellen
        let files = aFolder.directoryEntries.QueryInterface(Ci.nsISimpleEnumerator);
        // Ordner bzw. files durchlaufen und kontrollieren, ob gesuchte Dateien dabei sind
        while (files.hasMoreElements()) {
          let file = files.getNext().QueryInterface(Ci.nsIFile);
          // css gefunden -> im Array ablegen
          if (extcss.test(file.leafName)) cssFiles.push(file.leafName);
        }
        if (this.sortScripts) {
          cssFiles.sort(this.stringComparison);
        }
        // Untermenue befuellen
        if (iType==3) {
          this.fillMenu("submenu-css","submenu-css-items","Meine CSS-Dateien",cssFiles,"uProfMenu_css",3);
         } else if (iType==4) {
          this.fillMenu("submenu-cssweb","submenu-cssweb-items","Meine CSSWeb-Dateien",cssFiles,"uProfMenu_css",4);
        }  else if (iType==5) {
          this.fillMenu("submenu-CSSShadow","submenu-CSSShadow-items","Meine CSSShadow-Dateien",cssFiles,"uProfMenu_css",5);
        }
      },
    
      fillMenu:function(whichsubmenu, whichsubmenuitems, strlabel, scriptArray,sClass,sTyp) {
        // Beschriftung des Untermenues mit Anzahl der gefundenen Dateien ergaenzen
        var e = document.getElementById(whichsubmenu);
        e.setAttribute('label',strlabel + ' (' + scriptArray.length + ')');
        var popup = document.getElementById(whichsubmenuitems);
        // zunaechst Untermenue zuruecksetzen
        while(popup.hasChildNodes()){
          popup.removeChild(popup.firstChild);
        }
        // Untermenue endlich befuellen
        for (var i = scriptArray.length-1; i > -1; i--) {
          // Typunterscheidung (userChromeJS-Skript oder about: oder css)
          if (sTyp==0){
            var mitem = this.createME("menuitem",scriptArray[i],"uProfMenu.edit(0,'"+scriptArray[i]+"')",sClass,0);
            mitem.setAttribute("onclick","uProfMenu.openAtGithub(event,'"+scriptArray[i]+"')");
            mitem.setAttribute("tooltiptext"," Linksklick: Bearbeiten,\n Mittelklick: https://github.com/.../"+this.cleanFileName(scriptArray[i])+" oeffnen,\n Rechtsklick: Suche auf GitHub");
           } else if (sTyp==1){
            var mitem = this.createME("menuitem",scriptArray[i],"openTrustedLinkIn('"+scriptArray[i]+"','tab')",sClass,0);
           } else if (sTyp==3){
            var mitem = this.createME("menuitem",scriptArray[i],"uProfMenu.edit(3,'"+scriptArray[i]+"')",sClass,0);
           } else if (sTyp==4){
            var mitem = this.createME("menuitem",scriptArray[i],"uProfMenu.edit(4,'"+scriptArray[i]+"')",sClass,0);
          }
          else if (sTyp==5){
            var mitem = this.createME("menuitem",scriptArray[i],"uProfMenu.edit(5,'"+scriptArray[i]+"')",sClass,0);
          }
          popup.insertBefore(mitem, popup.firstChild);
        }
      },
    
      fillClipboardValue:function(sArray,xArray) {
        var retValue;
        var s = 0;
        var x = 0;
        s = sArray.length;
        x = xArray.length;
        switch(this.enableScriptsToClip) {
          case 1:
            retValue = "userChromeJS/uc.js ("+s+"):\n------------------------\n"+sArray.join("\n")+
                       "\n\nuserChromeJS/uc.xul ("+x+"):\n-------------------------\n"+xArray.join("\n");
            break;
          default:
            retValue = "userChromeJS/uc.js ("+s+"):\n------------------------";
            for (var i = 0; i < s ; i++) {
              j = i + 1;
              retValue = retValue + "\n" + j + ". " + sArray[i];
            }
            retValue = retValue + "\n\nuserChromeJS/uc.xul ("+x+"):\n-------------------------";
            if (this.enableScriptsToClip==2) s = 0;
            for (var i = 0; i < x ; i++) {
              j = i + s + 1;
              retValue = retValue + "\n" + j + ". " + xArray[i];
            }
            break;
        }
        return retValue;
      },
    
      createME:function(sTyp,sLabel,sCommand,sClass,sId) {
        // Anlegen von menuitem, menu oder menupop - fuer bestimmte Typen nicht eingesetzte Parameter werden als 0 uebergeben
        const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
        var m = document.createElementNS(XUL_NS, sTyp);
        switch (sTyp) {
          case "menuitem":
            // this.createME("menuitem","Label des Items","ZuzuweisenderCodeFueroncommand","GewuenschteKlasseDesItems",0)
            m.setAttribute('label', sLabel);
            m.setAttribute('oncommand',sCommand);
            m.setAttribute('class',sClass);
            break;
          case "menu":
            // this.createME("menu","Label des Menues",0,0,"GewuenschteIdDesMenues")
            m.setAttribute('label', sLabel);
            m.setAttribute('id', sId);
            break;
          case "menupopup":
            //this.createME("menupopup",0,0,0,"GewuenschteIdDesMenupopups");
            m.setAttribute('id', sId);
            break;
        }
        return m;
      },
    
      openAtGithub:function(e,sScript) {
        if (e.button==1){
          // Mittelklick - Seite auf GitHub oeffnen (funktioniert nur, wenn Ordner- und bereinigter Dateiname [ohne Erweiterung] uebereinstimmen):
          var sUrl = "https://github.com/ardiman/userChrome.js/tree/master/"+this.cleanFileName(sScript);
          openWebLinkIn(sUrl, 'tab');
        }
        if (e.button==2){
          // Rechtsklick - Suche auf GitHub starten (funktioniert nur, wenn der Dateiname im Code hinterlegt ist):
          e.preventDefault();
          var sUrl = "https://github.com/search?langOverride=&language=&q="+sScript+"&repo=&start_value=1&type=Code";
          openWebLinkIn(sUrl, 'tab');
        }
      },
    
      cleanFileName:function(sName) {
        sName = sName.toLowerCase();
        /* Das folgende Array enthaelt regulaere Ausdruecke, um ungueltige Zeichenfolgen entfernen:
        /Datei-Erweiterungen am Ende/, /"ucjs_" am Anfang/, /"_"gefolgtVonZahlUndDanachBeliebigenZeichen/
        / "_fx"gefolgtVonZahl(en)/, /"-" oder "+" oder "."/, /"_v"gefolgtVonZahlen
        */
        var regs = [/\.uc\.js$/,/\.uc\.xul$/,/^ucjs_/,/_\d.+/,/_fx\d+/,/[-+\.]/g,/_v\d+/];
        for (var i = 0; i < regs.length; i++) {
          sName = sName.replace(regs[i],"");
        }
        return sName;
      }
    
    };
    
    uProfMenu.init();
    Alles anzeigen

    Nachtrag (weil erst später festgestellt):

    Die folgenden Schritte müssen in jedem Profil vollzogen werden, wenn Du das geänderte script zum Einsatz bringst.

    (keine Ahnung, was da in den Tiefen des Profils vor sich geht)

    Wenn Du alles eingerichtet hast, die Scripte werden alle angezeigt ( Script-Cache löschen nicht vergessen), dann gehe mal auf den Button vom extras_config_menu.uc.js und rufe die userChrome.css auf. Es öffnet sich ein Fenster, sinngemäß so wird erklärt dass die Datei nicht vorhanden ist und ob sie neu angelegt werden soll. Das musst Du mit ja betätigen, die Datei offen lassen, den Ordner chrome öffnen, Doppelklick auf die userChrome.css und den kompletten Inhalt kopieren und in die offene andere Datei einfügen und speichern. Neustart, dann kann die Datei wieder aufgerufen werden.

    Das musste ich auch mit userContent.css, userChrome.js und userChromeShadow.css machen, alles andere ist o.k.

  • Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt.

    • FuchsFan
    • 22. Juli 2023 um 09:42

    bege

    Danke, dass Du das Script hier gezeigt hast. Nun habe ich die Teile, die wichtig sind in mein Script eingebaut, und es funktioniert, wenn alle Scripte im Ordner JS untergebracht sind. das Submenü habe ich aber trotzdem in "Scripte" benannt (in Deinem heißt es uc.js).

    ....hier die Ordner:

    .....hier die Ansicht dazu:

  • cmd-Datei umschreiben für Sicherung und Herstellung Profilordner

    • FuchsFan
    • 21. Juli 2023 um 16:01
    Zitat von Mira_Belle

    1. Würde ich gerne eine Überprüfung, ob der Firefox gerade läuft, integrieren.

    Wenn Du das schaffst, dann bekommst Du.....zig :thumbup:

    Zitat von Mira_Belle

    2. Möchte ich das Entpacken direkt in den richtigen Ordner machen

    Es wird nicht der Profilordner (Inhalt) entpackt, sondern das Archiv, und das ist nur der reine Profilordner.

  • cmd-Datei umschreiben für Sicherung und Herstellung Profilordner

    • FuchsFan
    • 21. Juli 2023 um 14:28

    Mira_Belle

    Für jeden Firefox gibt es einen eigenen Backup-Ordner, wie z.B. auf dem Screenshot zu erkennen ist. In diesem Ordner sind drei PS-Scripte und der Ordner Archiv

    angelegt worden (der Rest wird mit den Scripten erzeugt).

    Hinweis: Diesen habe ich hier auch schon in vorherigen Beiträgen gegeben, weil er so wichtig ist. In den PS-Scripten müssen immer die richtigen Pfade für alle

    Aktionen eingetragen sein, deshalb sind sie auch nicht übertragbar, und müssen für jeden Backup-Ordner speziell angelegt werden.

    Falsche Pfade können das Profil unbrauchbar machen, darüber sollte man sich im Klaren sein.

    Trotzdem möchte ich einfach nicht mehr darauf verzichten.

    Nun das erste Script 33p_sichern.ps1:

    Damit wird der Profilordner im Backup-Ordner gelöscht und der aktuelle Profilordner des Fox wird dann hier wieder gesichert. Zusätzlich wird eine Log-Datei erstellt.

    Code
    # überprüft, ob Profilordner vorhanden, und löscht diesen
    if (Test-Path -Path "E:\BackupFirefox\Firefox33p\Profilordner") {
        Remove-Item -Path "E:\BackupFirefox\Firefox33p\Profilordner" -Force -Recurse
    }
    
    # Pause 3 Sek.
    Start-Sleep -s 3
    
    # kopiert den aktuellen Profilordner in das vorgegebene Verzeichnis (-Recurse = mit allen Dateien und Subordnern)    
    Copy-Item -Path "B:\Firefox Test\Firefox33p\Profilordner" -Destination "E:\BackupFirefox\Firefox33p\Profilordner" -Recurse
    
    # Pause 3 Sek.
    Start-Sleep -s 3
    
    # überprüft, ob Log-Datei namentlich vorhanden, vorherige log-Datei wird dann gelöscht
    if (Test-Path -Path "E:\BackupFirefox\Firefox33p\Sicherung am.txt") {
        Remove-Item -Path "E:\BackupFirefox\Firefox33p\Sicherung am.txt" 
        }
    
    # Pause 3 Sek.
        Start-Sleep -s 3    
    
    # neue log-Datei wird geschrieben (Sicherung am.txt)
    
    # Pfad zum Ablegen der LogDatei           
        $LogPfad = "E:\BackupFirefox\Firefox33p"            
                
    # LogFile Prüfen und erstellen falls nicht vorhanden            
    if (!(Test-Path ("$LogPfad\$Datum" + "Sicherung am.txt")))            
        {            
           # Erstellen des LogFiles            
           $Logfile = (New-Item ("$LogPfad\$Datum" + "Sicherung am.txt") -ItemType File -Force).FullName            
                       
           # Überschrift für das LogFile            
           Add-Content $Logfile ("Letzte Sicherung vom Profilordner am $(get-date -Format "dddd, dd. MMMM yyyy, HH:mm:ss") Uhr`n")    
                
           # Leerzeilen einfügen            
           Add-Content $Logfile "`n`n"            
        }   
    Alles anzeigen

    Nun das zweite Script 33p_restore.ps1:

    Es prüft, ob im Fox der Profilordner vorhanden ist, löscht diesen dann, und kopiert dann den Profilordner aus dem Backup-Ordner in den Fox zurück. Auch dazu wird eine

    Log-Datei erstellt.

    Code
    # überprüft, ob Profilordner vorhanden, und löscht diesen
    if (Test-Path -Path "B:\Firefox Test\Firefox33p\Profilordner") {
        Remove-Item -Path "B:\Firefox Test\Firefox33p\Profilordner" -Force -Recurse
    }
    
    # Pause 3 Sek.
    Start-Sleep -s 3
    
    Copy-Item -Path "E:\BackupFirefox\Firefox33p\Profilordner" -Destination "B:\Firefox Test\Firefox33p\Profilordner" -Recurse
    
    # Pause 3 Sek.
    Start-Sleep -s 3
    
    # überprüft, ob Log-Datei namentlich vorhanden, vorherige log-Datei wird dann gelöscht
    if (Test-Path -Path "E:\BackupFirefox\Firefox33p\Retour am.txt") {
        Remove-Item -Path "E:\BackupFirefox\Firefox33p\Retour am.txt" 
        }
    
    # Pause 3 Sek.
        Start-Sleep -s 3
    
    # neue log-Datei wird geschrieben (Retour am.txt)
    
    # Pfad zum Ablegen der LogDatei           
        $LogPfad = "E:\BackupFirefox\Firefox33p"            
                
    # LogFile Prüfen und erstellen falls nicht vorhanden            
    if (!(Test-Path ("$LogPfad\$Datum" + "Retour am.txt")))            
        {            
           # Erstellen des LogFiles            
           $Logfile = (New-Item ("$LogPfad\$Datum" + "Retour am.txt") -ItemType File -Force).FullName            
                       
           # Überschrift für das LogFile            
           Add-Content $Logfile ("In alten Zustand versetzt am $(get-date -Format "dddd, dd. MMMM yyyy, HH:mm:ss") Uhr`n")    
                
           # Leerzeilen einfügen            
           Add-Content $Logfile "`n`n"            
        }            
    Alles anzeigen

    Das dritte Script 33p_sichern_Archiv.ps1:

    Das Script vollzieht die Schritte des ersten Scriptes, und erstellt zusätzlich im Ordner Archiv ein Archiv des aktuellen Profils. Und als zweite Sicherung wird dann dieses Archiv in einen vorher erstellten Ordner (andere Partition) kopiert.

    Code
    # überprüft, ob Profilordner vorhanden, und löscht diesen
    if (Test-Path -Path "E:\BackupFirefox\Firefox33p\Profilordner") {
        Remove-Item -Path "E:\BackupFirefox\Firefox33p\Profilordner" -Force -Recurse
    }
    
    # Pause 3 Sek.
    Start-Sleep -s 3
    
    # kopiert den aktuellen Profilordner in das vorgegebene Verzeichnis (-Recurse = mit allen Dateien und Subordnern)    
    Copy-Item -Path "B:\Firefox Test\Firefox33p\Profilordner" -Destination "E:\BackupFirefox\Firefox33p\Profilordner" -Recurse
    
    # Pause 3 Sek.
    Start-Sleep -s 3
    
    # überprüft, ob Log-Datei namentlich vorhanden, vorherige log-Datei wird dann gelöscht
    if (Test-Path -Path "E:\BackupFirefox\Firefox33p\Sicherung am.txt") {
        Remove-Item -Path "E:\BackupFirefox\Firefox33p\Sicherung am.txt" 
        }
    
    # Pause 3 Sek.
        Start-Sleep -s 3    
    
    # neue log-Datei wird geschrieben (Sicherung am.txt)
    
    # Pfad zum Ablegen der LogDatei           
        $LogPfad = "E:\BackupFirefox\Firefox33p"            
                
    # LogFile Prüfen und erstellen falls nicht vorhanden            
    if (!(Test-Path ("$LogPfad\$Datum" + "Sicherung am.txt")))            
        {            
           # Erstellen des LogFiles            
           $Logfile = (New-Item ("$LogPfad\$Datum" + "Sicherung am.txt") -ItemType File -Force).FullName            
                       
           # Überschrift für das LogFile            
           Add-Content $Logfile ("Letzte Sicherung vom Profilordner am $(get-date -Format "dddd, dd. MMMM yyyy, HH:mm:ss") Uhr`n")    
                
           # Leerzeilen einfügen            
           Add-Content $Logfile "`n`n"            
        }   
        
    # Pause 3 Sek.
        Start-Sleep -s 3        
    
    # prüft ob Ordner "Archiv" vorhanden ist / im Anschluss wird Zip-Datei in diesem Ordner erstellt (mit Datum/Zeit)
    if (Test-Path -Path "E:\BackupFirefox\Firefox33p\Archiv") {
       }
    $date = Get-Date -Format "yyyy-MM-dd  HH.mm"
        Compress-Archive -Path "B:\Firefox Test\Firefox33p\Profilordner" -CompressionLevel Optimal -DestinationPath "E:\BackupFirefox\Firefox33p\Archiv\$date.zip" 
    
    # Pause 3 Sek.
        Start-Sleep -s 3
    
    # kopiert das zuvor erstellte Archiv in das vorgegebene Verzeichnis (-Recurse = mit allen Dateien und Subordnern)
        Copy-Item -Path "E:\BackupFirefox\Firefox33p\Archiv\$date.zip"  -Destination "B:\ArchiveFirefox\Firefox33p" -Recurse            
    Alles anzeigen

    Dann befinden sich noch zwei PS-Scripte im Ordner Archiv.

    Das erste Script 33p_Archiv_sichern.ps1 sichert nur den aktuellen Profilordner aus dem Fox hier als Archiv.

    Code
    # prüft ob Ordner "Archiv" vorhanden ist / im Anschluss wird Zip-Datei in diesem Ordner erstellt (mit Datum/Zeit)
    if (Test-Path -Path "E:\BackupFirefox\Firefox33p\Archiv") {
       }
    $date = Get-Date -Format "yyyy-MM-dd  HH.mm"
        Compress-Archive -Path "B:\Firefox Test\Firefox33p\Profilordner" -CompressionLevel Optimal -DestinationPath "E:\BackupFirefox\Firefox33p\Archiv\$date.zip" 

    Das zweite Script 33p_Archiv_restore.ps1 kopiert den Profilordner wieder zurück in den Fox. Dazu einfach ein Archiv entpacken lassen (immer im Ordner Archiv), dann das Script starten, und wenn der Restore-Vorgang abgeschlossen ist, dann wird der entpackte Profil-Ordner wieder gelöscht.

    Code
    # Test der Voraussetzungen (Profilordner muss vorhanden sein - ist er es nicht, so wird das Script nach 8 Sek. beendet)  
    if (-not (Test-Path -Path "E:\BackupFirefox\Firefox33p\Archiv\Profilordner")) {
        'Profilordner nicht gefunden ... Archiv erst entpacken ... Script wird vorerst beendet ...'
        Start-Sleep -Seconds 8
        Exit
    }
    
    # Pause 3 Sek.
    Start-Sleep -s 3
    
    # überprüft, ob Profilordner vorhanden, und löscht diesen
    if (Test-Path -Path "B:\Firefox Test\Firefox33p\Profilordner") {
        Remove-Item -Path "B:\Firefox Test\Firefox33p\Profilordner" -Force -Recurse
    }
    
    # Pause 3 Sek.
    Start-Sleep -s 3
        
    # kopiert den gesicherten Profilordner in das Firefox-Verzeichnis (-Recurse = mit allen Dateien und Subordnern)
    Copy-Item -Path "E:\BackupFirefox\Firefox33p\Archiv\Profilordner" -Destination "B:\Firefox Test\Firefox33p\Profilordner" -Recurse
    
    # Pause 3 Sek.
    Start-Sleep -s 3
    
    # nach kopieren wird Profilordner im Archiv wieder gelöscht
    if (Test-Path -Path "E:\BackupFirefox\Firefox33p\Archiv\Profilordner") {
        Remove-Item -Path "E:\BackupFirefox\Firefox33p\Archiv\Profilordner" -Force -Recurse
    }
    Alles anzeigen

    Man kann also immer das auswählen, was gerade gefällt. :thumbup: :)

  • Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt.

    • FuchsFan
    • 21. Juli 2023 um 13:36
    Zitat von Mira_Belle

    und das RestoreScript?

    Wir wollen hier nicht weiter stören, ich melde mich dazu im o.g. Thema.

  • Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt.

    • FuchsFan
    • 21. Juli 2023 um 13:08
    Zitat von Mira_Belle

    Würdest Du die zur Verfügung stellen?

    Aber gerne doch!

    Beitrag

    RE: cmd-Datei umschreiben für Sicherung und Herstellung Profilordner

    […]

    Danke, habe ich mir mal angesehen, ist m.M.n. viel zu kompliziert angelegt, aber gefällt dem User ja so.

    Auf einen Hinweis von 2002Andreas habe ich das Script noch etwas erweitert. Wenn im Ordner Archiv das aktuelle Archiv der Sicherung angelegt ist, so wird es im Anschluss zusätzlich in einen zweiten Sicherungsordner kopiert (als zweite Sicherungsstufe).

    Mir (uns) gefällt das so, und ich bleibe dabei, denn es funktioniert alles reibungslos.

    (Quelltext, 60 Zeilen)

    FuchsFan
    21. April 2023 um 21:56

    Wenn Du weitere Details dazu benötigst, dann sag bitte an.


    Zitat von 2002Andreas

    Inzwischen sind es rund 13GB hier für meine wichtigen Profile

    :thumbup: :)

  • Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt.

    • FuchsFan
    • 21. Juli 2023 um 12:37
    Zitat von omar1979

    ehm.. backup? muss ich schauen wann ich zuletzt den ff-backup gemacht habe^^

    Das finde ich sehr bedauerlich, schon deshalb, weil wir ja hier verfolgen können, wie bastelwillig (komisches Wort) Du hier agierst.

    Deshalb solltest Du es zur Gewohnheit machen, in gewissen Abständen ein Backup des Profils anzulegen, oder so wie 2002Andreas vorschlägt ein Testprofil zu nutzen. Dadurch bist Du doch immer auf der sicheren Seite.

    So sieht z.B. der Backup-Ordner meines installierten Hauptprofiles aus:

  • Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt.

    • FuchsFan
    • 21. Juli 2023 um 11:22
    Zitat von omar1979

    Jetzt sind meine Vertikalezusatzleiste Links und Rechts beide weg.. :(

    Du kannst davon ausgehen, dass Dir dabei nicht wirklich jemand helfen kann. Der Grund, weil wir nicht wissen, was Du alles unternommen hast, und welche Eintragungen dazu nötig sind.

    Also gibt es nur die Möglichkeit, dass Du alle Schritte unter die Lupe nimmst, um den (die) Fehler zu finden.

    Und wie bei allen Experimenten zwingend geboten, hast Du zuvor bestimmt ein Backup gemacht, dieses wieder einsetzen, und neu beginnen (nur wenn Du keine Angst hast ;) ).

  • Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt.

    • FuchsFan
    • 20. Juli 2023 um 18:12
    Zitat von omar1979

    Anzahl Zeilen der CSS ergibt ja ca 1500 Zeilen hat mir Angst eingefügt

    Wenn ich das gewusst hätte, dass Du so ängstlich reagierst, dann wäre es eine Kleinigkeit gewesen, 800 Zeilen raus zu nehmen. ;)

    Aber Du bist doch sonst nicht so ängstlich eingestellt, wenn es um Anpassungen geht. :)

    Du brauchst es ja nicht nehmen, Dich zwingt doch niemand dazu.

  • Im ExtraConfigMenu.uc.js werden die Scripte nicht mehr angezeigt.

    • FuchsFan
    • 20. Juli 2023 um 09:00
    Zitat von omar1979

    Kannst du mal bitte dein Script hier posten?

    Das kann ich. ;)

    Du musst aber dabei beachten, dass das Script auf meine angepasste Ordnerstruktur eingerichtet wurde. Du bist also gezwungen es für Deine Verhältnisse anzupassen, das betrifft die Ordner selbst, die einzelnen Scripte, die CSS-Dateien, usw.

    Auch bei Änderungen in den Ordnern gibt es wieder Arbeit, dass alles musst Du beachten.

    So, nun genug Angst verbreitet, wenn es erst einmal fertig eingerichtet wurde, dann gibt es eigentlich keine Probleme mehr, wenn mal etwas geändert werden muss. Also frisch voran! :thumbup:

    ....das Script:

    Code
    // ==UserScript==
    // @name           Appmenu.uc.js
    // @namespace      Appmenu@gmail.com
    // @description    Basiert auf dem Script externalFuncButtonM.uc.js, Wiederherstellung der Orangenen FF-Menü Schaltfläche
    // @include        main
    // @version        update for Firefox 68+ by aborix
    // @author         defpt
    // @charset        UTF-8
    // @version        2019.08.04
    //                 ### Z.181 geändert von Toolbar in Menüleiste
    //                 zurück in Toolbar (Z.191)
    
    // abgeändert zu eigenen Zwecken / 21.07.2021 by FuchsFan
    
    // ==/UserScript==
    
    var Appmenu = {
        // Editor mit angegebenem Pfad verwenden
        editor: 'C:\\notepad++\\notepad++.exe',
    
        // in 'view_source.editor.path' eingetragenen Editor verwenden
        editor: Services.prefs.getCharPref('view_source.editor.path'),
    
        // Dateimanager mit angegebenem Pfad verwenden
        // fileManager: 'C:\\Program Files\\Total Commander\\totalcmd.exe',
    
    
        autohideEmptySubDirs: true,
        // Submenüs ohne Inhalt im Hauptmenü automatisch ausblenden
        moveSubDirstoBottom: true,
        // Submenüs im Hauptmenü nach unten verschieben
        subdirPopupHash: [],
        subdirMenuHash: [],
        toolbar: {
            // Submenüs des Hauptmenüs definieren; Separator einfügen mit {name: 'separator'}
            subdirs: [{
                name: 'Scripte',
            },
            
            {
                name: 'CSS-Dateien',
            },
            {
                name: 'CSSWeb-Dateien',
            },
            {
                name: 'CSSAbout-Dateien',
            },
            {
                name: 'Firefox Verzeichnisse',
            },
            {
                name: 'about Funktionen',
            },
            {
                name: 'Firefox Profil',
            },
            {
                name: 'Firefox Funktionen',
            }
            ],
                    
            // Scripte
            
            apps: [{
                name: 'aboutconfig-button.uc.js',
                path: '\\chrome\\aboutconfig-button.uc.js',
                subdir: 'Scripte',
            },
            {
                name: 'Adresse farbig.uc.js',
                path: '\\chrome\\Adresse farbig.uc.js',
                subdir: 'Scripte',
            },
            {
                name: 'Alle in Tabs.uc.js',
                path: '\\chrome\\Alle in Tabs.uc.js',
                subdir: 'Scripte',
            },
            {
                name: 'Appmenu.uc.js',
                path: '\\chrome\\Appmenu.uc.js',
                subdir: 'Scripte',
            },
            {
                name: 'Browser-Werkzeuge.uc.js',
                path: '\\chrome\\Browser-Werkzeuge.uc.js',
                subdir: 'Scripte',
            },
            {
                name: 'Chrome Ordner.uc.js',
                path: '\\chrome\\Chrome Ordner.uc.js',
                subdir: 'Scripte',
            },
            {
                name: 'DialogBox.uc.js',
                path: '\\chrome\\DialogBox.uc.js',
                subdir: 'Scripte',
            },
            {
                name: 'extras_config_menu.uc.js',
                path: '\\chrome\\extras_config_menu.uc.js',
                subdir: 'Scripte',
            },
            {
                name: 'Firefox beenden.uc.js',
                path: '\\chrome\\Firefox beenden.uc.js',
                subdir: 'Scripte',
            },
            {
                name: 'Firefox-Version.uc.js',
                path: '\\chrome\\Firefox-Version.uc.js',
                subdir: 'Scripte',
            },
            {
                name: 'Linke Tabs schließen.uc.js',
                path: '\\chrome\\Linke Tabs schließen.uc.js',
                subdir: 'Scripte',
            },
            {
                name: 'RestartFirefoxButton.uc.js',
                path: '\\chrome\\RestartFirefoxButton.uc.js',
                subdir: 'Scripte',
            },
            {
                name: 'saveTo104+.uc.js',
                path: '\\chrome\\saveTo104+.uc.js',
                subdir: 'Scripte',
            },
            {
                name: 'Scrollbars.uc.js',
                path: '\\chrome\\Scrollbars.uc.js',
                subdir: 'Scripte',
            },
            {
                name: 'SkipToTopAndBottom.uc.js',
                path: '\\chrome\\SkipToTopAndBottom.uc.js',
                subdir: 'Scripte',
            },
            {
                name: 'Suchleiste löschen.uc.js',
                path: '\\chrome\\Suchleiste löschen.uc.js',
                subdir: 'Scripte',
            },
            {
                name: 'Tabs runter.uc.js',
                path: '\\chrome\\Tabs runter.uc.js',
                subdir: 'Scripte',
            },
            {
                name: 'Tabs schliessen.uc.js',
                path: '\\chrome\\Tabs schliessen.uc.js',
                subdir: 'Scripte',
            },
            {
                name: 'userChromeShadow.uc.js',
                path: '\\chrome\\userChromeShadow.uc.js',
                subdir: 'Scripte',
            },
            
            
            //CSS-Dateien
            {
                name: 'userChrome.css',
                path: '\\chrome\\userChrome.css',
            },
            {
                name: 'userContent.css',
                path: '\\chrome\\userContent.css',
            },
            {
                name: 'userChromeShadow.css',
                path: '\\chrome\\userChromeShadow.css',
            },
            {
                name: 'userChrome.js',
                path: '\\chrome\\userChrome.js',
            },
            {
                name: 'prefs.js',
                path: '\\prefs.js',
                subdir: 'Firefox Profil',
            },
            {
                name: 'user.js',
                path: '\\user.js',
                subdir: 'Firefox Profil',
            },
            {
                name: 'handlers.json',
                path: '\\handlers.json',
                subdir: 'Firefox Profil',
            },
            {
                name: 'policies.json',
                path: 'D:/Alle Firefox/Firefox 3/Firefox/distribution/policies.json',
                subdir: 'Firefox Profil',
            },
            
            // Ordner CSS 
            
            // A
            {
                name: 'Abstand zwischen den Bookmarks in der Lesezeichen-Symbolleiste',
                path: '\\chrome\\CSS\\Abstand zwischen den Bookmarks in der Lesezeichen-Symbolleiste.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'Adressleiste den Text bzw URL markiert mit anderer Farbe',
                path: '\\chrome\\CSS\\Adressleiste den Text bzw URL markiert mit anderer Farbe.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'All-Tabs-Button ausblenden',
                path: '\\chrome\\CSS\\All-Tabs-Button ausblenden.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'Appmenu',
                path: '\\chrome\\CSS\\Appmenu.css',
                subdir: 'CSS-Dateien', 
            },
            
            // B
            {
                name: 'Beschriftung des Adress- und  Suchfeldes entfernt',
                path: '\\chrome\\CSS\\Beschriftung des Adress- und  Suchfeldes entfernt.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'Bibliothek und Download',
                path: '\\chrome\\CSS\\Bibliothek und Download.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'Button in Lesezeichen-Ordnern -Alle in Tabs öffnen-',
                path: '\\chrome\\CSS\\Button in Lesezeichen-Ordnern -Alle in Tabs öffnen-.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'buttons_on_navbar_classic_appearance',
                path: '\\chrome\\CSS\\buttons_on_navbar_classic_appearance.css',
                subdir: 'CSS-Dateien', 
            },
            
            // D
            {
                name: 'Dialog_über Firefox',
                path: '\\chrome\\CSS\\Dialog_über Firefox.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'Drucken-Dialog',
                path: '\\chrome\\CSS\\Drucken-Dialog.css',
                subdir: 'CSS-Dateien', 
            },
            
            // E
            {
                name: 'entfernt bei ausgeblendeter Menüleiste den Schliessen-Button rechts oben',
                path: '\\chrome\\CSS\\entfernt bei ausgeblendeter Menüleiste den Schliessen-Button rechts oben.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'Extra-Config-Menü',
                path: '\\chrome\\CSS\\Extra-Config-Menü.css',
                subdir: 'CSS-Dateien', 
            },
            
            // F
            {
                name: 'Farbe des Icons bei laufendem Download',
                path: '\\chrome\\CSS\\Farbe des Icons bei laufendem Download.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'Flexibler Leerraum (Anpassen-Menue)',
                path: '\\chrome\\CSS\\Flexibler Leerraum (Anpassen-Menue).css',
                subdir: 'CSS-Dateien', 
            },
            
            // H
            {
                name: 'Hintergrund der Nav-Bar entfernt',
                path: '\\chrome\\CSS\\Hintergrund der Nav-Bar entfernt.css',
                subdir: 'CSS-Dateien', 
            },
            
            // I
            {
                name: 'Icons gefärbt',
                path: '\\chrome\\CSS\\Icons gefärbt.css',
                subdir: 'CSS-Dateien', 
            },
            
            // L
            {
                name: 'Lautsprechersymbol im Tab',
                path: '\\chrome\\CSS\\Lautsprechersymbol im Tab.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'leerer Tab wird beim Start ausgeblendet',
                path: '\\chrome\\CSS\\leerer Tab wird beim Start ausgeblendet.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'Lesezeichen Symbolleiste Schriftfarbe',
                path: '\\chrome\\CSS\\Lesezeichen Symbolleiste Schriftfarbe.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'Lesezeichen-Favicon',
                path: '\\chrome\\CSS\\Lesezeichen-Favicon.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'Lesezeichen-Symbolleiste',
                path: '\\chrome\\CSS\\Lesezeichen-Symbolleiste.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'Linkvorschau unten links abschalten',
                path: '\\chrome\\CSS\\Linkvorschau unten links abschalten.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'Lupe und senkrechter Pfeil aus Adressfeld entfernt',
                path: '\\chrome\\CSS\\Lupe und senkrechter Pfeil aus Adressfeld entfernt.css',
                subdir: 'CSS-Dateien', 
            },
            
            // M
            {
                name: 'Megabar (URL-Bar) Anpassungen',
                path: '\\chrome\\CSS\\Megabar (URL-Bar) Anpassungen.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'Menübar',
                path: '\\chrome\\CSS\\Menübar.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'Menüleiste farbige Sternchen als Separatoren',
                path: '\\chrome\\CSS\\Menüleiste farbige Sternchen als Separatoren.css',
                subdir: 'CSS-Dateien', 
            },
            
            // O
            {
                name: 'Ordner_Weitere Lesezeichen',
                path: '\\chrome\\CSS\\Ordner_Weitere Lesezeichen.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'Ordnersymbole manuell einfärben',
                path: '\\chrome\\CSS\\Ordnersymbole manuell einfärben.css',
                subdir: 'CSS-Dateien', 
            },
            
            // P
            {
                name: 'Popup Datei speichern',
                path: '\\chrome\\CSS\\Popup Datei speichern.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'Popup Erweiterungen',
                path: '\\chrome\\CSS\\Popup Erweiterungen.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'Popup- und Kontext-Menüs',
                path: '\\chrome\\CSS\\Popup- und Kontext-Menüs.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'Popup wird ausgeblendet wenn Suche über Adressleiste erfolgt',
                path: '\\chrome\\CSS\\Popup wird ausgeblendet wenn Suche über Adressleiste erfolgt.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'Popup-Menüs bei Erweiterungen',
                path: '\\chrome\\CSS\\Popup-Menüs bei Erweiterungen.css',
                subdir: 'CSS-Dateien', 
            },
            
            // R
            {
                name: 'Rechtsklick-Kontextmenü',
                path: '\\chrome\\CSS\\Rechtsklick-Kontextmenü.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'rotierenden Tab-Throbber',
                path: '\\chrome\\CSS\\rotierenden Tab-Throbber.css',
                subdir: 'CSS-Dateien', 
            },
            
            // S
            {
                name: 'Scroll-Button in Lesezeichen-Ordner',
                path: '\\chrome\\CSS\\Scroll-Button in Lesezeichen-Ordner.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'Suche und Popup anpassen',
                path: '\\chrome\\CSS\\Suche und Popup anpassen.css',
                subdir: 'CSS-Dateien', 
            },
            
            // T
            {
                name: 'Tabbar anpassen',
                path: '\\chrome\\CSS\\Tabbar anpassen.css',
                subdir: 'CSS-Dateien', 
            },
            {
                name: 'Titlebar-Button',
                path: '\\chrome\\CSS\\Titlebar-Button.css',
                subdir: 'CSS-Dateien', 
            },
            
            // U
            {
                name: 'Unsichere Seiten mit rotem Text',
                path: '\\chrome\\CSS\\Unsichere Seiten mit rotem Text.css',
                subdir: 'CSS-Dateien', 
            },
            
            // Ordner CSSWeb
            
            {
                name: 'camp-firefox.de',
                path: '\\chrome\\CSSWeb\\camp-firefox.de.css',
                subdir: 'CSSWeb-Dateien', 
            },
            {
                name: 'certerror',
                path: '\\chrome\\CSSWeb\\certerror.css',
                subdir: 'CSSWeb-Dateien', 
            },
            {
                name: 'Eigenes Hintergrundbild verwenden',
                path: '\\chrome\\CSSWeb\\Eigenes Hintergrundbild verwenden.css',
                subdir: 'CSSWeb-Dateien', 
            },
            {
                name: 'httpsonlyerror',
                path: '\\chrome\\CSSWeb\\httpsonlyerror.css',
                subdir: 'CSSWeb-Dateien', 
            },
            {
                name: 'uBlock',
                path: '\\chrome\\CSSWeb\\uBlock.css',
                subdir: 'CSSWeb-Dateien', 
            },
            
            // Ordner CSSAbout
            
            // a
            {
                name: 'about.css',
                path: '\\chrome\\CSSAbout\\about.css',
                subdir: 'CSSAbout-Dateien', 
            },
            {
                name: 'addons.css',
                path: '\\chrome\\CSSAbout\\addons.css',
                subdir: 'CSSAbout-Dateien', 
            },
            // b
            {
                name: 'buildconfig.css',
                path: '\\chrome\\CSSAbout\\buildconfig.css',
                subdir: 'CSSAbout-Dateien', 
            },
            // c
            {
                name: 'cache.css',
                path: '\\chrome\\CSSAbout\\cache.css',
                subdir: 'CSSAbout-Dateien', 
            },
            {
                name: 'certificate.css',
                path: '\\chrome\\CSSAbout\\certificate.css',
                subdir: 'CSSAbout-Dateien', 
            },
            {
                name: 'compat.css',
                path: '\\chrome\\CSSAbout\\compat.css',
                subdir: 'CSSAbout-Dateien', 
            },
            {
                name: 'config.css',
                path: '\\chrome\\CSSAbout\\config.css',
                subdir: 'CSSAbout-Dateien', 
            },
            {
                name: 'crashes.css',
                path: '\\chrome\\CSSAbout\\crashes.css',
                subdir: 'CSSAbout-Dateien', 
            },
            // d
            {
                name: 'debugging.css',
                path: '\\chrome\\CSSAbout\\debugging.css',
                subdir: 'CSSAbout-Dateien', 
            },
            // f
            {
                name: 'firefoxview.css',
                path: '\\chrome\\CSSAbout\\firefoxview.css',
                subdir: 'CSSAbout-Dateien', 
            },
            // l
            {
                name: 'license.css',
                path: '\\chrome\\CSSAbout\\license.css',
                subdir: 'CSSAbout-Dateien', 
            },
            {
                name: 'logging.css',
                path: '\\chrome\\CSSAbout\\logging.css',
                subdir: 'CSSAbout-Dateien', 
            },
            {
                name: 'logins.css',
                path: '\\chrome\\CSSAbout\\logins.css',
                subdir: 'CSSAbout-Dateien', 
            },
            {
                name: 'loginsimportreport.css',
                path: '\\chrome\\CSSAbout\\loginsimportreport.css',
                subdir: 'CSSAbout-Dateien', 
            },
            // m
            {
                name: 'memory.css',
                path: '\\chrome\\CSSAbout\\memory.css',
                subdir: 'CSSAbout-Dateien', 
            },
            // n
            {
                name: 'networking.css',
                path: '\\chrome\\CSSAbout\\networking.css',
                subdir: 'CSSAbout-Dateien', 
            },
            // p
            {
                name: 'performance.css',
                path: '\\chrome\\CSSAbout\\performance.css',
                subdir: 'CSSAbout-Dateien', 
            },
            {
                name: 'plugins.css',
                path: '\\chrome\\CSSAbout\\plugins.css',
                subdir: 'CSSAbout-Dateien', 
            },
            {
                name: 'policies.css',
                path: '\\chrome\\CSSAbout\\policies.css',
                subdir: 'CSSAbout-Dateien', 
            },
            {
                name: 'preferences.css',
                path: '\\chrome\\CSSAbout\\preferences.css',
                subdir: 'CSSAbout-Dateien', 
            },
            {
                name: 'privatebrowsing.css',
                path: '\\chrome\\CSSAbout\\privatebrowsing.css',
                subdir: 'CSSAbout-Dateien', 
            },
            {
                name: 'processes.css',
                path: '\\chrome\\CSSAbout\\processes.css',
                subdir: 'CSSAbout-Dateien', 
            },
            {
                name: 'profiles.css',
                path: '\\chrome\\CSSAbout\\profile.css',
                subdir: 'CSSAbout-Dateien', 
            },
            {
                name: 'profiling.css',
                path: '\\chrome\\CSSAbout\\profiling.css',
                subdir: 'CSSAbout-Dateien', 
            },
            {
                name: 'protections.css',
                path: '\\chrome\\CSSAbout\\protections.css',
                subdir: 'CSSAbout-Dateien', 
            },
            // r
            {
                name: 'rights.css',
                path: '\\chrome\\CSSAbout\\rights.css',
                subdir: 'CSSAbout-Dateien', 
            },
            // s
            {
                name: 'serviceworkers.css',
                path: '\\chrome\\CSSAbout\\serviceworkers.css',
                subdir: 'CSSAbout-Dateien', 
            },
            {
                name: 'support.css',
                path: '\\chrome\\CSSAbout\\support.css',
                subdir: 'CSSAbout-Dateien', 
            },
            // t
            {
                name: 'telemetry.css',
                path: '\\chrome\\CSSAbout\\telemetry.css',
                subdir: 'CSSAbout-Dateien', 
            },
            {
                name: 'third-party.css',
                path: '\\chrome\\CSSAbout\\third-party.css',
                subdir: 'CSSAbout-Dateien', 
            },
            // u
            {
                name: 'unloads.css',
                path: '\\chrome\\CSSAbout\\unloads.css',
                subdir: 'CSSAbout-Dateien', 
            },
            {
                name: 'url-classifier.css',
                path: '\\chrome\\CSSAbout\\url-classifier.css',
                subdir: 'CSSAbout-Dateien', 
            },
            // w
            {
                name: 'webrtc.css',
                path: '\\chrome\\CSSAbout\\webrtc.css',
                subdir: 'CSSAbout-Dateien', 
            },
            {
                name: 'welcome.css',
                path: '\\chrome\\CSSAbout\\welcome.css',
                subdir: 'CSSAbout-Dateien', 
            },
            {
                name: 'welcomeback.css',
                path: '\\chrome\\CSSAbout\\welcomeback.css',
                subdir: 'CSSAbout-Dateien', 
            },
            {
                name: 'windows-messages.css',
                path: '\\chrome\\CSSAbout\\windows-messages.css',
                subdir: 'CSSAbout-Dateien', 
            },
            
            // Lokaler Pfad
            
            {
                name: 'Firefox-Ordner',
                path: 'D:/Alle Firefox/Firefox 3/Firefox',
                subdir: 'Firefox Verzeichnisse',
            },
            {
                name: 'Profilordner',
                path: '\\',
                subdir: 'Firefox Verzeichnisse',
            },
            {
                name: 'chrome',
                path: '\\chrome',
                subdir: 'Firefox Verzeichnisse',
            },
            {
                name: 'CSS-Ordner',
                path: '\\chrome\\CSS',
                subdir: 'Firefox Verzeichnisse',
            },
            {
                name: 'CSSWeb-Ordner',
                path: '\\chrome\\CSSWeb',
                subdir: 'Firefox Verzeichnisse',
            },
            {
                name: 'CSSAbout-Ordner',
                path: '\\chrome\\CSSAbout',
                subdir: 'Firefox Verzeichnisse',
            },
            {
                name: 'icons',
                path: '\\chrome\\icons',
                subdir: 'Firefox Verzeichnisse',
            },
            {
                name: 'Icons Hamburger Menü',
                path: '\\chrome\\IconsHamburger',
                subdir: 'Firefox Verzeichnisse',
            },
            {
                name: 'Icons Menü',
                path: '\\chrome\\IconsMenü',
                subdir: 'Firefox Verzeichnisse',
            },
            {
                name: 'bookmarkbackups',
                path: '\\bookmarkbackups',
                subdir: 'Firefox Verzeichnisse',
            },
            {
                name: 'Erweiterungen',
                path: '\\extensions',
                subdir: 'Firefox Verzeichnisse',
            },
            {
                name: 'FoxIcons',
                path: 'C:/FoxIcons',
                subdir: 'Firefox Verzeichnisse',
            },
            {
                name: 'FoxIcons2',
                path: 'C:/FoxIcons2',
                subdir: 'Firefox Verzeichnisse',
            },
            {
                name: 'FoxBilder',
                path: 'C:/FoxBilder',
                subdir: 'Firefox Verzeichnisse',
            },
            {
                name: 'Download Firefox',
                path: 'D:/Download Firefox',
                subdir: 'Firefox Verzeichnisse',
            },
            {
                name: 'Desktop',
                path: 'C:/Users/baldm/Desktop/Ablage',
                subdir: 'Firefox Verzeichnisse',
            }                
            ],
                    
            // Firefox Funktionen definieren
            
            //about Funktionen
            configs: [
            
            {
                name: 'about:config',
                command: "openTrustedLinkIn('about:config', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:about',
                command: "openTrustedLinkIn('about:about', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:addons',
                command: "openTrustedLinkIn('about:addons', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:buildconfig',
                command: "openTrustedLinkIn('about:buildconfig', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:cache',
                command: "openTrustedLinkIn('about:cache', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:certificate',
                command: "openTrustedLinkIn('about:certificate', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:compat',
                command: "openTrustedLinkIn('about:compat', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:crashes',
                command: "openTrustedLinkIn('about:crashes', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:debugging',
                command: "openTrustedLinkIn('about:debugging', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:license',
                command: "openTrustedLinkIn('about:license', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:logins',
                command: "openTrustedLinkIn('about:logins', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:loginsimportreport',
                command: "openTrustedLinkIn('about:loginsimportreport', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:logging',
                command: "openTrustedLinkIn('about:logging', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:memory',
                command: "openTrustedLinkIn('about:memory', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:networking',
                command: "openTrustedLinkIn('about:networking', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:performance',
                command: "openTrustedLinkIn('about:performance', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:policies',
                command: "openTrustedLinkIn('about:policies', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:plugins',
                command: "openTrustedLinkIn('about:plugins', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:preferences',
                command: "openTrustedLinkIn('about:preferences', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:privatebrowsing',
                command: "openTrustedLinkIn('about:privatebrowsing', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:processes',
                command: "openTrustedLinkIn('about:processes', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:profiles',
                command: "openTrustedLinkIn('about:profiles', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:profiling',
                command: "openTrustedLinkIn('about:profiling', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:protections',
                command: "openTrustedLinkIn('about:protections', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:rights',
                command: "openTrustedLinkIn('about:rights', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:serviceworkers',
                command: "openTrustedLinkIn('about:serviceworkers', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:support',
                command: "openTrustedLinkIn('about:support', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:telemetry',
                command: "openTrustedLinkIn('about:telemetry', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:third-party',
                command: "openTrustedLinkIn('about:third-party', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:url-classifier',
                command: "openTrustedLinkIn('about:url-classifier', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:webrtc',
                command: "openTrustedLinkIn('about:webrtc', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:welcome',
                command: "openTrustedLinkIn('about:welcome', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:welcomeback',
                command: "openTrustedLinkIn('about:welcomeback', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            {
                name: 'about:windows-messages',
                command: "openTrustedLinkIn('about:windows-messages', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'about Funktionen',
            },
            
            // Untermenü Firefox Funktionen
            
            {
                name: 'Lesezeichen-Verwaltung',
                command: "PlacesCommandHook.showPlacesOrganizer('AllBookmarks');",
                subdir: 'Firefox Funktionen',
            },
            {
                name: 'Chronik',
                command: "PlacesCommandHook.showPlacesOrganizer('History');",
                subdir: 'Firefox Funktionen',
            },
            {
                name: 'Chronik löschen',
                command: "Sanitizer.showUI(window);",
                subdir: 'Firefox Funktionen',
            },
            {
                name: 'Downloads',
                command: "BrowserDownloadsUI();",
                subdir: 'Firefox Funktionen',
            },
            {
                name: 'Seite speichern unter...',
                command: "saveBrowser(gBrowser.selectedBrowser)",
                subdir: 'Firefox Funktionen',
            },
            {
                name: 'Neustart im abgesicherten Modus',
                subdir: 'Firefox Funktionen',
                command: "safeModeRestart();",
            },
            {
                name: 'about:config',
                subdir: 'Firefox Funktionen',
                command: "openTrustedLinkIn('about:config', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
            },
            {
                name: 'Einstellungen',
                command: "openPreferences();",
                subdir: 'Firefox Funktionen',
            },
            {
                name: 'Add-ons',
                command: "openTrustedLinkIn('about:addons', gBrowser.selectedTab.isEmpty ? 'current' : 'tab')",
                subdir: 'Firefox Funktionen',
            },            
            {
                name: 'Browser-Werkzeuge',
                subdir: 'Firefox Funktionen',
                command: "var { require } = Cu.import('resource://devtools/shared/loader/Loader.jsm', {});\
                          var { BrowserToolboxLauncher } = require('resource://devtools/client/framework/browser-toolbox/Launcher.jsm');\
                          BrowserToolboxLauncher.init();",
            },
            {
                name: 'Restart Firefox',
                subdir: 'Firefox Funktionen',
                command: 'if (event.button == 0) { \
                          Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); \
                          }; \
                          if (event.button == 1 || event.button == 2) { \
                          Services.appinfo.invalidateCachesOnRestart(); \
                          Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); \
            };'
            },
    
            
               
            /* {
                name: 'separator'
            }, */
            ]
        },
        _externalAppPopup: null,
        _isready: false,
        init: function() {
            var isUrlbar = 1;  // 0: TabsToolbar; 1: navbar
            this.handleRelativePath(this.toolbar.apps);
            const XULNS = 'http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul';
    
            
            var ExternalAppBtn = document.createElementNS(XULNS, 'toolbarbutton');
            ExternalAppBtn.id = "AppMenuButton";
            ExternalAppBtn.setAttribute("label", "AppButton");
            ExternalAppBtn.setAttribute("onclick", "event.preventDefault();event.stopPropagation();");
            ExternalAppBtn.setAttribute("tooltiptext", "Firefox Menü");
            ExternalAppBtn.setAttribute("type", "menu");
            ExternalAppBtn.setAttribute("removable", "true");
    
            if (isUrlbar) {
                document.getElementById("nav-bar-customization-target").appendChild(ExternalAppBtn);
                ExternalAppBtn.style.listStyleImage = "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAAAUCAYAAAAwaEt4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAF3SURBVFhH7ZUxS8RAEIX9M1fb29vb+wP8AdaCYCVY2FmInY1YWmlrp7WtNp6ihyKKCDYrb7kPxsuMJiG5CO6DR5LZmd2Zl9ndhduNUSqssggTsAgTsAgTsAgTsLEw71enyYPGHvZW8vvHzUUlrinvd5e/reX59Mk/K8zn5DrPBTyfPtlamOeTTXe8K4LHg1V3vG92KgwdI2ADT8fr+UmcfNVZ4OVspzIH0Joau9teSq/n+1Nryl1l8yA3/LUdgWLxq8NOthKJ/CQMUCE2YQuJEwkz3lqsbC+AOCoeaB5y1U8hn7qcmzB0hArkr79dHuVvhFLhs3GaU9+Tw7WpJWV/2SQIIA4bIpJbU85tK1Gg6IkLojgKtoV664kWbc+oQYRRpwh0DHZLQJztGM6LOh3T9oYcRBjrZ2F9ADYJGIFcZg9bxPFy/Y2DCCOqxe2tpHd7cwAbp3G6TVDh9mBlPp1h+va6rC4bC/NfWIQJWIQJWIQJWIRxOUpfQ+jqXwPuQ7IAAAAASUVORK5CYII=)";
            } else {
                ExternalAppBtn.style.listStyleImage = "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAAAUCAYAAAAwaEt4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAF3SURBVFhH7ZUxS8RAEIX9M1fb29vb+wP8AdaCYCVY2FmInY1YWmlrp7WtNp6ihyKKCDYrb7kPxsuMJiG5CO6DR5LZmd2Zl9ndhduNUSqssggTsAgTsAgTsAgTsLEw71enyYPGHvZW8vvHzUUlrinvd5e/reX59Mk/K8zn5DrPBTyfPtlamOeTTXe8K4LHg1V3vG92KgwdI2ADT8fr+UmcfNVZ4OVspzIH0Joau9teSq/n+1Nryl1l8yA3/LUdgWLxq8NOthKJ/CQMUCE2YQuJEwkz3lqsbC+AOCoeaB5y1U8hn7qcmzB0hArkr79dHuVvhFLhs3GaU9+Tw7WpJWV/2SQIIA4bIpJbU85tK1Gg6IkLojgKtoV664kWbc+oQYRRpwh0DHZLQJztGM6LOh3T9oYcRBjrZ2F9ADYJGIFcZg9bxPFy/Y2DCCOqxe2tpHd7cwAbp3G6TVDh9mBlPp1h+va6rC4bC/NfWIQJWIQJWIQJWIRxOUpfQ+jqXwPuQ7IAAAAASUVORK5CYII=)"; 
                var TabsToolbar = document.getElementById("nav-bar");
                TabsToolbar.insertBefore(ExternalAppBtn, TabsToolbar.firstChild);
            }
    
            var ExternalAppPopup = document.createElementNS(XULNS, 'menupopup');
            //ExternalAppPopup.setAttribute('onpopupshowing', 'event.stopPropagation(); Appmenu.onpopupshowing();');
            ExternalAppPopup.setAttribute('id', 'AMpopup');
            this._externalAppPopup = ExternalAppPopup;
            ExternalAppBtn.appendChild(ExternalAppPopup);
            Appmenu.onpopupshowing();
        },
    
        onpopupshowing: function() {
            if (this._isready)
                return;
            if (this._externalAppPopup === null)
                return;
            var ExternalAppPopup = this._externalAppPopup;
            for (let subdir of this.toolbar.subdirs) {
                if (subdir.name == 'separator') {
                    ExternalAppPopup.appendChild(document.createXULElement('menuseparator'));
                } else {
                    var subdirItem = ExternalAppPopup.appendChild(document.createXULElement('menu'));
                    var subdirItemPopup = subdirItem.appendChild(document.createXULElement('menupopup'));
                    subdirItem.setAttribute('class', 'menu-iconic');
                    subdirItem.setAttribute('label', subdir.name);
                    subdirItem.setAttribute('image', subdir.image);
                    Appmenu.subdirPopupHash[subdir.name] = subdirItemPopup;
                    Appmenu.subdirMenuHash[subdir.name] = subdirItem;
                }
            } 
    
            for (let app of this.toolbar.apps) {
                var appItem;
                if (app.name == 'separator') {
                    appItem = document.createXULElement('menuseparator');
                } else {
                    appItem = document.createXULElement('menuitem');
                    appItem.setAttribute('class', 'menuitem-iconic');
                    appItem.setAttribute('label', app.name);
                    appItem.setAttribute('image', app.image);
                    appItem.setAttribute('oncommand', "Appmenu.exec(this.path, this.args);");
                    appItem.setAttribute('tooltiptext', app.name);
                    appItem.path = app.path;
                    appItem.args = app.args;
                }
                if (app.subdir && Appmenu.subdirPopupHash[app.subdir])
                    Appmenu.subdirPopupHash[app.subdir].appendChild(appItem);
                else ExternalAppPopup.appendChild(appItem);
            }
            
            for (let config of this.toolbar.configs) {
                var configItem;
                if (config.name == 'separator') {
                    configItem = document.createXULElement('menuseparator');
                } else {
                    configItem = ExternalAppPopup.appendChild(document.createXULElement('menuitem'));
                    configItem.setAttribute('class', 'menuitem-iconic');
                    configItem.setAttribute('label', config.name);
                    configItem.setAttribute('image', config.image);
                    configItem.setAttribute('oncommand', config.command);
                    configItem.setAttribute('tooltiptext', config.name);
                    configItem.setAttribute('id', config.id);
                }
                if (config.subdir && Appmenu.subdirPopupHash[config.subdir]) {
                    Appmenu.subdirPopupHash[config.subdir].appendChild(configItem);
                } else {
                    ExternalAppPopup.appendChild(configItem);
                }
            }
    
            if (this.autohideEmptySubDirs) {
                for (let i = 0; i < Appmenu.subdirPopupHash.length; i++) {
                    if (Appmenu.subdirPopupHash[i].hasChildNodes()) {
                        continue;
                    } else {
                        Appmenu.subdirMenuHash[i].setAttribute("hidden", "true");
                    }
                }
            }
    
            if (this.moveSubDirstoBottom) {
                let i = ExternalAppPopup.childNodes.length;
                while (ExternalAppPopup.firstChild.getAttribute('class') != 'menuitem-iconic' && i-- != 0) {
                    ExternalAppPopup.appendChild(ExternalAppPopup.firstChild);
                }
            }
            this._isready = true;
        },
    
        handleRelativePath: function(apps) {
            for (let app of apps) {
                if (app.path) {
                    app.path = app.path.replace(/\//g, '\\');
                    var ffdir = Cc['@mozilla.org/file/directory_service;1'].getService(Ci.nsIProperties).get("ProfD", Ci.nsIFile).path;
                    if (/^(\\)/.test(app.path)) {
                        app.path = ffdir + app.path;
                    }
                }
            }
        },
    
        exec: function(path, args) {
            args = args || [];
            var args_t = args.slice(0);
            for (let arg of args_t) {
                arg = arg.replace(/%u/g, gBrowser.currentURI.spec);
            }
            var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
            file.initWithPath(path);
            if (!file.exists()) {
                //Cu.reportError('Datei nicht gefunden: ' + path);
                alert('Datei nicht gefunden: ' + path);
                return;
            }
            if (file.isExecutable() && !path.endsWith('.js')) {
                var process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess);
                process.init(file);
                process.run(false, args_t, args_t.length);
            } else if (file.isFile()) {
                if (this.editor) {
                    let UI = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter);
                    UI.charset = window.navigator.platform.toLowerCase().includes('win') ? 'Shift_JIS' : 'UTF-8';
                    let path = UI.ConvertFromUnicode(file.path);
                    let app = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
                    app.initWithPath(this.editor);
                    let process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess);
                    process.init(app);
                    process.run(false, [path], 1);
                } else {
                    file.launch();
                }
            } else if (file.isDirectory()) {
                if (this.fileManager) {
                    let app = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
                    app.initWithPath(this.fileManager);
                    let process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess);
                    process.init(app);
                    process.run(false, [path], 1);
                } else {
                    file.launch();
                }
            }
        },
    };
    
    if (window.gBrowser)
        Appmenu.init();
    Alles anzeigen

    ....für die Icons die speziell angepasste CSS-Datei:

    CSS
    /* appmenü.css */
    
    
    /*Button rechts in der Nav-bar */
    #AppMenuButton { 
      appearance: unset !important;
      padding-left: 7px !important;
      padding-right: 7px !important;
      margin: 5.5px 0 5.5px 0 !important;
      background-image: unset !important;
      background-color: unset !important;
      background: rgba(151,152,153,.05) linear-gradient(rgba(251,252,253,.95), rgba(246,247,248,.47) 49%, 
                  rgba(231,232,233,.45) 51%, rgba(225,226,229,.3)) !important;
      appearance: none !important;
      border: 1px solid dodgerblue !important;
      border-radius: 4px !important;
      color: red !important;
    }
    
    #AppMenuButton:hover { 
      appearance: unset !important;
      padding-left: 7px !important;
      padding-right: 7px !important;
      margin: 5.5px 0 5.5px 0 !important;
      background-image: unset !important;
      background-color: unset !important;
      background: #b3b3b3 /* #ACBDD7 */ /* unset */ !important;
      box-shadow:    inset 0 2px white,
                    inset 0 -2px #808080,
                    inset 2px 0 white,
                    inset -2px 0 #808080 !important;
      appearance: none !important;
      border-radius: 0 !important;
    }
    
    
    /* Text in den Menüs nach links verlagert */
    #nav-bar.browser-toolbar toolbarbutton#AppMenuButton menupopup#AMpopup menu.menu-iconic hbox.menu-iconic-left {
        margin-left: -20px !important;
    }
    
    /* Text in Sub-Menüs bei Hover */
    #AppMenuButton menupopup#AMpopup menu.menu-iconic menupopup menuitem.menuitem-iconic:hover label.menu-iconic-text {
        font-weight: 700 !important;
        color: brown !important;
    }
    
    /*==== Icons für alle Menüs ====*/
    
    /* Scripte */
    #AppMenuButton menupopup#AMpopup > menu:nth-child(5){    
        background-image: url("..//icons/scripte.png") !important;
        background-repeat: no-repeat !important;
        background-position: 10px 4px !important;
        background-size: 16px 16px !important; 
    }
    
    /* Sub-Menü zu "Scripte" */
    #AppMenuButton menupopup#AMpopup > menu:nth-child(5) > menupopup:nth-child(6) > menuitem:nth-child(n+1){    
        background-image: url("..//icons/submenu.png") !important;
        background-repeat: no-repeat !important;
        background-position: 12px 4px !important;
        background-size: 16px 16px !important; 
    }
    
    /* css unter chrome */
    #AppMenuButton menupopup#AMpopup > menuitem:nth-child(1),
    #AppMenuButton menupopup#AMpopup > menuitem:nth-child(2),
    #AppMenuButton menupopup#AMpopup > menuitem:nth-child(3) {
        background-image: url("..//icons/css8.png") !important;
        background-repeat: no-repeat !important;
        background-position: 35px 2px !important;
        background-size: 17px 18px !important; 
    }
    
    /* userChrome.js */
    #AppMenuButton menupopup#AMpopup > menuitem:nth-child(4) {
        background-image: url("..//icons/zertifikate.png") !important;
        background-repeat: no-repeat !important;
        background-position: 35px 3px !important;
        background-size: 16px 16px !important; 
    }
    
    /* Icons der restlichen CSS-Ordner */
    #AppMenuButton menupopup#AMpopup > menu:nth-child(6),
    #AppMenuButton menupopup#AMpopup > menu:nth-child(7),
    #AppMenuButton menupopup#AMpopup > menu:nth-child(8) {
        background-image: url("..//icons/css1.png") !important;
        background-repeat: no-repeat !important;
        background-position: 8px 4px !important;
        background-size: 17px 17px !important; 
    }
    
    /* Sub-Menü zu "CSS-Dateien" */
    #AppMenuButton menupopup#AMpopup > menu:nth-child(6) > menupopup:nth-child(6) > menuitem:nth-child(n+1) {    
        background-image: url("..//icons/cssjs.png") !important;
        background-repeat: no-repeat !important;
        background-position: 10px 3px !important;
        background-size: 17px 16px !important; 
    }
    
    /* Sub-Menü zu "CSSWeb-Dateien" */
    #AppMenuButton menupopup#AMpopup > menu:nth-child(7) > menupopup:nth-child(6) > menuitem:nth-child(n+1) {    
        background-image: url("..//icons/css2.png") !important;
        background-repeat: no-repeat !important;
        background-position: 10px 3px !important;
        background-size: 17px 16px !important; 
    }
    
    /* Sub-Menü zu "CSSAbout-Dateien" */
    #AppMenuButton menupopup#AMpopup > menu:nth-child(8) > menupopup:nth-child(6) > menuitem:nth-child(n+1) {    
        background-image: url("..//icons/aboutsubmenu.png") !important;
        background-repeat: no-repeat !important;
        background-position: 10px 3px !important;
        background-size: 17px 16px !important; 
    }
    
    /* ENDE */
    
    /* Firefox Verzeichnisse */
    #AppMenuButton menupopup#AMpopup > menu:nth-child(9) {    
        background-image: url("..//icons/Bild12.png") !important;
        background-repeat: no-repeat !important;
        background-position: 8px 4px !important;
        background-size: 17px 17px !important; 
    }
    
    /*==== Sub-Menü zu "Firefox Verzeichnisse" ====*/
    
    /* Firefox-Ordner */
    #AppMenuButton menupopup#AMpopup > menu:nth-child(9) > menupopup:nth-child(6) > menuitem:nth-child(1) {    
        background-image: url("..//icons/Finale.png") !important;
        background-repeat: no-repeat !important;
        background-position: 9px 3px !important;
        background-size: 17px 17px !important; 
    }
    
    /* Profilordner */
    #AppMenuButton menupopup#AMpopup > menu:nth-child(9) > menupopup:nth-child(6) > menuitem:nth-child(2) {    
        background-image: url("..//icons/list.png") !important;
        background-repeat: no-repeat !important;
        background-position: 10px 3px !important;
        background-size: 17px 17px !important; 
    }
    
    /* chrome */
    #AppMenuButton menupopup#AMpopup > menu:nth-child(9) > menupopup:nth-child(6) > menuitem:nth-child(3) {    
        background-image: url("..//icons/chrome.png") !important;
        background-repeat: no-repeat !important;
        background-position: 10px 3px !important;
        background-size: 17px 17px !important; 
    }
    
    /* Ordner CSS/CSSWeb/CSSAbout */
    #AppMenuButton menupopup#AMpopup > menu:nth-child(9) > menupopup:nth-child(6) > menuitem:nth-child(4),
    #AppMenuButton menupopup#AMpopup > menu:nth-child(9) > menupopup:nth-child(6) > menuitem:nth-child(5),
    #AppMenuButton menupopup#AMpopup > menu:nth-child(9) > menupopup:nth-child(6) > menuitem:nth-child(6) {    
        background-image: url("..//icons/css10.png") !important;
        background-repeat: no-repeat !important;
        background-position: 10px 3px !important;
        background-size: 19px 19px !important; 
    }
    
    /* alle Ordner icons */
    #AppMenuButton menupopup#AMpopup > menu:nth-child(9) > menupopup:nth-child(6) > menuitem:nth-child(7),
    #AppMenuButton menupopup#AMpopup > menu:nth-child(9) > menupopup:nth-child(6) > menuitem:nth-child(8),
    #AppMenuButton menupopup#AMpopup > menu:nth-child(9) > menupopup:nth-child(6) > menuitem:nth-child(9) {    
        background-image: url("..//icons/ordner.png") !important;
        background-repeat: no-repeat !important;
        background-position: 9px 3px !important;
        background-size: 18px 18px !important; 
    }
    
    /* bookmarkbackups-Ordner */
    #AppMenuButton menupopup#AMpopup > menu:nth-child(9) > menupopup:nth-child(6) > menuitem:nth-child(10) {    
        background-image: url("..//icons/Bild73.png") !important;
        background-repeat: no-repeat !important;
        background-position: 9px 3px !important;
        background-size: 17px 17px !important; 
    }
    
    /* Erweiterungen */
    #AppMenuButton menupopup#AMpopup > menu:nth-child(9) > menupopup:nth-child(6) > menuitem:nth-child(11) {    
        background-image: url("..//icons/Bild33.png") !important;
        background-repeat: no-repeat !important;
        background-position: 9px 3px !important;
        background-size: 17px 17px !important; 
    }
    
    /* C: FoxIcons */
    #AppMenuButton menupopup#AMpopup > menu:nth-child(9) > menupopup:nth-child(6) > menuitem:nth-child(12) {    
        background-image: url("..//icons/icon1.png") !important;
        background-repeat: no-repeat !important;
        background-position: 10px 3px !important;
        background-size: 17px 17px !important; 
    }
    
    /* C: FoxIcons2 */
    #AppMenuButton menupopup#AMpopup > menu:nth-child(9) > menupopup:nth-child(6) > menuitem:nth-child(13) {    
        background-image: url("..//icons/icon1.png") !important;
        background-repeat: no-repeat !important;
        background-position: 10px 3px !important;
        background-size: 17px 17px !important; 
    }
    
    /* C: FoxBilder */
    #AppMenuButton menupopup#AMpopup > menu:nth-child(9) > menupopup:nth-child(6) > menuitem:nth-child(14) {    
        background-image: url("..//icons/icon2.png") !important;
        background-repeat: no-repeat !important;
        background-position: 10px 3px !important;
        background-size: 17px 17px !important; 
    }
    
    /* D: Download Firefox */
    #AppMenuButton menupopup#AMpopup > menu:nth-child(9) > menupopup:nth-child(6) > menuitem:nth-child(15) {    
        background-image: url("..//icons/downloads3.png") !important;
        background-repeat: no-repeat !important;
        background-position: 11px 3px !important;
        background-size: 17px 17px !important; 
    }
    
    /* Desktop/ Ablage */
    #AppMenuButton menupopup#AMpopup > menu:nth-child(9) > menupopup:nth-child(6) > menuitem:nth-child(16) {    
        background-image: url("..//icons/005.png") !important;
        background-repeat: no-repeat !important;
        background-position: 11px 3px !important;
        background-size: 17px 17px !important; 
    }
    
    /* ENDE */
    
    
    /* about Funktionen */
    #AppMenuButton menupopup#AMpopup menu.menu-iconic:nth-child(10) {
        background-image: url("..//icons/about.png") !important;
        background-repeat: no-repeat !important;
        background-position: 8px 2px !important;
        background-size: 18px 18px !important; 
    }
    
    /*==== Sub-Menü zu "about Funktionen" ====*/
    
    #AppMenuButton menupopup#AMpopup menu.menu-iconic:nth-child(10) > menupopup:nth-child(6) > menuitem:nth-child(n+1) {
        background-image: url("..//icons/image.png") !important;
        background-repeat: no-repeat !important;
        background-position: 8px 3px !important;
        background-size: 16px 16px !important; 
    }
        
    /* ENDE */
    
    /* Firefox Profil */
    #AppMenuButton menupopup#AMpopup menu.menu-iconic:nth-child(11) {
    /* menu.menu-iconic:nth-child(11) { */    
        background-image: url("..//icons/profil.png") !important;
        background-repeat: no-repeat !important;
        background-position: 8px 4px !important;
        background-size: 17px 17px !important; 
    }
    
    /*==== Sub-Menü zu "Firefox Profil" ====*/
    
    /* prefs.js */
    #AppMenuButton menupopup#AMpopup menu.menu-iconic:nth-child(11) > menupopup:nth-child(6) > menuitem:nth-child(1) {
        background-image: url("..//icons/prefs.png") !important;
        background-repeat: no-repeat !important;
        background-position: 8px 4px !important;
        background-size: 17px 17px !important; 
    }
    /* user.js */
    #AppMenuButton menupopup#AMpopup menu.menu-iconic:nth-child(11) > menupopup:nth-child(6) > menuitem:nth-child(2) {
        background-image: url("..//icons/user.png") !important;
        background-repeat: no-repeat !important;
        background-position: 8px 4px !important;
        background-size: 17px 17px !important; 
    }
    /* handlers.json */
    #AppMenuButton menupopup#AMpopup menu.menu-iconic:nth-child(11) > menupopup:nth-child(6) > menuitem:nth-child(3) {
        background-image: url("..//icons/Bild48.gif") !important;
        background-repeat: no-repeat !important;
        background-position: 8px 3px !important;
        background-size: 16px 16px !important; 
    }
    /* policies.json */
    #AppMenuButton menupopup#AMpopup menu.menu-iconic:nth-child(11) > menupopup:nth-child(6) > menuitem:nth-child(4) {
        background-image: url("..//icons/Bild48.gif") !important;
        background-repeat: no-repeat !important;
        background-position: 8px 3px !important;
        background-size: 16px 16px !important; 
    }
    
    /* ENDE */
    
    /* Firefox Funktionen */
    #AppMenuButton menupopup#AMpopup menu.menu-iconic:nth-child(12){
        background-image: url("..//icons/Fuchs2.png") !important;
        background-repeat: no-repeat !important;
        background-position: 8px 4px !important;
        background-size: 17px 17px !important; 
    }
    
    /*==== Sub-Menü zu "Firefox Funktionen" ====*/
    
    #AppMenuButton menupopup#AMpopup menu.menu-iconic:nth-child(12) > menupopup:nth-child(6) > menuitem:nth-child(1) {
        background-image: url("..//icons/Bild36.png") !important;
        background-repeat: no-repeat !important;
        background-position: 8px 3px !important;
        background-size: 17px 17px !important; 
    }
    
    #AppMenuButton menupopup#AMpopup menu.menu-iconic:nth-child(12) > menupopup:nth-child(6) > menuitem:nth-child(2) {
        background-image: url("..//icons/0111.png") !important;
        background-repeat: no-repeat !important;
        background-position: 8px 3px !important;
        background-size: 15px 15px !important; 
    }
    
    /* Icon wird aus Kontextmenu-Rechtsklick.css angezeigt */
    #AppMenuButton menupopup#AMpopup menu.menu-iconic:nth-child(12) > menupopup:nth-child(6) > menuitem:nth-child(3) {
        background-image: url("..//icons/004.png") !important;
        background-repeat: no-repeat !important;
        background-position: 8px 4px !important;
        background-size: 15px 15px !important; 
    }
    
    #AppMenuButton menupopup#AMpopup menu.menu-iconic:nth-child(12) > menupopup:nth-child(6) > menuitem:nth-child(4) {
        background-image: url("..//icons/07035.png") !important;
        background-repeat: no-repeat !important;
        background-position: 8px 3px !important;
        background-size: 17px 17px !important; 
    }
    
    #AppMenuButton menupopup#AMpopup menu.menu-iconic:nth-child(12) > menupopup:nth-child(6) > menuitem:nth-child(5) {
        background-image: url("..//icons/Bild152.png") !important;
        background-repeat: no-repeat !important;
        background-position: 8px 3px !important;
        background-size: 17px 17px !important; 
    }
    
    #AppMenuButton menupopup#AMpopup menu.menu-iconic:nth-child(12) > menupopup:nth-child(6) > menuitem:nth-child(6) {
        background-image: url("..//icons/abgesichert.png") !important;
        background-repeat: no-repeat !important;
        background-position: 8px 3px !important;
        background-size: 17px 17px !important; 
    }
    
    #AppMenuButton menupopup#AMpopup menu.menu-iconic:nth-child(12) > menupopup:nth-child(6) > menuitem:nth-child(7) {
        background-image: url("..//icons/image.png") !important;
        background-repeat: no-repeat !important;
        background-position: 8px 3px !important;
        background-size: 15px 15px !important; 
    }
    
    #AppMenuButton menupopup#AMpopup menu.menu-iconic:nth-child(12) > menupopup:nth-child(6) > menuitem:nth-child(8) {
        background-image: url("..//icons/0404.png") !important;
        background-repeat: no-repeat !important;
        background-position: 8px 4px !important;
        background-size: 16px 16px !important; 
    }
    
    #AppMenuButton menupopup#AMpopup menu.menu-iconic:nth-child(12) > menupopup:nth-child(6) > menuitem:nth-child(9) {
        background-image: url("..//icons/Bild121.png") !important;
        background-repeat: no-repeat !important;
        background-position: 9px 3px !important;
        background-size: 15px 15px !important; 
    }
    
    #AppMenuButton menupopup#AMpopup menu.menu-iconic:nth-child(12) > menupopup:nth-child(6) > menuitem:nth-child(10) {
        background-image: url("..//icons/werkzeug.png") !important;
        background-repeat: no-repeat !important;
        background-position: 8px 3px !important;
        background-size: 16px 16px !important; 
    }
    
    #AppMenuButton menupopup#AMpopup menu.menu-iconic:nth-child(12) > menupopup:nth-child(6) > menuitem:nth-child(11) {
        background-image: url("..//icons/panel10.png") !important;
        background-repeat: no-repeat !important;
        background-position: 10px 3px !important;
        background-size: 15px 15px !important; 
        margin: 4px 0 0 0 !important;
    }
    
    /* ENDE */
    Alles anzeigen
  • About Seiten mit CSS Codes anpassen

    • FuchsFan
    • 18. Juli 2023 um 19:16
    Zitat von 2002Andreas

    Teste bitte:

    Ich grüße Dich! :)

    Du wirst es nicht glauben, aber den hatte ich auch so verwendet, ohne Wirkung. :/

    Aber es funktioniert mit dem Selektor (den nehmen wir), da habe ich wohl einen Fehler produziert. :rolleyes:

    Danke! :thumbup:

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