Das nützt ja nichts, wenn die Scripte darin nicht angezeigt werden.
Danke trotzdem.
Das nützt ja nichts, wenn die Scripte darin nicht angezeigt werden.
Danke trotzdem.
Ich sagte ja bereits, da müssen noch mehr Einträge zusätzlich eingefügt werden.
Ich sagte ja bereits, da müssen noch mehr Einträge zusätzlich eingefügt werden.
Ja hast du.
Edit:
Oder Du freundest dich mit dem Script Appmenu.uc.js an. Der Nachteil hier, dass jede Veränderung im Inhalt der Ordner (Scripte, Css, usw.) selbst nachgetragen werden muss. Vorteil: Hier kannst du Ordner anlegen, so wie es dir passt. Wenn Interesse besteht, dann stelle ich mal mein Script zur Verfügung.
Kannst du mal bitte dein Script hier posten? Ich teste es mal und wenn ich es verstehe, kann ich es ja benützen.
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!
....das Script:
// ==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:
/* 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
So, nun genug Angst verbreitet,
Erstmal besten Dank.
Nicht du aber das Script (Anzahl Zeilen) mit dem Anzahl Zeilen der CSS ergibt ja ca 1500 Zeilen hat mir Angst eingefügt, sodas ich mir überlege, doch das andere Script weiterzubenützen.
Ich poste mal das Script, das ich benütze hier rein mit der Hoffnung, dass vielleicht aborix Zeit und Lust hat, es so zu gestalten, dass man die Scripte in einem Unterordner verschieben kann und sie dennoch angezeigt werden.
// ==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: '',
// 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","Meine 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:
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);
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", "Meine 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
dass vielleicht
Er war im Mai zuletzt hier im Forum
Ich hoffe mal, es geht ihm gut.
Ich hoffe mal, es geht ihm gut.
Ja hoffe es auch. Die Gesundheit ist das was zählt.
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.
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.
Das Problem ist, ich habe null Ahnung von JavaScript und CSS. Ich weiss nicht, ob man in deinem Script auch grosse Änderungen machen muss oder nicht.
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.
Das Problem ist, ich habe null Ahnung von JavaScript und CSS. Ich weiss nicht, ob man in deinem Script auch grosse Änderungen machen muss oder nicht.
Am Skript selber, bzw. dessen Code musst Du doch gar nichts ändern!
Wo nach Du nur schauen musst ist der CSS-Teil, den musst Du Dir anschauen
und vergleichen, ob Du eben jene Datei auch hast, und ob Du sie aufrufen möchtest.
Und dann musst Du nur den Pfad abgleichen und gegebenenfalls Deinem angleichen.
Am Skript selber, bzw. dessen Code musst Du doch gar nichts ändern!
Du bist also gezwungen es für Deine Verhältnisse anzupassen, das betrifft die Ordner selbst, die einzelnen Scripte, die CSS-Dateien, usw.
Z.B.:
Ab Zeile 37 - > die eigenen Bezeichnungen eintragen.
Ab Zeile 63 - > die eigenen Skripte eintragen.
Und dann noch die div. CSS Dateien, usw.
Alles anzeigenAm Skript selber, bzw. dessen Code musst Du doch gar nichts ändern!
Du bist also gezwungen es für Deine Verhältnisse anzupassen, das betrifft die Ordner selbst, die einzelnen Scripte, die CSS-Dateien, usw.
Z.B.:
Ab Zeile 37 - > die eigenen Bezeichnungen eintragen.
Ab Zeile 63 - > die eigenen Skripte eintragen.
Und dann noch die div. CSS Dateien, usw.
Oh, ich, ich, sorry.
Da habe ich mich aber total verwechselt, natürlich habe ich das so gemeint.
Grml.. Habe jetzt auch das AppMenu.uc.js und das AppMenu.css gemacht, dann FF mit dem Neustart-Button rechtsklick gestartet. Jetzt sind meine Vertikalezusatzleiste Links und Rechts beide weg..
Im Anpassungs-Fenster aktiviert beide. wieder nix. :-S
Hab jetzt paarmal neugestartet, hier im Anpassungs-Fenster muss ich es aktivieren mit dem Häckchen, aber wird trotzdem nicht angezeigt.
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 ).
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 ).
ehm.. backup? muss ich schauen wann ich zuletzt den ff-backup gemacht habe^^
also so wie ich mich erinnere, habe ich zuletzt dein script und css aus dem beitrag-nr. #25 in chrome ordner und im css ordner getan und FF neugestartet mit dem neustart button.
muss ich schauen wann ich zuletzt den ff-backup gemacht habe
Nur mal so
Man sollte für solche Dinge immer ein Testprofil haben.
dein script und css aus dem beitrag-nr. #25 in chrome ordner und im css ordner getan
Und wenn du beides deaktivierst/entfernst, funktioniert dann wieder alles?
Man sollte für solche Dinge immer ein Testprofil haben.
Das Problem ist, ich vergesse immer, meine Tests im Test-Profil zu machen.
Und wenn du beides deaktivierst/entfernst, funktioniert dann wieder alles?
Bevor ich den Beitrag mit diesem Problem geschrieben habe, habe ich diesen Script und den CSS entfernt.
Ich denke, dass ich mal den chrome-ordner irgendwo hinkopiere, dann den ordner löschen und neu machen. Evtl funkt es dann wieder.
ich vergesse immer, meine Tests im Test-Profil zu machen.
Dann solltest du dir oft genug ein Backup erstellen
Evtl funkt es dann wieder.
Dann viel Glück