1. Nachrichten
  2. Forum
    1. Unerledigte Themen
    2. Forenregeln
  3. Spenden
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. camp-firefox.de
  2. Mira_Belle

Beiträge von Mira_Belle

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Mira_Belle
    • 13. Juli 2023 um 15:47
    Zitat von Horstmann

    Mir reicht's jetzt auch, vor allem für ein Script das ich wahrscheinlich eh wieder rausschmeisse. ;)

    Aber - wieder dazugelernt! :)

    Deine Lösung funktioniert viel besser als meine bzgl. Flexibilität, schlau mit dem Text und den Puffern, auch wenn ich nicht gerne die Fonts ändere - und das etwas über meine Kompetenz hinausgeht... ;)

    Danke für die Anregungen und Lösungen. :thumbup:

    Danke für das Lob, aber das mit den Fonts und den Puffern stammt ja nicht von mir,

    sondern von Sören Hentzschel, und ohne Deine Anregungen und Codeschnipsel wäre das auch nichts geworden.

    Im Übrigen stammt das mit den Fonts von unserem Guru und Meister BrokenHeart.

    Ich habe nur alle Zutaten zusammen geschüttet und ein neues Gericht daraus kreiert,

    die Küche ist halt doch mein zu Hause, gelle .DeJaVu. ;)

    :D Sorry, der musste jetzt raus, habe wohl 'nen Clown gefrühstückt.

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Mira_Belle
    • 13. Juli 2023 um 13:54
    Zitat von Horstmann

    Mooooment, junge Dame, einen hab ich noch. ;)

    Nachdem du auf die Ausrichtung hingewiesen hast, musste ich natürlich auch nochmal ran...

    Das sollte den gleichen Look ergeben wie dein Script, wobei hier alle Elemente verschiebbar sind.

    Die beiden Einträge für min-width sind entscheidend, und basieren auf der tatsächlichen Breite der Zählereinheit (in den Browser-Werkzeugen ausgelesen).

    Breiter geht immer, kostet aber Platz, schmaler macht dann die saubere Ausrichtung wieder kaputt.

    Wenn also Text, Sonderzeichen etc. dazukommen, muss man diese Breitenwerte wieder anpassen; ich vermute das ist in deinem Script ähnlich.

    Alles anzeigen

    Nee nee, ich mag einfach nicht mehr.

    Ich habe das mit den 2 Ziffern in der Ordneraufzählung und 3 Ziffern in der Linkaufzählung so gelößt:

    let strCountOut1 = '\xa0' + String(menuCount).padEnd(2) + '\xa0';

    und

    let strCountOut2 = '\xa0' + String(menuitemCount).padEnd(3, '\xa0');
    gelößt.

    Die Ausrichtung aller einzelnen Elemente lässt sich per CSS steuern.

    Sollte ich dennoch mal wirklich über hundert Links in einem Ordner haben,

    muss ich aber dennoch mal ran. :/

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Mira_Belle
    • 13. Juli 2023 um 10:18

    Es hat mir einfach keine Ruhe gelassen.

    JavaScript
    // JavaScript Document
    // BookmarkCount.uc.js
    // Author BrokenHeart
    // Source file https://www.camp-firefox.de/forum/thema/136572/?postID=1229536#post1229536
    //
    // Korrektur von BrokenHeart
    // Source file https://www.camp-firefox.de/forum/thema/136572/?postID=1229696#post1229696
    // 
    // Erweiterung von Sören Henschel
    // Source file https://www.camp-firefox.de/forum/thema/136572/?postID=1229555#post1229555
    //
    // Anpassung von Mira_Belle inspiriert durch grisu2099
    // Source file https://www.camp-firefox.de/forum/thema/136572/?postID=1229875#post1229883
    //
    // Anpassung von Mira_Belle inspiriert durch Horstmann
    // Source file https://www.camp-firefox.de/forum/thema/136572/?postID=1229875#post1229883
    
    
    (function() {
    
        if (!window.gBrowser) return;
        
        setTimeout(function() {
            setFunction();
        },50);
    
        let profilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'))
        let icon1 = "folder_sv_as.svg"
        let icon2 = "bookmark-hollow_sv_as.svg"
    
        function setFunction() {
    
            const css =`
                .countClass1::before {
                    content: "";
                    background-image: url(${profilePath}/${icon1}); 
                    background-repeat: no-repeat;
                    background-size: 16px;  /* icon size */
                    background-position: center;
                    margin-right: -4px !important;
                    height: 16px;
                    width: 16px;
                }
                .countClass1 label {
                    margin-inline: 0px !important;
                }
                .countClass1::after {
                    content: attr(data-value1) !important;
                    font-family:  Consolas, "Lucida Console", "Courier New", monospace !important;
                    font-size: 12px !important;
                    font-weight: 900 !important;
                    color: #FFB90F !important;
                    margin-inline: 0px !important;
                }
                .countClass2::before {
                    content: "";
                    background-image: url(${profilePath}/${icon2});
                    background-repeat: no-repeat;
                    background-size: 16px;  /* icon size */
                    background-position: center;
                    margin-right: -4px !important;
                    margin-left: -6px !important;
                    height: 16px;
                    width: 16px;
                }
                .countClass2::after {
                    content: attr(data-value2);
                    font-family:  Consolas, "Lucida Console", "Courier New", monospace !important;
                    font-size: 12px !important;
                    font-weight: 900 !important; 
                    color: #FFD700 !important;
                }
                .countClass2 image {
                    order: 1;
                }
            `;
    
            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;
                  item.style.color = '#c0c0c0';
                  
                  let label1 = item.childNodes[3];
      
                  label1.classList.add('countClass1');
                  let strCountOut1 = '\xa0' + String(menuCount).padEnd(2) + '\xa0'; 
                  label1.setAttribute('data-value1', strCountOut1);
    
                  let label2 = item.childNodes[4];
      
                  label2.classList.add('countClass2');
                  let strCountOut2 = '\xa0' + String(menuitemCount).padEnd(3, '\xa0'); 
                  label2.setAttribute('data-value2', strCountOut2);
    
                }, 100);
            }
        }  
    })();
    Alles anzeigen

    So passt es jetzt!

    Nur mit dem Einfärben der Symbole, da habe ich so meine Probleme.

    Daher habe ich die entsprechenden Symbole direkt bearbeitet.


    --------------------------------------------------------------------------------------------------------------------------------------------------------

    :!: Nachtrag

    Auch das Problem ist gelöst.

    Es lag wohl an den von mir verwendeten Symbolen.

    Die wollten sich einfach nicht färben lassen.

    Also habe ich andere genommen und es noch einmal probiert, und siehe da, es klappt.

    Habe nach den Zeilen 42 & 64 einfach fill: #c0c0c0; & fill-opacity: 1; wieder eingefügt!

    Ich danke Dir, Horstmann, für die wunderbare Inspiration und Hilfe.

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Mira_Belle
    • 12. Juli 2023 um 23:00
    Zitat von Horstmann

    Edit: Oder probier mal diese Version mit background-image, ich hab das auch für mich selber so umgestellt.

    JavaScript
    // JavaScript Document
    // BookmarkCount.uc.js - modified #2
    // Author BrokenHeart
    // Source file https://www.camp-firefox.de/forum/thema/136572/?postID=1229536#post1229536
    // Endor Repository Link https://github.com/Endor8/userChrome.js/blob/master/Firefox%20115/BookmarkCount.uc.js
    
    
    (function() {
    
        if (!window.gBrowser)
            return;
        
        setTimeout(function() {
            setFunction();
        },50);
    
    
        //Custom icons in profile/chrome/icons folder, code shared by Mira_Belle
        let profilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'))
        let ico1 = "iconfolder.png"
        let ico2 = "iconitems.png"
    
        function setFunction() {
    
            const css =`
    
                 /*  First icon  /  folder count  /  second icon  /  item count  */
    
                .countClass1::before {
                    content: "";
                    background-image: url(${profilePath}/${ico1}); 
                    background-repeat: no-repeat;
                    background-size: 16px;  /* icon size */
                    background-position: center;
                    margin-inline: 16px 2px;  /* icon 1 distance left right */
                    height: 16px;
                    width: 16px;
                    /*fill: black;
                    fill-opacity: 1;*/
                }
    
                .countClass1 label {
                    margin-inline: 0px !important;
               }
    
                .countClass1::after {
                    content: attr(data-value1); 
                    /*color: black;*/
                }
    
                .countClass2::before {
                    content: "";
                    background-image: url(${profilePath}/${ico2});
                    /*background-image: url("chrome://browser/skin/bookmark-hollow.svg");*/
                    background-repeat: no-repeat;
                    background-size: 16px;  /* icon size */
                    background-position: center;
                    margin-inline: 2px 2px;  /* icon 2 distance left right */
                    height: 16px;
                    width: 16px;
                    /*fill: black;
                    fill-opacity: 1;*/
                }
    
                .countClass2::after {
                    content: attr(data-value2); 
                    /*color: black;*/
                    margin-inline: 0 4px !important;  /* distance right */
                }
    
                .countClass2 image {
                    order: 1;
                }
            `;
    
            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;
                  
                  let label1 = item.childNodes[3];
      
                  label1.classList.add('countClass1');
                  let strCountOut1 = "(" + menuCount + ")"
                  label1.setAttribute('data-value1', strCountOut1);
    
                  let label2 = item.childNodes[4];
      
                  label2.classList.add('countClass2');
                  let strCountOut2 = "(" + menuitemCount + ")"
                  label2.setAttribute('data-value2', strCountOut2);
    
    
                }, 100);
            }
        }
        
    })();
    Alles anzeigen

    Sehr nette Spielerei!

    Ich finde nur, es ist unglücklich, dass sich die Symbole am Lable rechts ausrichten.

    Ich habe teilw. zweistellige Ziffern für Links und so wird das ganze dann für mich recht "unordentlich".

    Auch habe ich in einem kurzen Test nicht herausgefunden, wie ich die SVG-Dateien einfärben kann.

    Was ich schön finde, die Lable lassen sich separat ansprechen und entsprechend unterschiedliche Farben zuweisen.

    Ich danke Dir für's teilen, aber ich denke, ich bleibe vorerst bei "meinem" Skript.

    Was mich jetzt juckt, ist, dass bei mir das Lable beide "Zahlen" sind.

    Mal schauen, ob ich es anders hinbekomme.

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Mira_Belle
    • 12. Juli 2023 um 13:31
    Zitat von Horstmann

    Ich bleib aber für mich bei meinem Code, da kann ich alles so schön einfach mit CSS anpassen.

    Hier meine aktuelle Version, falls mal jemand testen will; dank Mira_Belle `s Icon Code alles im Script, keine extra CSS Code nötig:

    JavaScript
    // JavaScript Document
    // BookmarkCount.uc.js - modified
    // Author BrokenHeart
    // Source file https://www.camp-firefox.de/forum/thema/136572/?postID=1229536#post1229536
    // Endor Repository Link https://github.com/Endor8/userChrome.js/blob/master/Firefox%20115/BookmarkCount.uc.js
    
    
    (function() {
    
        if (!window.gBrowser)
            return;
        
        setTimeout(function() {
            setFunction();
        },50);
    
    
        //Custom icons in profile/chrome/icons folder, code shared by Mira
        let profilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'))
        let ico1 = "iconfolder.png"
        let ico2 = "iconitems.png"
    
        function setFunction() {
    
            const css =`
    
                 /*  First icon  /  folder count  /  second icon  /  item count  */
    
                .countClass1::before {
                    content: url(${profilePath}/${ico1});
                    margin-inline: 16px 2px !important;
                    height: 16px ;
                    transform: scale(0.8);
                }
    
                .countClass1 label {
                    margin-inline: 0px !important;
               }
    
                .countClass1::after {
                    content: attr(data-value1); 
                    color: black;
                }
    
                .countClass2::before {
                    /*content: url(${profilePath}/${ico2});*/
                    content: url("chrome://browser/skin/bookmark-hollow.svg");
                    /*margin-inline: 0 2px !important;*/
                    height: 16px;
                    transform: scale(0.8);
                    fill: black;
                    fill-opacity: 1;
                }
    
                .countClass2::after {
                    content: attr(data-value2); 
                    color: black;
                    margin-inline: 0 4px !important;
                }
    
                .countClass2 image {
                    order: 1;
                }
            `;
    
            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;
                  
                  let label1 = item.childNodes[3];
      
                  label1.classList.add('countClass1');
                  let strCountOut1 = "(" + menuCount + ")"
                  label1.setAttribute('data-value1', strCountOut1);
    
                  let label2 = item.childNodes[4];
      
                  label2.classList.add('countClass2');
                  let strCountOut2 = "(" + menuitemCount + ")"
                  label2.setAttribute('data-value2', strCountOut2);
    
    
                }, 100);
            }
        }
        
    })();
    Alles anzeigen

    Cool, so eine Idee hatte ich auch, nur habe ich es absolut nicht geschafft es so umzusetzen!

    Klasse, dass Du es geschafft hast.

    Das werde ich mir klauen, denke ich.

    Da lassen sich die Anpassungen viel leichter ändern.

    --------------------------------------------------------------------------------------------------------------------------------------------------------

    :!: Nachtrag

    Oder auch nicht.

    Bekomme es eben nicht so einfach gebacken.

    Bleibe wohl bei "meinem" alten Skript.

  • Firefox 115 und angepasste user.js noch gültig?

    • Mira_Belle
    • 12. Juli 2023 um 11:35
    Zitat von Schrotty74

    Ich verwende im TB schon länger eine angepasste user.js und da ich nun auch den Firefox verwende will ich auch hier eine user.js verwenden. Allerdings gab es mit Version 115 doch einige Änderungen. Daher die Tipps von Privacy-Handbuch oder auch arkenfox laufen diese oder müssen die alle angepasst werden?

    Aus leidvoller Erfahrung darf ich Dir mitteilen, dass das keine so gute Idee ist!

    Bin hier ganz schön gescholten worden und hatte meine Lasst den Firefox wieder anständig zum Laufen zu bekommen.

    Weil mich die ganze Thematik dann aber doch interessiert hat, und die ganze Schelte mich erst recht angestachelt hat,

    habe ich mir die ganzen "Einstellungen" unter about:config näher angeschaut!

    :!: Fazit, alles was Du da in Bezug auf Telemetrie und "Datensparsamkeit" per user.js fest tackern tust,

    lässt sich viel einfacher direkt in den Einstellungen ändern!

    Ergo, der Umweg über eine user.js ist gar nicht nötig und wie bereits erwähnt, ist auch das rückgängig machen

    nicht einfach mit Löschen der Einträge in der user.js getan.

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Mira_Belle
    • 11. Juli 2023 um 22:29

    @Horstmann


    Kommando zurück :!:

    Zeile 36 => margin-right: -20px !important;

    Zeile 50 => background-position: 45px, right 5px center !important;

    Zeile 103 => let strCountOut = '\xa0' + String(menuCount).padEnd(2, '\xa0') + '\xa0' + '\xa0' + '\xa0' + '\xa0' + String(menuitemCount).padEnd(3, '\xa0');

    Versuch es mal.

    Habe für mich noch etwas an den Abständen gefeilt!

    Zeile 36 => margin-right: -27px !important;

    Zeile 44 => gelöscht, da keine Relevanz :!:

    Zeile 49 => background-position: 37px, right 5px center !important;

    Zeile 102 => let strCountOut = '\xa0' + String(menuCount).padEnd(2, '\xa0') + '\xa0' + '\xa0' + '\xa0' + String(menuitemCount).padEnd(3, '\xa0'); :!: Man beachte, ein  '\xa0' + weniger!

    Kurze Erkärung.

    In Zeile 36 wird die Position des ersten Symbols bestimmt, die Position des zweiten Symbols wird dadurch aber auch beeinflusst!

    In Zeile 44 wird der Abstand zwischen erstem und zweitem Symbol festgelegt.

    Und in Zeile 102 kann man mit  '\xa0' + bestimmen, wie weit der erste vom zweiten Wert stehen soll.

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Mira_Belle
    • 11. Juli 2023 um 21:38
    Zitat von Horstmann

    Wenn du mehrstellige Nummern in beiden Anzeigen hast, oder auch nur der ersten, passt es dann immer noch?

    Ja!

    Zeile 36 Abstand für das erste Symbol. Musst mit rumspielen.

    Zeile 105, da kann es sein, dass du noch einmal das "Leerzeichen" '\xa0' + einfügen oder Löschen musst.

    Ausprobieren.

    :!: Erst Zeile 36, bis die Position des ersten Symbols passt, danach Zeile 105 anpassen

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Mira_Belle
    • 11. Juli 2023 um 20:29

    Als erstes möchte ich mich mal ganz <3 lich bei Euch allen bedanken.

    Zitat von grisu2099

    Habe fertig... ;) :D

    Basis ist der CSS-Code aus #198 und ein gegenüber der gestrigen Version minimal verändertes Skript:

    CSS
    .countClass {
        background-image: url("file:///F:/FIREFOX-ICONS/Icons/folder-blue.png"),
                          url("file:///F:/FIREFOX-ICONS/Icons/Stern-blau.png") !important;
        background-size: 16px 16px !important;
        background-repeat: no-repeat !important;
        background-position: 35px, right 5px center !important;
        }

    Edit: Bei Zeilen mit mehr als 10 Unterordnern müssen diese noch individuell angepaßt werden... :/

    Da das bei mir nur 1 Zeile betrifft, ist es (für mich) nicht so schlimm.

    Das hat mich auf die richtige Spur gebracht.

    Hatte ja auch schon einige Male an dem CSS herumgeschraubt, war aber nicht von Erfolg gekrönt,

    daher auch meine falsche Vermutung, dass das irgendwie per Skript gehen müsste.

    Wobei, es war ja von beidem etwas.

    Nun, jetzt schaut es so aus, wie ich mir das vorstellte.

    Danke noch mal.

    Und hier der passende Code dazu:

    JavaScript
    // JavaScript Document
    // BookmarkCount.uc.js
    // Author BrokenHeart
    // Source file https://www.camp-firefox.de/forum/thema/136572/?postID=1229536#post1229536
    //
    // Korrektur von BrokenHeart
    // Source file https://www.camp-firefox.de/forum/thema/136572/?postID=1229696#post1229696
    // 
    // Erweiterung von Sören Henschel
    // Source file https://www.camp-firefox.de/forum/thema/136572/?postID=1229555#post1229555
    //
    // Anpassung von Mira_Belle inspiriert durch grisu2099
    // Source file https://www.camp-firefox.de/forum/thema/136572/?postID=1229875#post1229883
    
    (function() {
    
      if (!window.gBrowser) return;
        
      setTimeout(function() {
        setFunction();
      },50);
    
      let profilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'))            
      let ico1 = "folder_org.svg"
      let ico2 = "bookmark-hollow.svg"
    
      function setFunction() {
    
        const css =`
          .countClass::before {
            content: url(${profilePath}/${ico1});
            display: inline-block;
            vertical-align: middle;
            width: 16px; /* Breite des Icons anpassen */
            height: 16px; /* Höhe des Icons anpassen */
            margin-right: -20px; /* Abstand zwischen Symbol und Text anpassen */
          } 
          .countClass::after {
            content: attr(data-value);
            font-family:  Consolas, "Lucida Console", "Courier New", monospace;
            font-size: 13px;
            font-weight: 600;
            color: red;
            padding-right: 26px;
          }
          .countClass {
            background-image: url(${profilePath}/${ico2}); !important;
            background-size: 16px 16px !important;
            background-repeat: no-repeat !important;
            background-position: 35px, right 5px center !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;        // Hinzugefügt
            itemPopup.collapsed = true;     // Hinzugefügt
            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;         // Hinzugefügt
            itemPopup.collapsed = false;      // Hinzugefügt
                  
            let label = item.childNodes[3]; //label.menu-iconic-text
            item.style.color = 'silver';
    
            label.classList.add('countClass');
    
            let strCountOut = + String(menuCount).padEnd(2, '\xa0') + '\xa0' + '\xa0' + '\xa0' + '\xa0' + String(menuitemCount).padEnd(3, '\xa0');
    
            label.setAttribute('data-value', strCountOut);
    
          }, 100);
        }
      }   
    })();
    Alles anzeigen
  • Was hört Ihr gerade?

    • Mira_Belle
    • 11. Juli 2023 um 17:17

    Like Ice in the Sunshine

    Wisst Ihr noch?

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Mira_Belle
    • 11. Juli 2023 um 17:11

    Ok, nachdem das mit dem Nutzen geklärt ist, können wir uns ja wieder dem Skript widmen.

    Ich habe immer noch keine Lösung "meines" Wunsches finden können.

    Dahast Du, BrokenHeart, was angerichtet!

    Aber vielleicht hast ja Du eine Idee, wie man eine SVG-Grafik da zwischen "+ menuCount +" & "+ menuitemCount +" bekommen kann.

    Irgendwie muss das auseinander gedrößelt werden!

    Einmal Zähler für die Ordner, ein mal Zähler für die Links.

    Aber wie das mit der Zeile, mit dem Anzeigen und der Anordnung sein soll, ich habe da absolut keine Idee (mehr).

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Mira_Belle
    • 11. Juli 2023 um 16:31
    Zitat von oldman53

    Wäre ebenso eine Möglichkeit, ich bin aber interessiert / wissbegierig zum Aufwand vs Nutzen.

    Ohweh, Nutzen lass einfach mal außen vor, es ist viel mehr "Hobby" und da fragt auch kein Mensch nach nutzen. ;)

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Mira_Belle
    • 11. Juli 2023 um 09:30

    Schaut z.Z. so aus, ist aber nur eine Notlösung :!:

    Wie ich schon schrieb, möchte ich auch das Sternchen, welches ja hier noch ein Unicodezeichen U+2B50 ist,

    auch durch eine Grafik ersetzen.

    Hier erst einmal "mein", zugegeben chaotischer, Code. :saint:

    JavaScript
    // JavaScript Document
    // BookmarkCount.uc.js
    // Author BrokenHeart
    // Source file https://www.camp-firefox.de/forum/thema/136572/?postID=1229536#post1229536
    //
    // Korrektur von BrokenHeart
    // Source file https://www.camp-firefox.de/forum/thema/136572/?postID=1229696#post1229696
    // 
    // Erweiterung von Sören Henschel
    // Source file https://www.camp-firefox.de/forum/thema/136572/?postID=1229555#post1229555
    
    
    (function() {
    
      if (!window.gBrowser) return;
        
      setTimeout(function() {
        setFunction();
      },50);
    
      let profilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'))            
      let ico1 = "folder_org.svg"
      let ico2 = "bookmark.svg"
    
    
    
      function setFunction() {
    
        const css =`
    
            .countClass::before {
              content: url(${profilePath}/${ico1});
              display: inline-block;
              vertical-align: middle;
              width: 16px; /* Breite des Icons anpassen */
              height: 16px; /* Höhe des Icons anpassen */
              margin-right: -20px; /* Abstand zwischen Symbol und Text anpassen */
            }    
    
            .countClass::after {
              content: attr(data-value); 
              font-family:  Consolas, "Lucida Console", "Courier New", monospace;
              color: red;
              font-size: 13px;
              font-weight: 600;
              padding-right: 15px;
            }
        `;
    
        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;        // Hinzugefügt
            itemPopup.collapsed = true;     // Hinzugefügt
            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;         // Hinzugefügt
            itemPopup.collapsed = false;      // Hinzugefügt
                  
            let label = item.childNodes[3]; //label.menu-iconic-text
            item.style.color = 'silver';
            label.classList.add('countClass');
    
    //              let strCountOut = "  (" + menuCount + "/" + menuitemCount + ")"
    //              let strCountOut = "  (" + String(menuCount).padStart(2, '0') + "/" + String(menuitemCount).padStart(2, '0') + ")"             
    
    //              let strCountOut1 = "  (" + String(menuCount).padStart(2, '0') + ")";
    //              let strCountOut2 = "  (" + String(menuitemCount).padStart(2, '0') + ")";
    //              let strCountOut = ` ${menuCount} "/" ${menuitemCount}`;
    //              let strCountOut = "📁" + String(menuCount).padEnd(2, '\xa0') + "⭐" + String(menuitemCount).padEnd(3, '\xa0');
    
    //        let strCountOut = "📙 " + String(menuCount).padEnd(2, '\xa0') + "⭐ " + String(menuitemCount).padEnd(3, '\xa0');
            let strCountOut = + String(menuCount).padEnd(2, '\xa0') + " ⭐" + String(menuitemCount).padEnd(3, '\xa0');
    //              let strCountOut = + String(menuCount).padEnd(2, '\xa0') + String(menuitemCount).padEnd(3, '\xa0');
    //              let strCountOut = " ("+ "Ordner: " + String(menuCount).padStart(2, '0') + " / Links: " + String(menuitemCount).padStart(2, '0') + ")"
    //              let strCountOut = " ("+ String(menuCount).padStart(2, '0') + "/" + String(menuitemCount).padStart(2, '0') + ")"
    //              let strCountOut = "  (" + String(menuCount).padStart(2, '0') + " Ordner / " + String(menuitemCount).padStart(2, '0') + " Links" + ")"
    //              let strCountOut =  + menuCount + " Ordner / " + String(menuitemCount).padStart(2, '0') + " Links"
            label.setAttribute('data-value', strCountOut);
    //                label.setAttribute('data-value', strCountOut1, strCountOut2);
    
          }, 100);
        }
      }   
    })();
    Alles anzeigen
  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Mira_Belle
    • 10. Juli 2023 um 23:41

    Geht nicht, gibt's nicht :!:

    Ok, wird wohl so sein, dass es nicht per Zeichenkette einbetten geht,

    aber es gibt da ja noch das CSS. ;)

    Habe es geschafft per

    JavaScript
        const css = `
    
          .countClass::before {
            content: url(${profilePath}/${ico1});
            display: inline-block;
            vertical-align: middle;
            width: 16px; /* Breite des Icons anpassen */
            height: 16px; /* Höhe des Icons anpassen */
            margin-right: 1px; /* Abstand zwischen Symbol und Text anpassen */
          }
          .countClass::after {
            font-family: Consolas, "Lucida Console", "Courier New", monospace;
            color: red;
            font-size: 13px;
            font-weight: 900;
          }
        `;
    Alles anzeigen

    das Ordnersymbol rein zu wurschteln.

    Was mir nicht gelingen will, ist das auseinander klabustern von + menuCount + "/" & + menuitemCount +

    damit ich irgendwie dazwischen den Stern platzieren kann.

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Mira_Belle
    • 10. Juli 2023 um 22:19

    Na toll, jetzt muss ich auch Symbole haben :D

    Nur ich bekomme es einfach nicht hin!

    Habe es so versucht:

    JavaScript
                  let profilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'))
                  let ico1 = "folder.svg"
                  let ico2 = "bookmark.svg"
    
                  let strCountOut = + profilePath + ico1 + String(menuCount).padEnd(2, '\xa0') + profilePath + ico2 + String(menuitemCount).padEnd(3, '\xa0');

    Funktioniert natürlich nicht!

    Muss irgendwas mit xxx..style.listStyleImage = profilePath + ico1 und xxx.menuitem.style.listStyleImage = profilePath + ico2 basteln.

    Nur wie bekomme ich das dann mit der Zeile let strCountOut = .... unter?

    Oder bin ich da etwa ganz auf dem Holzweg?

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Mira_Belle
    • 10. Juli 2023 um 16:04
    Zitat von Dharkness
    Zitat von Boersenfeger

    Jetzt habe ich dann auch den Namen BookmarkCount.uc.js adaptiert.

    Bei mir heißt es how_many_bookmarks.uc.js.

    Schon irgendwie doof, wenn jeder das Skript anders nennt.

    Ich wäre auch für einen gemeinsamen Namen!

    Bei mir heiß es auch BookmarkCount.uc.js, weil ich das Gefühl hatte,

    dass das am ehesten angenommen wird.

    Können wir uns darauf einigen?

    Und wenn ja, diesen Namen dann in den Kopf, in etwa so =>

    JavaScript
    // JavaScript Document
    // BookmarkCount.uc.js
    // Author BrokenHeart
    // Source file https://www.camp-firefox.de/forum/thema/136572/?postID=1229536#post1229536

    schreiben.

    Wie dann letzten Endes die Datei auf der Platte heißt, ist ja egal.

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

    • Mira_Belle
    • 10. Juli 2023 um 15:10
    Zitat von 2002Andreas

    Das funktioniert auch als CSS Code, muss wohl nicht unbedingt ein Skript sein. :/

    Wohl nicht, aber es gab nur mit CSS, jetzt so auf die schnelle nicht geprüfte, Probleme!

    Hier Dein damaliger Kommentar. #3.255

    Ah, hier #3.251 kommt des Rätsels Lösung. ;)

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

    • Mira_Belle
    • 10. Juli 2023 um 14:25

    Mag wer testen?

    JavaScript
    // Tooltips.us.js
    "use strict";
    /* Firefox userChrome.js tweaks - 'Custom Tooltips' for Firefox ************************************************************** */
    /* Inspired by Mary-J. auf Camp-Firefox.de *********************************************************************************** */
    /* https://www.camp-firefox.de/forum/thema/112673/?postID=1223252#post1223252
    /* *************************************************************************************************************************** */
    /* Customized by Mira********************************************************************************************************* */
    /* https://www.camp-firefox.de/forum/thema/112673/?postID=1223348#post1223348 ************************************************ */
    /* *************************************************************************************************************************** */
    (function() {
        if (location.href !== 'chrome://browser/content/browser.xhtml') return;
        var css =`
            tooltip[label="Add-ons aktualisieren"],
            tooltip[label="Anwendungsmenü öffnen"],
            tooltip[label="Erweiterungen"],
            tooltip[label="Firefox-Startseite"],
            tooltip[label="Geschlossenen Tab wiederherstellen"],
            tooltip[label="Morning Coffee Quantum"],
            tooltip[label="Morning Coffee"],
            tooltip[label="MySessions"],
            tooltip[label="Neustart (der userChrome.js-Cache wird geleert)"],
            tooltip[label="Normalgröße (Strg+0)"],
            tooltip[label="uBlock Origin (0)"],
            tooltip[label="uBlock Origin (off)"],
            tooltip[label="Browser-Werkzeuge"],
            tooltip[label="Werkzeuge für Web-Entwickler"],
            tooltip[label="Lesezeichenleiste ein-/ausblenden"],
            tooltip[label="Verkleinern (Strg+-)"],
            tooltip[label="Vergrößern (Strg++)"],
            tooltip[label="Verifiziert von: Cloudflare, Inc."],
            tooltip[label="Verifiziert von: Starfield Technologies, Inc."],
            tooltip[label="Verifiziert von: Let's Encrypt"],
            tooltip[label="Verifiziert von: DigiCert Inc"],
            tooltip[label^="U"],
            tooltip[label^="Q"],
            #tabbrowser-tab-tooltip,
            #dynamic-shortcut-tooltip,
            #back-button-tooltip,
            #forward-button-tooltip {
                appearance: none !important;
                background-color: #2B2B2B !important;
                font-size: 13px !important;
                color: #E0E0E0 !important;
                border: 2px solid #FFA500 !important;
                border-radius: 4px !important;
                box-shadow: none !important;
                padding: 5px 7px 5px 7px !important;
                width: auto !important;
                height: auto !important;
                vertical-align: middle !important;
                overflow: hidden !important;
            }
            tooltip[label^="S"] {
                appearance: none !important;
                background-color: #2B2B2B !important;
                font-size: 13px !important;
                color: white !important;
                border: 2px solid #FFA500 !important;
                border-radius: 4px !important;
                box-shadow: none !important;
                padding: 5px 7px 5px 7px !important;
                width: auto !important;
                height: auto !important;
                vertical-align: middle !important;
                overflow: hidden !important;
            }
            tooltip,
            .balloonTooltip {
                appearance: none !important;
                background-color: #2B2B2B !important;
                font-size: 13px !important;
                color: #E0E0E0 !important;
                border: 2px solid #FFA500 !important;
                border-radius: 4px !important;
                box-shadow: none !important;
                padding: 5px 7px 5px 7px !important;
                width: auto !important;
                height: auto !important;
                vertical-align: middle !important;
                overflow: hidden !important;
            }
        `;
        var sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
        var uri = makeURI('data:text/css;charset=UTF=8,' + encodeURIComponent(css));
        sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
    })();
    Alles anzeigen

    Es würde mich interessieren, ob es damit dann später auch Probleme mit den neueren Versionen des Firefox gibt.

    Danke.
    Und eventuell behebt dieses Skript ja auch "Euer" Problem. :/ :?:

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Mira_Belle
    • 9. Juli 2023 um 19:18
    Zitat von Endor

    Finde ich sehr gut.:thumbup:

    Mal abwarten was sonst noch für Vorschläge kommen.

    Danke harff182 !

    Mfg.
    Endor

    BookmarkCount.uc.js

    JavaScript
    // JavaScript Document
    // BookmarkCount.uc.js
    // Source file https://www.camp-firefox.de/forum/thema/136572/?postID=1229536#post1229536
    //
    // Erweiterung von Sören Henschel
    // Source file https://www.camp-firefox.de/forum/thema/136572/?postID=1229555#post1229555
    (function() {
    
    ...
  • Separates Downloads-Fenster?

    • Mira_Belle
    • 7. Juli 2023 um 23:18

    Nochmals Danke für die Tipps,

    dass hatte ich leider schon "erfahren" müssen!

    Aber wenigstens hatte es einen Lerneffekt. :D

    Denn DAS vergesse ich nicht so schnell.

    Aber ich weiß auch gar nicht, ob ich das Downloadfenstergedöns nutzen werde,

    habe ja ein Anderes mit Button und das reicht mir eigentlich auch.

Unterstütze uns!

Jährlich (2026)

69,4 %

69,4% (538,17 von 775 EUR)

Jetzt spenden
  1. Kontakt
  2. Datenschutz
  3. Impressum
Community-Software: WoltLab Suite™
Mastodon