Ich habe im TB immer noch die gute alte userChromeJS.xpi laufen
userChrome.js Scripte für den Fuchs (Diskussion)
-
Endor -
12. Mai 2015 um 14:19 -
Erledigt
-
-
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.
-
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 anzeigen// ==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();
-
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 anzeigenComponents.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();
-
woher das Script stammt
Ich vermute mal von hier:
https://github.com/ardiman/userCh…nalapplications -
Ich vermute mal von hier:
https://github.com/ardiman/userCh…nalapplications
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: -
2002Andreas, funktioniert perfekt.
-
Freut mich
-
Zur Kenntnis. Umgekehrt klappts aber nicht. In Thunderbird erscheint kein Button zum Starten.
-
Script-für-Toggle-Document-Fonts:
Ein User schrieb mir eine private Nachricht u.a.ZitatAus 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 anzeigen// 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 //
-
Zitronella, darf ich das Script an Mithrandir weiter geben?
Das passt bestimmt auch in die Sammlung.
Mfg.
Endor -
Klar, darfst du das
-
Prima. Vielen Dank!
Mfg.
Endor -
Hallo liebes Forum,
nachdem ich einen neuen gebrauchten Rechner bekommen habe, mußte ich im Zuge dessen natürlich auch meinen Firefox updaten, was zur Folge hatte, dass viele AddOns nicht mehr funktioniert haben. Vor allem Tab Mix Plus vermisse ich schon sehr. Aufgrund dem supertollen Forum hier, konnte ich die meisten mir wichtigsten TMP-Funktionen durch andere Skripte und AddOns ersetzen. An dieser Stelle mal ein HERZLICHES DANKESCHÖN an alle fleißigen Helfer hier!
Jetzt fehlen mir nur noch ein paar wenige Funktionen und ich habe wieder meinen fast alten Funktionsumfang!
1.) revertaddonbarstatusbar
Die Statusbar bzw. das Skript funktioniert zwar, allerdings sind die Buttons auf der linken Seite. Sobald ich versuche die Buttons nach rechts zu ziehen, bleiben sie da nicht, sondern wandern wieder nach links. Mach ich da was falsch bzw. wäre es möglich, dass die Buttons wieder auf der rechten Seite bleiben?2.) Autocopy Menü
Das funktioniert leider gar nicht mehr.3.) backtotop
Funktioniert leider auch nicht mehr.Gibt es da mittlerweile auch andere Skripte bzw. AddOns oder kann jemand die jetzigen nicht mehr funktionierenden Skripte "reparieren"?
Vielen Dank im voraus.
Schöne Grüße
Mogli -
dass die Buttons wieder auf der rechten Seite bleiben?
Ich habe mir dafür aus dem Anpassenfenster den flexiblen Leerraum mehrmals eingefügt, bis die Icons ganz rechts waren.Für backtotop nutze ich dieses Script, dann erscheint im Rechtsklick Kontextmenü ein Pfeil nach oben und nach unten.
Code
Alles anzeigen//ScrollTopAndBottom.uc.js (function() { let menuitem = document.createElement('menuitem'); menuitem.id = 'context-to-top'; menuitem.classList.add('menuitem-iconic'); menuitem.setAttribute('tooltiptext' , 'Zum Seitenanfang springen'); menuitem.style.listStyleImage='url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjwhRE9DVFlQRSBzdmcgIFBVQkxJQyAnLS8vVzNDLy9EVEQgU1ZHIDEuMC8vRU4nICAnaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMS9SRUMtU1ZHLTIwMDEwOTA0L0RURC9zdmcxMC5kdGQnPjxzdmcgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIGlkPSJMYXllcl8xIiB2ZXJzaW9uPSIxLjAiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+PHBvbHlsaW5lIGZpbGw9Im5vbmUiIHBvaW50cz0iMywxMi41IDEyLDMuNSAyMSwxMi41ICIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS13aWR0aD0iMiIvPjxsaW5lIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Utd2lkdGg9IjIiIHgxPSIxMiIgeDI9IjEyIiB5MT0iMjIiIHkyPSIzLjUiLz48L3N2Zz4=")'; menuitem.setAttribute('oncommand' , "ownerGlobal.gBrowser.selectedBrowser.messageManager.loadFrameScript(' data: , content.scrollTo(0,0) ' , false);"); let refItem = document.getElementById('context-reload'); refItem.parentNode.insertBefore(menuitem, refItem); })(); (function() { let menuitem = document.createElement('menuitem'); menuitem.id = 'context-to-bottom'; menuitem.classList.add('menuitem-iconic'); menuitem.setAttribute('tooltiptext' , 'Zum Seitenende springen'); menuitem.style.listStyleImage='url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjwhRE9DVFlQRSBzdmcgIFBVQkxJQyAnLS8vVzNDLy9EVEQgU1ZHIDEuMC8vRU4nICAnaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMS9SRUMtU1ZHLTIwMDEwOTA0L0RURC9zdmcxMC5kdGQnPjxzdmcgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIGlkPSJMYXllcl8xIiB2ZXJzaW9uPSIxLjAiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+PHBvbHlsaW5lIGZpbGw9Im5vbmUiIHBvaW50cz0iMjEsMTEuNSAxMiwyMC41IDMsMTEuNSAiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Utd2lkdGg9IjIiLz48bGluZSBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLXdpZHRoPSIyIiB4MT0iMTIiIHgyPSIxMiIgeTE9IjIiIHkyPSIyMC41Ii8+PC9zdmc+")'; menuitem.setAttribute('oncommand' , "ownerGlobal.gBrowser.selectedBrowser.messageManager.loadFrameScript(' data: , content.scrollTo(0,100000) ' , false);"); let refItem = document.getElementById('context-reload'); refItem.parentNode.insertBefore(menuitem, refItem); })();
-
Hallo Mogli
Zum Autocopy. Hier wäre mir auch ein Skript lieber, aber es gibt Erweiterungen die das wieder/weiterhin können. Entweder explizit dafür vorgesehene wie Copy On Select oder AutocopySelection2Clipboard jeweils ohne zusätzliche Maus- oder Tastaturaktivität oder nach einer bestimmten Zeit der Mausbetätigung AutoCopy.
Alternativ habe ich gerade eine Erweiterung im Testmodus laufen die mir via Kontextmenü (oder Pop-up) Suchmaschinen meiner Wahl zur Verfügung stellt Swift Selection Search. Hauptaugenmerk liegt auf der Suche aber eine schöne "Nebenfunktion" ist das automatische kopieren von Text beim markieren. Also im Prinzip das was die oben erwähnten Erweiterungen machen, womit diese überflüssig werden könnten.Zum Back to top. Ich habe mir das auf eine Mausgeste gelegt und fahre damit seit Jahren sehr gut. Ich nutze Foxy Gestures und zeichne mit der rechten Maustaste einen symbolischen Pfeil nach oben (für Seitenanfang) bzw. nach unten (fürs Seitenende). Funktioniert in ca. 95% der Seiten problemlos.
Wobei ich das Skript von Andreas auch sehr nice finde. Ich werde das mal testen.Apropos testen.
Ich habe in einem portablen Firefox 59 build 14 das Skript PasteAndGoInForm.uc.js getestet und kann es als funktionsfähig melden. Wird irgendwo vermerkt ob die ganzen Skripte auch in der Wäbäxtänschen-Ära laufen? -
Ich habe mir dafür aus dem Anpassenfenster den flexiblen Leerraum mehrmals eingefügt, bis die Icons ganz rechts waren.
Das ist eine sehr gute Idee. Danke für den Tipp!
Für backtotop nutze ich dieses Script, dann erscheint im Rechtsklick Kontextmenü ein Pfeil nach oben und nach unten.
Ist zwar nicht perfekt, aber schon sehr sehr gut. Auch dafür vielen Dank!
-
ob die ganzen Skripte auch in der Wäbäxtänschen-Ära laufen?
Durch diverse Scripte konnte ja die eine oder andere Erweiterung sogar ersetzt werden, d.h., Scripte funktionieren auch in Fx 58 und höher.PS:
Von daher kannst du dich von deiner noch genutzten uralten Fx Version 56 trennen :wink: -
Nun, ich halte es nicht für selbstverständlich das ein sechs Jahre altes Skript per se auch im "neuen" Fux funktioniert. Siehe das von Mogli angefragte autocopy-Skript. Daher meine Frage ob das jemand irgendwo nachhält. Da ich in diesem Teil des Firefoxuniversums nur Nutzer bin, dachte ich mir, kann mein Beitrag nur sein, rückzumelden das es funktioniert. Zumindest bis Version 59 :wink:
Von daher kannst du dich von deiner noch genutzten uralten Fx Version 56 trennen :wink:
Ich könnte jetzt natürlich sagen, ich hab am User Agent geschraubt, aber das wäre zu offensichtlich :mrgreen:
Aber es ist bald soweit. Nicht zuletzt dank deiner hilfreichen Tipps bei den Skripten steht der Umzug bevor. -
das ein sechs Jahre altes Skript per se auch im "neuen" Fux funktioniert.
Das einzelne Scripte nicht mehr funktionieren kann natürlich möglich sein, das gab es aber auch schon früher.
Ich wollte damit auch nur ausdrücken, dass Scripte auch in der aktuellen Version vom Fx funktionieren.
Nicht zuletzt dank deiner hilfreichen Tipps bei den Skripten steht der Umzug bevor.
Das freut mich und war gern geschehen -