Aber Du schriebst doch, dass Du das "Masterpasswort" aktiviert hast. Warum, wenn Du es doch gar nicht brauchst?
Das kann ich gerade nicht nachvollziehen.
Lass das deaktiviert und es sollte gut sein, denke ich.
Aber Du schriebst doch, dass Du das "Masterpasswort" aktiviert hast. Warum, wenn Du es doch gar nicht brauchst?
Das kann ich gerade nicht nachvollziehen.
Lass das deaktiviert und es sollte gut sein, denke ich.
In diesem Thema geht es immer um die Nightly-Version.
Oh. ![]()
lichen Dank.
Und wo und wie kann man diese lokalen KI-Modelle herbekommen?
Wie bekomme ich den früheren Zustand denn wieder hin?
Wofür?
ZitatAllerdings hätte das Moskauer Unternehmen im Zweifel keine Wahl. Denn in Russland gibt es Gesetze, mit denen Kaspersky gezwungen werden könnte, Rechner im Ausland anzugreifen oder auszuspionieren. Für die USA Grund genug für ein Verbot. Und auch die Niederlande und Litauen schätzen die Software bereits seit Jahren als Bedrohung ein.
Mh,
.
Trifft aber genau SO auch auf alle Software aus den USA zu![]()
Auf des Orangen geheiß, alle Dienste für den Internationalen Gerichtshof in Den Haag gekappt!
Und einige UNI's in China wurden auch die Dienste gekündigt und verweigert.
Hast Du in den Einstellungen unter "Datenschutz & Sicherheit" \ "Passwörter"
den Punkt "Hauptpasswort verwenden" aktiviert?
Denn
ZitatWichtig: Wenn Sie ein Hauptpasswort definiert und festgelegt haben, werden Sie einmal pro Browsersitzung danach gefragt, sobald Firefox auf die durch das Hauptpasswort geschützten Zugangsdaten zugreifen muss. Das trifft auch dann zu, wenn Sie ein Passwort hinzufügen, entfernen oder anzeigen möchten.
PS: Ab Fx 139 sollte das alte Script nicht mehr funktionieren, und evtl. kommen dann Anfragen und weitere Kommentare; ...
Nach Belieben veränder, zerpflücken und anpassen, funktioniert in der Nightly.
// BookmarkCount.uc.js
/* ******************************************************************************************************************* */
/* Author BrokenHeart => https://www.camp-firefox.de/forum/thema/136572/?postID=1229536#post1229536 **** */
/* Correction from BrokenHeart => https://www.camp-firefox.de/forum/thema/136572/?postID=1229696#post1229696 **** */
/* Extension from Sören Henschel => https://www.camp-firefox.de/forum/thema/136572/?postID=1229555#post1229555 **** */
/* Customized by Mira inspired by grisu2099 ********************************************************************** */
/* Source => https://www.camp-firefox.de/forum/thema/136572/?postID=1229875#post1229883 **** */
/* Customized by Mira inspired by Horstmann ********************************************************************** */
/* Source => https://www.camp-firefox.de/forum/thema/136572/?postID=1229993#post1229993 **** */
/* Adjustments for 139 and customized by Mira inspired by Horstmann ********************************************** */
/* Source => https://www.camp-firefox.de/forum/thema/136572/?postID=1270254#post1270254 **** */
/* ******************************************************************************************************************* */
/* Version 1.01 => https://www.camp-firefox.de/forum/thema/136572/?postID=1230128#post1230128 **** */
/* Version 1.02 => https://www.camp-firefox.de/forum/thema/136572/?postID=1230334#post1230334 **** */
/* Version 1.03a => https://www.camp-firefox.de/forum/thema/136572/?postID=1270258#post1270258 **** */
/* ******************************************************************************************************************* */
/* Custom Counter in the Bookmarks for folders and links ************************************************************* */
/* ******************************************************************************************************************* */
(function() {
if (!window.gBrowser)
return;
setTimeout(function() {
setFunction();
},50);
//Custom icons in profile/chrome/icons folder
let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'));
let icon1 = "folder-fat.svg"; // Custom Folder Icon
let icon2 = "bookmark-hollow.svg"; // Custom Link Icon
let icon3 = "arrow-right.svg"; // Custom Arrow Icon
// Custom settings
let bm_font_size = 12;
let cs_font_weight = 700;
let bm_icon_size = 16;
// NEU: Schriftfarbe getrennt definieren
//let cs_font_color_1 = "#FFA500"; // Farbe für Folder-Zähler (links)
//let cs_font_color_2 = "#00FFFF"; // Farbe für Link-Zähler (rechts)
let cs_font_color_1 = "#FFD700"; // Farbe für Folder-Zähler (links)
let cs_font_color_2 = "#FFD700"; // Farbe für Link-Zähler (rechts)
// NEU: Symbolfarber getrennt definieren
//let cs_icon_color_1 = "#5fe575"; // Farbe für "Ordner", 1.Symbol
//let cs_icon_color_2 = "#fbf328"; // Farbe für "Link", 2.Symbol
//let cs_icon_color_3 = "#bbf700"; // Farbe für den Pfeil
let cs_icon_color_1 = "#C0C0C0"; // Farbe für "Ordner", 1.Symbol
let cs_icon_color_2 = "#C0C0C0"; // Farbe für "Link", 2.Symbol
let cs_icon_color_3 = "#C0C0C0"; // Farbe für den Pfeil
// Calculated settings
let cs_font_size = `${bm_font_size}px`;
let cs_icon_size = `${bm_icon_size}px`;
let cs_width_one = `calc(${bm_icon_size}px + 1.4em)`;
let cs_width_uno = `calc(${bm_icon_size}px)`;
let cs_width_two = `calc(${bm_icon_size}px + 1.4em)`;
let cs_width_due = `calc(${bm_icon_size}px)`;
//let useStyle1 = true; // <- HIER Weiche setzen: true = Variante 1, false = Variante 2
let useStyle = 1; // <- HIER Weiche setzen: 0 = Symbole hinter den Zählern, 1 = Symbole vor den Zählern
// Symbole vor den Zählern
let css_one = `
/* Counter #1 Folder */
#bmContent::before {
content: attr(data-value1) !important;
width: ${cs_width_one} !important;
align-items: center !important;
display: flex !important;
justify-content: end !important;
/*margin-inline: 16px 4px; */ /* min. Abstand links für enge Popups, rechts zum 2ten Counter */
margin-left: 16px !important; /* Abstand links minimum für schmale Popus CHANGE */
margin-right: -1px !important; /* Abstand Icon "Ordner" bis zum "Zähler" */
background-image: url("${ProfilePath}/${icon1}")!important;
background-position: center right calc(${cs_width_one} - ${cs_icon_size}) !important;
background-repeat: no-repeat !important;
background-size: ${cs_icon_size} ${cs_icon_size} !important;
color: ${cs_font_color_1} !important; /* Farbe der 1. Zahl */
fill: ${cs_icon_color_1} !important; /* Farbe des 1. Symbols */
}
/* Counter #2 Links */
#bmContent::after {
content: attr(data-value2) !important;
width: ${cs_width_two} !important;
align-items: center !important;
display: flex !important;
justify-content: end !important;
/*margin-inline: -2px;*/
margin-left: 4px !important; /* Abstand "Zähler 1" zum Icon2 */
margin-right: -1px !important; /* Abstand Icon "Links" bis zum "Zähler" */
background-image: url("${ProfilePath}/${icon2}") !important;
background-position: center right calc(${cs_width_two} - ${cs_icon_size}) !important;
background-repeat: no-repeat !important;
background-size: ${cs_icon_size} ${cs_icon_size} !important;
color: ${cs_font_color_2} !important; /* Farbe der 2. Zahl */
fill: ${cs_icon_color_2} !important; /* Farbe des 2. Symbols */
}
`;
// Symbole hinter den Zählern
let css_two = `
/* Counter #1 Folder */
#bmContent::before {
content: attr(data-value1) !important;
width: ${cs_width_one} !important;
align-items: center !important;
display: flex !important;
justify-content: end !important;
background-image: url("${ProfilePath}/${icon1}")!important;
background-position: center right calc(${cs_width_uno} - ${cs_icon_size}) !important;
background-repeat: no-repeat !important;
background-size: ${cs_icon_size} ${cs_icon_size} !important;
color: ${cs_font_color_1} !important; /* Farbe der 1. Zahl */
fill: ${cs_icon_color_1} !important; /* Farbe des 1. Symbols */
padding: 2px 20px 0px 10px !important; /* top | right | bottom | left */
/*margin-inline: 0px -10px; */
margin-left: 16px !important; /* Abstand links minimum für schmale Popus CHANGE */
margin-right: 12px !important; /* Abstand Icon "Ordner" bis zum "Zähler" */
}
#bmContent::after {
content: attr(data-value2) !important;
width: ${cs_width_two} !important;
align-items: center !important;
display: flex !important;
justify-content: end !important;
/*justify-content: flex-end; */
background-image: url("${ProfilePath}/${icon2}")!important;
background-position: center right calc(${cs_width_due} - ${cs_icon_size}) !important;
background-repeat: no-repeat !important;
background-size: ${cs_icon_size} ${cs_icon_size} !important;
color: ${cs_font_color_2} !important; /* Farbe der 2. Zahl */
fill: ${cs_icon_color_2} !important; /* Farbe des 2. Symbols */
padding: 2px 22px 0 0 !important; /* top | right | bottom | left */
margin-left: -14px !important; /* Abstand "Zähler 1" zum Icon2 */
margin-right: -1px !important; /* Abstand Icon "Links" bis zum "Zähler" */
}
`;
function setFunction() {
const css =`
/* Counter rechtsbuendig */
#bmContent {
display: flex !important;
margin-inline: auto 0 !important;
font-family: Consolas, "Lucida Console", "Courier New", monospace !important;
font-size: ${cs_font_size} !important;
font-weight: ${cs_font_weight} !important;
height: ${cs_icon_size} !important;
}
/* Dynamisch gewählter before-Block */
${useStyle ? css_one : css_two}
/* Pfeil */
menupopup > menu::after {
content: "" !important;
background-image: url("${ProfilePath}/${icon3}")!important;
height: ${cs_icon_size} !important;
height: ${cs_icon_size} !important;
fill: ${cs_icon_color_3} !important;
}
`;
const sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
const uri = Services.io.newURI('data:text/css,' + encodeURIComponent(css));
sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
let bmbMenu = document.getElementById('bookmarks-menu-button');
let bookMenu = document.getElementById('bookmarksMenu');
let persToolBar = document.getElementById('PersonalToolbar');
if(bmbMenu)
bmbMenu.addEventListener('popupshowing', onPopupShowing );
if(bookMenu)
bookMenu.addEventListener('popupshowing', onPopupShowing );
if(persToolBar)
persToolBar.addEventListener('popupshowing', onPopupShowing );
}
function onPopupShowing(aEvent) {
let popup = aEvent.originalTarget;
for (let item of popup.children) {
if (item.localName != 'menu' || item.id?.startsWith('history'))
continue;
setTimeout(() => {
let itemPopup = item.menupopup;
itemPopup.hidden = true;
itemPopup.collapsed = true;
itemPopup.openPopup();
itemPopup.hidePopup();
let menuitemCount = 0;
let menuCount = 0;
for (let subitem of itemPopup.children) {
if (subitem.classList.contains('bookmark-item') && !subitem.disabled && !subitem.hidden) {
if (subitem.localName == 'menuitem') {
menuitemCount++;
} else if (subitem.localName == 'menu') {
menuCount++;
}
}
}
itemPopup.hidden = false;
itemPopup.collapsed = false;
// Neues Element für Zaehler
let bmCounta = item.childNodes[1];
if (!bmCounta) return; // Falls undefiniert
bmCounta.innerHTML = ""
let bmContent = document.createElement("bmContent");
bmContent.id = "bmContent";
bmCounta.appendChild(bmContent);
//let strCountOut1 = " " + menuCount + " "; // Has no brackets
//let strCountOut1 = "(" + menuCount + ")"; // Has round brackets
//let strCountOut1 = "[" + menuCount + "]"; // Has square brackets
let strCountOut1 = String(menuCount).padEnd(2, " ");
bmContent.setAttribute('data-value1', strCountOut1);
//let strCountOut2 = " " + menuitemCount + " "; // Has no brackets
//let strCountOut2 = "(" + menuitemCount + ")"; // Has round brackets
//let strCountOut2 = "[" + menuitemCount + "]"; // Has square brackets
// let strCountOut2 = String(menuitemCount).padEnd(2, " ");
// bmContent.setAttribute('data-value2', strCountOut2);
let strCountOut2 = (useStyle === 0)
? String(menuitemCount).padStart(4, "/ ")
: String(menuitemCount).padEnd(2, " ");
bmContent.setAttribute('data-value2', strCountOut2);
}, 100);
}
}
})();
Alles anzeigen
Vorschlag.
// Variable zur Auswahl der Klammern
let out = 0; // 0 für "ohne Klammern", 1 für "runde Klammern", 2 für "eckige Klammern"
und ganz unten dann:
//Zaehler Design Optionen => mit, ohne, eckige, runde Klammern
let strCountOut1, strCountOut2;
if (out === 0) {
strCountOut1 = "" + menuCount + "";
strCountOut2 = "" + menuitemCount + "";
} else if (out === 1) {
strCountOut1 = "(" + menuCount + ")";
strCountOut2 = "(" + menuitemCount + ")";
} else if (out === 2) {
strCountOut1 = "[" + menuCount + "]";
strCountOut2 = "[" + menuitemCount + "]";
}
bmVario.setAttribute('data-value1', strCountOut1);
bmVario.setAttribute('data-value2', strCountOut2);
Alles anzeigen
Nur, wenn Du möchtest!!
Du könntest oben Variablen definieren, die die Einstellung für das Klammergedöhns vereinfachen,
und niemand müsste im Code groß was verändern.
Einfach eine "0" für ohne, eine "1" für runde oder eine "2" für eckige Klammern.
Und das mit der Trennlinie ließe sich auch so lösen.
"0" keine, "1" eine Trennlinie, ginge auch mit true & false.
Aber ist nur so eine Idee und muss ja auch nicht sein.
Finde Dein Skript gut. ![]()
Dato Wenn Du das unbedingt mit einem Rechtsklick machen möchtest,
dann in Zeile 58 "if (event.button == 0) {" zu "if (event.button == 2) {" ändern.
In deinem Beispiel hast du der Funktion aber keinen Namen verpasst, sondern du hast einen "Parameter" übergeben?!
Oh, stimmt, da war was!
In der Klammer nicht keine "Namen" oder "Bezeichnungen" sondern Parameter!
Solche Sachen vergesse ich hin und wieder. Danke für den "Klaps".
Frage!
Wenn man schon zwei Funktionen "aneinanderheftet" ist es dann nicht besser (gut) wie auch immer,
wenn man dann den Funktionen "Namen" verpasst?
Und wenn es nur zur Unterscheidung ist!
Aber ich denke, man sollte getrennte Scripte besser getrennt lassen
und nicht alles, nur weil es irgendwie geht, mit einander verwurschteln!
Funktioniert mal etwas nicht, muss das eine, ganze Skript überprüft werden.
Wenn man die Scripte getrennt lässt, funktioniert halt nur eine Sache nicht!
Das Problem ist Zeile 13!
Steht doch im Skript.
Ich bin zwar nicht gemeint aber antworte trozdem mal.
Du muss entweder in "chrome" einen Ordner namens "icons" erstellen und dort das Symbol ablegen,
oder Du änderst in Zeile 23 den Pfad von iconPath = '/chrome/icons/', zu iconPath = '/chrome/',.
Du musst entscheiden!
about:preferences#search
und dann ...
oder
Du kannst aber auch einfach diese "Suchmaschine" eintragen!
&udm=14 | the disenshittification Konami code
Hallo Mira_Belle, ich wundere mich, dass du mich in dieser illustren Aufzählung erwähnst, ...
1. Weil ich den Eindruck hatte, dass Du JS wie Deine Muttersprache verstehst!
2. Weil ich auch Deine Meinung zu dem Thema "hören" wollte.
3. Weil ich eben davon ausging, dass Du zu dem Thema etwas beitragen kannst.
Reicht das?
-------------------------------------------------------------------------------------------------------
@all
Ich bin wohl gerade mit dem falschen Fuß aufgestanden.
Da zwar immer mal wieder das Thema aufkam, ging ich davon aus, hoffte ich,
dass man endlich mal auf einen Nenner kommen könnte.
Mir scheint, ich liege falsch.
Ein jeder möchte sein eigenes Süppchen kochen und die Schaffung einer einheitlichen Linie stößt auf breite Ablehnung!
So werden weiterhin unzählige Skripte mit gleichen oder ähnlichen Funktionen, aber alle anders im Code und Aufbau,
hier im Board herumschwirren und ständig, oder oft, müssen diese dann,
wenn es im Firefox Änderungen gibt, neu angepasst werden.
Was mir zu wieder ist, die Einstellung, wer es nicht hinbekommt sich ein Skript, was Pfade angeht oder schon das Symbol
zu ändern, der darf halt keine Skripte nutzen.
Ich werde hier jetzt etwas kürzertreten, schauen, was sich noch so tut, die eine oder andere Idee aufgreifen
und koche dann halt auch mein eigenes Süppchen.
Schade, da ich mit Horstmann glaubte, einen Mitstreiter gefunden zu haben.
Stell dir mein Erstaunen vor; Mira_Belle , kann ich raus aus der Liste - manche Assoziation würde ich lieber vermeiden?
Ich habe gerade die ganze Aufzählung entfernt und konnte mich gerade noch so beherrschen nicht einfach alles zu löschen!
Das Thema hat sich für mich vorerst erledigt, Du kannst alleine weiter dafür plädieren einen einheitlichen Stil bei Skripten
herbei zu führen. Ich gugge zu und schaue, was sich da tut.
und Mira mal kurz ihren Einfärbungsfetisch beiseite lässt.
Hey, Du Banause. ![]()
Aber bei mir wäre das Icon ohne "ROT" einfach untergegangen! Sehr dunkles Theme und dann schwarzes Icon?
BrokenHeart Danke für die Links, beim drüber fliegen einfach nur Bahnhof!
Ich brauche dafür mehr Zeit.
Die da meinte ich => '...'
Aber wir können uns auch auf was anderes einigen.
BrokenHeart Hast Du mal einen Link, wonach ich da suchen muss?
Denn ich habe gerade nur eine ungefähre Vorstellung von dem, was Du da vorschlägst.
So etwas wie eine Icon.dll unter Windows?