jetzt wird mir einiges klar.config-pref.js --> ist kopiert nach usr/lib/firefox/default/pref
config.js und userChrome.js --> sind kopiert nach usr/lib/firefox
Du verwechselst da wieder etwas, nämlich die Datei userChrome.js, die in den chrome-Ordner im Profil muss und dagegen den Ordner userChromeJS, der in das Installationsverzeichnis muss. Im Ordner userChromeJS sind noch weitere Dateien, wie das eben ein Ordner so an sich hat.
Ich gebe zu, die Dateinamen bzw. der Ordnername sind etwas verwirrend.
ZitatWas mache ich mit der vorhandenen userChrome.js = die von Endor
benenne ich die um in multirow.uc.js und kopiere die userChrome.js rein?
Ich weiß nicht, welche userChrome.js du nun meinst. Ich troddele dir das noch mal auf:
Dateien im Profil: userChrome.js, Skriptdateien mit der Endung uc.js
Inhalt:
userChrome.js:
Skriptdatei mit dem Beispielnamen multirow.uc.js:
// ==UserScript==
// @name zzzz-MultiRowTab_LiteforFx48.uc.js
// @namespace http://space.geocities.yahoo.co.jp/gl/alice0775
// @description Mehrzeilige Tableiste, Experimentelle CSS Version
// @include main
// @compatibility Firefox 48
// @author Alice0775
// @version 2016/08/05 00:00 Firefox 48
// @version 2016/05/01 00:01 hide favicon if busy
// @version 2016/03/09 00:01 Bug 1222490 - Actually remove panorama for Fx45+
// @version 2016/02/09 00:01 workaround css for lwt
// @version 2016/02/09 00:00
// ==/UserScript==
zzzz_MultiRowTabLite();
function zzzz_MultiRowTabLite() {
var style=' \
@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); \
#TabsToolbar .tabbrowser-tab { \
border-left: solid 1px rgba(0,0,0,.0) !important; \
border-right: solid 1px rgba(0,0,0,.0) !important; \
} \ ';
var sspi = document.createProcessingInstruction(
'xml-stylesheet',
'type="text/css" href="data:text/css,' + encodeURIComponent(style) + '"');
document.insertBefore(sspi, document.documentElement);
gBrowser.tabContainer._animateTabMove = function(event){};
gBrowser.tabContainer.lastVisibleTab = function() {
var tabs = this.childNodes;
for (let i = tabs.length - 1; i >= 0; i--) {
if (!tabs[i].hasAttribute("hidden"))
return i;
}
return -1;
};
gBrowser.tabContainer.clearDropIndicator = function() {
var tabs = this.childNodes;
for (let i = 0, len = tabs.length; i < len; i++){
let tab_s= tabs[i].style;
tab_s.removeProperty("border-left-color");
tab_s.removeProperty("border-right-color");
}
};
gBrowser.tabContainer.addEventListener("drop", function(event) {
this.onDrop(event);
}.bind(gBrowser.tabContainer), true);
gBrowser.tabContainer._onDragOver = function(event) {
this.MultiRowTabonDragOver(event);
var effects = this._getDropEffectForTabDrag(event);
this.clearDropIndicator();
var newIndex = this._getDropIndex(event);
if (newIndex == null) {
return;
}
if (newIndex < this.childNodes.length) {
this.childNodes[newIndex].style.setProperty("border-left-color","red","important");
} else {
newIndex = gBrowser.tabContainer.lastVisibleTab();
if (newIndex >= 0)
this.childNodes[newIndex].style.setProperty("border-right-color","red","important");
}
};
gBrowser.tabContainer.addEventListener("dragover", gBrowser.tabContainer._onDragOver, true);
gBrowser.tabContainer.onDrop = function(event) {
var newIndex;
console.log("onDrop");
this.clearDropIndicator();
var dt = event.dataTransfer;
var dropEffect = dt.dropEffect;
var draggedTab;
if (dt.mozTypesAt(0)[0] == TAB_DROP_TYPE) {
draggedTab = dt.mozGetDataAt(TAB_DROP_TYPE, 0);
if (!draggedTab)
return;
}
if (draggedTab && dropEffect == "copy") {}
else if (draggedTab && draggedTab.parentNode == this) {
newIndex = this._getDropIndex(event, false);
if (newIndex > draggedTab._tPos)
newIndex--;
this.tabbrowser.moveTabTo(draggedTab, newIndex);
}
};
gBrowser.tabContainer.MultiRowTabonDragOver = function(event) {};
}
Alles anzeigen
Installationsverzeichnis:
Im Wurzelverzeichnis die Datei config.js und der Ordner userChromeJS. Im Ordner userChromeJS müssen die Dateien main.js, readme.txt und utilities.js sein.
Im Verzeichnis defaults/pref muss die Datei config-prefs.js sein.