userChrome.js Scripte für den Fuchs (Diskussion)

Schrauberecke: Hier geht es um optische und funktionelle Veränderungen (ohne Themes oder Personas) von Firefox oder von Webseiten per CSS-Codes oder JavaScript.
bege
Mitglied
Beiträge: 194
Registriert: Sa, 19. Apr 2008 22:50

Re: userChrome.js Scripte für den Fuchs (Diskussion)

#1561

Beitrag von bege » Mo, 05. Feb 2018 19:53

Ich habe im TB immer noch die gute alte userChromeJS.xpi laufen :-)

seipe
Senior-Mitglied
Beiträge: 765
Registriert: Do, 22. Dez 2005 14:47

Re: userChrome.js Scripte für den Fuchs (Diskussion)

#1562

Beitrag von seipe » Sa, 10. Feb 2018 11:29

Ich habe eine Frage an unsere "Schrauber". Ist es möglich per Script den Thunderbird aus Firefox heraus zu starten? Habe in der Suche nichts entsprechendes gefunden bzw. vielleicht übersehen.
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0.2,
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0a1,
Windows 10 Pro Version 1709 (Build 16299.248)

Benutzeravatar
2002Andreas
Moderator
Beiträge: 36943
Registriert: Fr, 04. Jul 2008 19:25
Wohnort: Niedersachsen

Re: userChrome.js Scripte für den Fuchs (Diskussion)

#1563

Beitrag von 2002Andreas » Sa, 10. Feb 2018 11:33

Ich hatte mir mal ein Script dafür zusammengebastelt :wink:

Kannst es ja bitte mal testen, den Pfad musst du dir allerdings vorher noch anpassen:

Code: Alles auswählen

// ==UserScript==
// @name           Thunderbird.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
// ==/UserScript==

/* :::: External Applications :::: */

var gExternalApplications = {
  type: 'button', //'menu' or 'button'
  insertafter: 'urlbar-container',

  apps: [
    
    {name: 'Thunderbird', path: 'C:\\Program Files (x86)\\Mozilla Thunderbird\\thunderbird.exe'},
   
  ],

  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');
      var menu = mainmenu.appendChild(document.createElement('menu'));
      menu.setAttribute('label', 'Start');
      menu.setAttribute('accesskey', 'a');

      var menupopup = menu.appendChild(document.createElement('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.createElement('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.createElement('toolbarseparator');

    var item = document.createElement('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', 'gExternalApplications.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.createElement('menuseparator');

    var item = document.createElement('menuitem');
    item.setAttribute('class', 'menuitem-iconic');
    item.setAttribute('label', app.name);
    item.setAttribute('image', 'moz-icon:file:///' + app.path + '?size=16');
    item.setAttribute('oncommand', 'gExternalApplications.exec(this.path, this.args);');
    item.path = app.path;
    item.args = app.args;
    return item;
  }
};
gExternalApplications.init();
Mit freundlichem Gruß
Andreas
Mein System    Meine Add-ons

EffPeh
Senior-Mitglied
Beiträge: 857
Registriert: Mi, 04. Okt 2017 10:22

Re: userChrome.js Scripte für den Fuchs (Diskussion)

#1564

Beitrag von EffPeh » Sa, 10. Feb 2018 11:40

Ja, das funktioniert. Ich weiss nicht mehr, woher das Script stammt (oder ob und was ich da selbst dran geschraubt habe), deshalb poste ich es hier. Das Script legt entsprechende Buttons für die jeweiligen Programme an. Unter apps:[] musst du die Programme und Pfade deinen Bedürfnissen anpassen. :)

Code: Alles auswählen

Components.utils.import("resource:///modules/CustomizableUI.jsm");

var gExternalApplications = {
	apps: [    
		//{name: 'Notepad', 			path: 'C:\\WINDOWS\\system32\\notepad.exe'},
		//{name: 'Windows Explorer', 	path: 'C:\\Windows\\explorer.exe'},
		//{name: 'Calculator', 		path: 'C:\\Windows\\System32\\calc.exe'},
		{name: 'Just Color Picker',	path: 'E:\\Programme\\stand-alones\\jcpicker.exe'},
		{name: 'Thunderbird',		path: 'C:\\Program Files (x86)\\Mozilla Thunderbird\\thunderbird.exe'},
		//{name: 'Command Prompt', 	path: 'C:\\WINDOWS\\system32\\cmd.exe'},
		{name: 'Internet Explorer', path: 'C:\\Program Files\\internet explorer\\iexplore.exe', args: ['%u']},
		{name: 'Opera', 			path: 'C:\\Program Files\\Opera\\launcher.exe', args: ['%u']},
		{name: 'Google Chrome',		path: 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe', args: ['%u']},
	],

	init: function() {
		for (var i=0; i<this.apps.length; i++) {
			let appsName = this.apps[i].name;
			let appsPath = this.apps[i].path;
			let appsArgs = this.apps[i].args;
			CustomizableUI.createWidget({
				id: "fp-app-" + i,
				defaultArea: CustomizableUI.AREA_NAVBAR,
				removable: true,
				label: appsName,
				tooltiptext: appsName,
				onClick: function() {
					gExternalApplications.exec( appsPath , appsArgs );
				},
				onCreated: function(aNode) {
					aNode.setAttribute('image', 'moz-icon:file:///' + appsPath + '?size=16');
					return aNode;
				}
			});
		}
	},

	exec: function(path, args) {
		args = 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()) {
			Cu.reportError('File Not Found: ' + path);
			return;
		}
		if (!file.isExecutable()) {
			file.launch();
		}
		else {
			var process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess);
			process.init(file);
			process.run(false, args, args.length);
		}
	}
};
gExternalApplications.init();
Windows10 | FF 57.0 (64-Bit)

Benutzeravatar
2002Andreas
Moderator
Beiträge: 36943
Registriert: Fr, 04. Jul 2008 19:25
Wohnort: Niedersachsen

Re: userChrome.js Scripte für den Fuchs (Diskussion)

#1565

Beitrag von 2002Andreas » Sa, 10. Feb 2018 11:42

EffPeh hat geschrieben:
Sa, 10. Feb 2018 11:40
woher das Script stammt
Ich vermute mal von hier:
https://github.com/ardiman/userChrome.j ... plications
Mit freundlichem Gruß
Andreas
Mein System    Meine Add-ons

EffPeh
Senior-Mitglied
Beiträge: 857
Registriert: Mi, 04. Okt 2017 10:22

Re: userChrome.js Scripte für den Fuchs (Diskussion)

#1566

Beitrag von EffPeh » Sa, 10. Feb 2018 11:45

2002Andreas hat geschrieben:
Sa, 10. Feb 2018 11:42
EffPeh hat geschrieben:
Sa, 10. Feb 2018 11:40
woher das Script stammt
Ich vermute mal von hier:
https://github.com/ardiman/userChrome.j ... plications
Nee, Andreas. Also wenn, dann nur auszugsweise.
Denn bei dem Script werden nur Buttons angelegt. Keine Menü-Auswahl. :)
Edit: Eigentlich gar nicht, wie ich gerade sehe. Ist ganz anders aufgebaut. :wink:
Windows10 | FF 57.0 (64-Bit)

seipe
Senior-Mitglied
Beiträge: 765
Registriert: Do, 22. Dez 2005 14:47

Re: userChrome.js Scripte für den Fuchs (Diskussion)

#1567

Beitrag von seipe » Sa, 10. Feb 2018 11:50

2002Andreas, funktioniert perfekt. :D
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0.2,
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0a1,
Windows 10 Pro Version 1709 (Build 16299.248)

Benutzeravatar
2002Andreas
Moderator
Beiträge: 36943
Registriert: Fr, 04. Jul 2008 19:25
Wohnort: Niedersachsen

Re: userChrome.js Scripte für den Fuchs (Diskussion)

#1568

Beitrag von 2002Andreas » Sa, 10. Feb 2018 11:54

Freut mich :D
Mit freundlichem Gruß
Andreas
Mein System    Meine Add-ons

seipe
Senior-Mitglied
Beiträge: 765
Registriert: Do, 22. Dez 2005 14:47

Re: userChrome.js Scripte für den Fuchs (Diskussion)

#1569

Beitrag von seipe » Sa, 10. Feb 2018 12:03

Zur Kenntnis. Umgekehrt klappts aber nicht. In Thunderbird erscheint kein Button zum Starten.
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0.2,
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0a1,
Windows 10 Pro Version 1709 (Build 16299.248)

Benutzeravatar
Zitronella
Senior-Mitglied
Beiträge: 8118
Registriert: Di, 07. Feb 2012 18:06

Re: userChrome.js Scripte für den Fuchs (Diskussion)

#1570

Beitrag von Zitronella » Fr, 16. Feb 2018 13:35

Script-für-Toggle-Document-Fonts:
Ein User schrieb mir eine private Nachricht u.a.
Aus Deinem Script (das mit dem player-Einstellungen, oder so ähnlich)
habe ich mir ein Toggle-Document-Font Script gebastelt,
Ich kann es hier zur Verfügung stellen, vielleicht freut sich ja der ein- oder andere darüber.
Es schaltet den about:config Wert "browser.display.use_document_fonts" wahlweise von 1 auf 0 und umgekehrt.

Code: Alles auswählen

// Start des Quelltextes //
// Toggle Document Fonts
// Umschalten von browser.display.use_document_fonts
// Herkunft der verwendeten Button-Icons (png 24x24px, konvertiert zu base64):
// Icons made by Freepik (www.freepik.com) from www.flaticon.com

(function() {

if (location != 'chrome://browser/content/browser.xul')
return;

try {
CustomizableUI.createWidget({
id: 'toggle-document-fonts-button',
type: 'custom',
defaultArea: CustomizableUI.AREA_NAVBAR,
onBuild: function(aDocument) {
var button = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
var attributes = {
id: 'toggle-document-fonts-button',
class: 'toolbarbutton-1 chromeclass-toolbar-additional',
removable: 'true',
label: 'Toggle Document Fonts',
tooltiptext: Services.prefs.getIntPref('browser.display.use_document_fonts') ?
'Document Fonts sind aktiviert, Klick -> umschalten' : 'Document Fonts sind deaktiviert, Klick -> umschalten',
oncommand: '(' + onCommand.toString() + ')()'
};
for (var a in attributes) {
button.setAttribute(a, attributes[a]);
};
function onCommand() {
var isEnabled = !Services.prefs.getIntPref('browser.display.use_document_fonts');
Services.prefs.setIntPref('browser.display.use_document_fonts', isEnabled);
var windows = Services.wm.getEnumerator('navigator:browser');
while (windows.hasMoreElements()) {
let button = windows.getNext().document.getElementById('toggle-document-fonts-button');
if (isEnabled)
button.setAttribute('tooltiptext', 'Document Fonts sind aktiviert, Klick -> umschalten')
else
button.setAttribute('tooltiptext', 'Document Fonts sind deaktiviert, Klick -> umschalten');
};
};
return button;
}
});
} catch(e) { };

var css =
'#toggle-document-fonts-button[tooltiptext="Document Fonts sind aktiviert, Klick -> umschalten"] {list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAulBMVEUAAAAAZv8AbvAAbfAAbfEAbvEAbO8AbfAAbPAAbe8AbfAAbfAAbfAAbfAAbu4Ab/QAbu8AbfAAceMAbfEAbPIAa/IAbe8AbPAAbO8Aa/IAa/EAbfAAbfAAbfEAbfEAbe8AbfAAbfAAaPcAbu8AbPAAbPAAbfAAbfEAbfAAbPAAbfAAbPAAbe8AbPEAbvAAbu8AbfAAbe8AbvEAbe8AbfAAbe8AbfAAbfAAbe8AbfAAbfAAbfAAbfAAAACFwCSYAAAAPHRSTlMABaX5OG1Q32hw4PtG8SwXT8kJwygTYtZxOTfOabFuMfj3IEFTIamh+oTrQtVJeaO+kZDm2HMj6cXwqNGnCrGnAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAN1wAADdcBQiibeAAAAAd0SU1FB+EMFQ47JyDdX3IAAAClSURBVCjPvdLJDoIwEIDhAhVo61Z3FMQN913ccN7/uayGmFZK4sn/MId+mcMkRQghw7QgDReQlA2fsONKQCSgrJgDUCrnANCKBqpcDF7LQr2BRc0sAKOilgbekX9D282Bjse1wLo9XwtB3wkHMCSjMVZhgnE0hZk/X6iwXAGsN7DdwV6Fw1Fseac4Ol9UCK4CbjHck0fyw4H2N9gpSN/nlWUa4vEJwm1MM3cAV9YAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMTItMjFUMTQ6NTk6MzkrMDE6MDAHeHRTAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTEyLTIxVDE0OjU5OjM5KzAxOjAwdiXM7wAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAASUVORK5CYII=)} ' +
'#toggle-document-fonts-button[tooltiptext="Document Fonts sind deaktiviert, Klick -> umschalten"] {list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfhDBUOFCiifnqOAAABFUlEQVQ4y9XSvyvEcRzH8cfp/NqvpAwGp7tCUjox2CTTTYYTHaWUSWb5B5QFMzeRicHGhE4ZuFXqRkrEegaD6+Lue1/f1XP5fD6ven7e7/enT8w3rfZNqKfbjnWBZO0GpEV3Vn5HLdW110PgRQtWTAUJzfiQtWMgukDZvGNd0YQnGdzYdKLzO4qHClsK1sCgRXt/C5f69YAlbVEq8KkMXqMPXce/ENIKYU/RKCzrMxNdiMtYlY8uzLj1Ji2BDtseXSiGCXnjDsXkMKtdynlYhYReo8ZMmkPKtYrr+p5/knMEnj0bcuDMsKyX5kK51u+GuJIR0wrSzYXT2u4evDtCKWiGsqQwktVfK1YNWu0br50auZJXgS+MaDbuMUWDxwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNy0xMi0yMVQxNDoyMDo0MCswMTowME0LBtAAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTctMTItMjFUMTQ6MjA6NDArMDE6MDA8Vr5sAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==)} ';
var stylesheet = document.createProcessingInstruction('xml-stylesheet', 'type="text/css" href="data:text/css;utf-8,' + encodeURIComponent(css) + '"');
document.insertBefore(stylesheet, document.documentElement);

})();
// Ende des Quelltextes //
Hilfe auch im deutschsprachigen Firefox-Chat möglich.
Meine Anleitungstexte dürfen gerne "geklaut" und weiter verwendet/kopiert werden ;)

Benutzeravatar
Endor
Senior-Mitglied
Beiträge: 11794
Registriert: Fr, 20. Apr 2007 15:41
Wohnort: Irgendwo ganz weit im Süden und doch mitten in den Bergen
Kontaktdaten:

Re: userChrome.js Scripte für den Fuchs (Diskussion)

#1571

Beitrag von Endor Themen-Starter » Fr, 16. Feb 2018 14:18

@Zitronella, darf ich das Script an Mithrandir weiter geben?
Das passt bestimmt auch in die Sammlung.
Mfg.
Endor
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0.2
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/Firefox/59.0b8
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/Firefox/60.0

OS: Windows 7 H. P. 64 Bit Versions Info Stand 30.01.2018
Kein Support per PN. Fragen bitte im Forum stellen!

Benutzeravatar
Zitronella
Senior-Mitglied
Beiträge: 8118
Registriert: Di, 07. Feb 2012 18:06

Re: userChrome.js Scripte für den Fuchs (Diskussion)

#1572

Beitrag von Zitronella » Fr, 16. Feb 2018 14:26

Klar, darfst du das ;)
Hilfe auch im deutschsprachigen Firefox-Chat möglich.
Meine Anleitungstexte dürfen gerne "geklaut" und weiter verwendet/kopiert werden ;)

Benutzeravatar
Endor
Senior-Mitglied
Beiträge: 11794
Registriert: Fr, 20. Apr 2007 15:41
Wohnort: Irgendwo ganz weit im Süden und doch mitten in den Bergen
Kontaktdaten:

Re: userChrome.js Scripte für den Fuchs (Diskussion)

#1573

Beitrag von Endor Themen-Starter » Fr, 16. Feb 2018 14:37

Prima. Vielen Dank!
Mfg.
Endor
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0.2
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/Firefox/59.0b8
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/Firefox/60.0

OS: Windows 7 H. P. 64 Bit Versions Info Stand 30.01.2018
Kein Support per PN. Fragen bitte im Forum stellen!

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast