- Firefox-Version
- 90.0
- Betriebssystem
- Win10
moin, moin...
Vielleicht interessiert ja meine neueste Bastelei jemanden:
Zusätzliche Menü-Einträge für schnellen Zugriff auf meine CSS-File.
Hintergrund:
Ich habe das, was viele in der userChrome.css stehen haben, als einzelne Files im Ordner chrome/css und das, was viele in der userContent.css stehen haben, als einzelne Files im Ordner chrome/contentCSS.
Über die beiden zusätzlichen Menüs kann ich u.a. diese .css direkt in meinem dafür eingestellten Editor aufrufen.
Hier mein Code für das Menü "FF-CSS" zur freien Verwendung:
JavaScript
// Original-Herkunft:
// ==UserScript==
// @name External-Aplication.uc.js
// @namespace ithinc#mozine.cn
// @description External Applications
// @include main
// @compatibility Firefox 3.5.x
// @author ithinc
// @version 20091212.0.0.1 Initial release
// @version 20170911.0.0.2 Fix by aborix
// ==/UserScript==
//
// Herkunft:
// https://www.camp-firefox.de/forum/thema/126871 #13
//
// 210717: Anpassungen von mir:
// diverse Umbenennungen
// Zusätzliches Menü, um die Bearbeitung von CSS-Codes für FF zu vereinfachen: "FF-CSS"
// Anfangs mit absoluten Pfaden, die gegebenenfalls angepaßt werden müssen
var ffcssmenu = {
type: 'menu', //'menu' or 'button'
insertafter: 'menubar-items',
apps: [
{name: 'FF-CSS', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS'},
{name: 'Endor-Icons', path: 'E:\\00_a\\02_downloads\\endor'},
{name: 'separator'},
{name: '01_tabs_unten', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\01_tabs_unten_andy_neu_89.css'},
{name: '02_lesezeichentoolbar', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\02_lesezeichentoolbar_89.css'},
{name: '03_leistenfolge+farben', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\03_leistenfolge+farben_89.css'},
{name: '04_Abstaende_kleiner', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\04_Abstaende_kleiner.css'},
{name: '05_findbar_oben', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\05_findbar_oben.css'},
{name: 'separator'},
{name: '11_menuzeileneinträge_pimpen', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\11_menuzeileneinträge_pimpen.css'},
{name: '12_menu_trenner', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\12_menu_trenner.css'},
{name: 'separator'},
{name: '21_Trenner', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\21_Trenner.css'},
{name: '22_Rahmen', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\22_Rahmen.css'},
{name: 'separator'},
{name: '31_standardfoldericon', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\31_standardfoldericon.css'},
{name: '32_foldericons_erste_ebene', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\32_foldericons_erste_ebene.css'},
{name: '33_fileicons_erste_ebene', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\33_fileicons_erste_ebene.css'},
{name: '34_bookmarktrenner', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\34_bookmarktrenner.css'},
{name: '35_icons_in_Ordnern', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\35_icons_in_Ordnern.css'},
{name: 'separator'},
{name: '40_adressleiste', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\40_adressleiste_89.css'},
{name: '41_adressleiste_pimpen.css', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\41_adressleiste_pimpen.css'},
{name: '42_Rahmen', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\42_Rahmen.css'},
{name: 'separator'},
{name: '51_spinner', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\51_spinner.css'},
{name: '52_tabaussehen', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\52_tabaussehen.css'},
{name: '53_newtabbutton', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\53_newtabbutton.css'},
{name: 'separator'},
{name: '61_popup_rahmen', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\61_popup_rahmen.css'},
{name: '62_dlr_pimpen', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\62_dlr_pimpen.css'},
{name: '63_tab_2_fenster', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\63_tab_2_fenster.css'},
{name: '64_link-kontext-reihenfolge', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\64_link-kontext-reihenfolge.css'},
{name: '65_Tableiste-kontext-reihenfolge', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\65_Tableiste-kontext-reihenfolge.css'},
{name: '66_bookmark-kontext-reihenfolge', path: 'D:\\___Stickware\\comm\\firefoxportable\\Data\\profile\\chrome\\CSS\\66_bookmark-kontext-reihenfolge.css'},
{name: 'separator'},
{name: 'test', path: 'D:\\___Stickware\\comm\\TB_Updates.txt'},
],
init: function() {
for (var i=0; i<this.apps.length; i++) {
if (!this.apps[i].path) continue;
if (!this.apps[i].args) this.apps[i].args = [];
this.apps[i].path = this.apps[i].path.replace(/\//g, '\\');
var ffdir = Cc['@mozilla.org/file/directory_service;1'].getService(Ci.nsIProperties).get('CurProcD', Ci.nsIFile).path;
if (/^(\\)/.test(this.apps[i].path)) {
this.apps[i].path = ffdir.substr(0,2) + this.apps[i].path;
}
else if (/^(\.)/.test(this.apps[i].path)) {
this.apps[i].path = ffdir + '\\' + this.apps[i].path;
}
}
if (this.type == 'menu') {
var mainmenu = document.getElementById('main-menubar'); // das war das Original
var menu = mainmenu.appendChild(document.createXULElement('menu'));
menu.setAttribute('label', 'FF-CSS'); // Menu = "FF-CSS"
menu.setAttribute('accesskey', 'f');
menu.setAttribute('id', 'ffcss-menu');
var menupopup = menu.appendChild(document.createXULElement('menupopup'));
for (var i=0; i<this.apps.length; i++) {
menupopup.appendChild(this.createMenuitem(this.apps[i]));
}
}
else {
var menubarItems = document.getElementById(this.insertafter);
var toolbaritem = menubarItems.parentNode.insertBefore(document.createXULElement('toolbaritem'), menubarItems.nextSibling);
toolbaritem.id = 'ExtAppButtons';
toolbaritem.setAttribute("class", "chromeclass-toolbar-additional");
toolbaritem.setAttribute("orient", "horizontal");
for (var i=0; i<this.apps.length; i++) {
toolbaritem.appendChild(this.createButton(this.apps[i]));
}
}
},
exec: function(path, args) {
for (var i=0; i<args.length; i++) {
args[i] = args[i].replace(/%u/g, gBrowser.currentURI.spec);
}
var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
file.initWithPath(path);
if (!file.exists()) {
throw 'File Not Found: ' + path;
}
if (!file.isExecutable() || args.length==0) {
file.launch();
}
else {
var process = Cc['@mozilla.org/process/util;1'].getService(Ci.nsIProcess);
process.init(file);
process.run(false, args, args.length);
}
},
createButton: function(app) {
if (app.name == 'separator')
return document.createXULElement('toolbarseparator');
var item = document.createXULElement('toolbarbutton');
item.setAttribute('class', 'toolbarbutton-1 chromeclass-toolbar-additional');
item.setAttribute('label', app.name);
item.setAttribute('image', 'moz-icon:file:///' + app.path + '?size=16');
item.setAttribute('oncommand', 'ffcssmenu.exec(this.path, this.args);');
// item.setAttribute('tooltiptext', app.name);
item.path = app.path;
item.args = app.args;
return item;
},
createMenuitem: function(app) {
if (app.name == 'separator')
return document.createXULElement('menuseparator');
var item = document.createXULElement('menuitem');
item.setAttribute('class', 'menuitem-iconic');
item.setAttribute('label', app.name);
item.setAttribute('image', 'moz-icon:file:///' + app.path + '?size=16');
item.setAttribute('oncommand', 'ffcssmenu.exec(this.path, this.args);');
item.path = app.path;
item.args = app.args;
return item;
}
};
ffcssmenu.init();
Alles anzeigen
Das ganze sieht dann so aus:
Vielleicht kanns ja jemand für eigene Basteleien verwenden