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

  • Symbol von Firefox Translate in die Statusleiste/AddOns-Leiste verschieben

    • Mira_Belle
    • 21. März 2023 um 11:40

    Hi Boersenfeger, ich kann mit "Statusleiste" jetzt nicht wirklich so viel anfangen,

    aber der erzeugte Button ist frei verschiebbar und Du solltest ihn dann auch in Deine "Statusleiste" verfrachten können.

    Aber bis jetzt funktioniert er ja nicht wirklich.

    Und wie ich schon anmerkte, lässt sich die "Schaltfläche" in der Adresszeile per CSS ausblenden,

    diesen Code würde ich dann natürlich auch in das JavaScript integrieren wollen. (lassen)

    Ich bitte um Hilfe aborix oder BrokenHeart

  • Symbol von Firefox Translate in die Statusleiste/AddOns-Leiste verschieben

    • Mira_Belle
    • 21. März 2023 um 10:46

    Apropos Test.us.js es funktioniert ja.

    Denn wenn ich in der Adresszeile auf den Button klicke, öffnet sich ja unten die Leiste!

    Ich denke, es hat mit dem Verweis direkt auf Zeile 540 zu tun,

    nur ich kann mit der Zahl 25 nach dem Doppelpunkt nichts anfangen.

    Ich müsste also auch direkt irgendwie darauf Zeile 540:25 verweisen, aber wie?

  • Symbol von Firefox Translate in die Statusleiste/AddOns-Leiste verschieben

    • Mira_Belle
    • 21. März 2023 um 10:13

    Bin nun einen klitzekleinen Schritt weiter!

    Habe mit den Browser-Werkzeugen den Button "Firefox Translations" untersucht.

    Dabei fiel mir die Schaltfläche event auf.

    Also draufgeklickt und da wird etwas angezeigt.

    Da steht click!

    Also wird da auf ein JavaScript verwiesen.

    Dieses habe ich dann mal "extrahiert" und als Test.us.js in meinem Scriptordner gespeichert.

    Nun wieder zu dem oben gezeigten JavaScript!

    Ich dachte mir schon, dass ich mit dem onklickgedöhns etwas machen muss!

    Hab' ich auch!

    Und funktioniert auch so weit, aber ...

    es tut sich nichts, wenn das Test.us.js -Script durch einen klick aufgerufen wird :!:

    JavaScript
    (function() {
       if (location.href !== AppConstants.BROWSER_CHROME_URL) return;
       try {
          CustomizableUI.createWidget({
             id: 'link-button-Translations',
             type: 'custom',
             defaultArea: CustomizableUI.AREA_NAVBAR,
             onBuild: function(aDocument) {         
                let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                let currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");  // Pfadangabe zum Profilordner
                let buttonicon = "translation-color.svg"  // Name & Dateiendung des anzuzeigenden Symbols
                toolbaritem.onclick = event => onClick(event);
                let props = {
                   id: 'link-button-Translations',
                   class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                   removable: 'true',
                   label: 'Quicklink: Firefox Translations',
                   accesskey: '',
                   tooltiptext: 'Firefox Translations',
                   style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/icons/" + buttonicon) +'");',
    //               onclick: 'if (event.button == 0) { \ openTrustedLinkIn("about:about", "tab");\ }; '
                };            
                for (var p in props)
                   toolbaritem.setAttribute(p, props[p]);            
                return toolbaritem;
             }      
          });
       } catch(e) { };
    
       function onClick(event) {
          if (event.button != 0) { return; }
     
          var dir = Services.dirsvc.get('ProfD', Ci.nsIFile).path.replace(/\\/g, "/");
          dir.append('Test.uc.js');
          dir.launch();
    
       }
    
    }) ();
    Alles anzeigen
  • Symbol von Firefox Translate in die Statusleiste/AddOns-Leiste verschieben

    • Mira_Belle
    • 20. März 2023 um 22:24

    Also, habe es geschafft einen Button für das Vorhaben zu "erschaffen".

    Was mir jedoch nicht gelingen will, dass bei Betätigen eben die richtige Aktion ausgelöst wird :!:

    Werde mich weiter darum bemühen.

    Das Icon in der Adresszeile ließe sich ja dann per CSS ausblenden.

    Hier mal der bisherige Stand:

    JavaScript
    (function() {
    
        if (location.href !== AppConstants.BROWSER_CHROME_URL) return;
        try {
           CustomizableUI.createWidget({
              id: 'link-button-Translations',
              type: 'custom',
              defaultArea: CustomizableUI.AREA_NAVBAR,
              onBuild: function(aDocument) {         
                 let toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
                 let currentProfileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");  // Pfadangabe zum Profilordner
                 let buttonicon = "translation-color.svg"  // Name & Dateiendung des anzuzeigenden Symbols
                 toolbaritem.onclick = event => onClick(event);
                 var props = {
                    id: 'link-button-Translations',
                    class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                    removable: 'true',
                    label: 'Quicklink: Firefox Translations',
                    accesskey: '',
                    tooltiptext: 'Firefox Translations',
                    style: 'list-style-image: url("' + ("file:" + currentProfileDirectory + "/chrome/icons/" + buttonicon) +'");',
                    onclick: 'if (event.button == 0) { \ openTrustedLinkIn("about:about", "tab");\ }; '
    
                };            
                for (var p in props)
                toolbaritem.setAttribute(p, props[p]);            
                return toolbaritem;
             }      
          });
       } catch(e) { };
    }) ();
    Alles anzeigen

    Und das Symbol (Icon):

    icons.zip

  • Der Glückwunsch-Thread

    • Mira_Belle
    • 18. März 2023 um 02:54

    Auch von mir <3lichen Glückwunsch.

  • Mehrere suchen nach einem begriff gleichzeitig

    • Mira_Belle
    • 17. März 2023 um 15:48
    Zitat von Mathamphetematiker
    ...

    aber zusätzlich konnte man jeder im addon eingetragenen suchmaschine ein kürzel zuweisen, und dann in die adresszeile beliebig viele kürzel, durch komma getrennt, vor dem suchbegriff angeben um für jede suche einen neuen tab öffnen zu lassen.

    Geht es Dir nur hierum?

    Habe es gerade einmal getestet, mit nur einem "Kürzel", z.B. @ddg oder @Google, geht es ja.

    Die anderen Anforderungen werden ja von Swift Selection Search scheinbar erfüllt.

  • Eigene Icons für about:xxx in der Urlbar, bzw. im Container

    • Mira_Belle
    • 17. März 2023 um 15:35
    Zitat von DenalB
    Zitat von Mira_Belle

    Ja :!:


    Hätte ich besser erklären sollen.

    Oh, dann schaue ich mir das direkt mal genauer an. Danke! :)

    Und berichte!

    Bei Fragen, auch her mit, habe mich mit diesem Script und der Integration des CSS so lange beschäftigt,

    da hoffe ich doch, dass ich das Teil nun kennen sollte.

    Wobei ich von JavaScript eigentlich so gar keine Ahnung habe. :D

  • Eigene Icons für about:xxx in der Urlbar, bzw. im Container

    • Mira_Belle
    • 16. März 2023 um 15:08
    Zitat von 2002Andreas
    Zitat von Mira_Belle

    Wenn nicht, also wenn keine vorhanden sind, wird auch hier, jenes, welches im Script definiert ist genommen.

    Funktioniert zumindest nicht auf allen Seiten, bei einem Test auf die Schnelle.

    ...

    Und Du hattest das JavaScript auch richtig eingestellt, Zeile 16?

    Denn das firefox_logo_2004.svg hast Du wahrscheinlich nicht.

    Beim Gegencheck funktionierten alle drei Seiten.

  • Eigene Icons für about:xxx in der Urlbar, bzw. im Container

    • Mira_Belle
    • 16. März 2023 um 12:27
    Zitat von DenalB

    Bezieht sich das auf alle Webseiten?

    Ja :!:

    Hätte ich besser erklären sollen.

    Zitat von 2002Andreas

    Nein.

    Es geht nur um die Icons für die about: Seiten.

    Doch, mein Fehler, es werden Favicons externer Seiten in der Adresszeile dargestellt, wenn vorhanden.

    Wenn nicht, also wenn keine vorhanden sind, wird auch hier, jenes, welches im Script definiert ist genommen.

  • Eigene Icons für about:xxx in der Urlbar, bzw. im Container

    • Mira_Belle
    • 16. März 2023 um 06:35

    Tadaa

    Ich präsentiere ... Trommelwirbel ... das Script samt CSS,

    Es werden Favicons in der Adresszeile angezeigt.

    Bei internen Seiten wird erst das "alte" Firefoxlogo, dann der Schriftzug "Firefox" und dann ein Favicon gezeigt.

    Ausnahmen sind die internen Seiten about:privatebrowsing, about:robots & about:sync-log,

    bei diesen werden die "eigenen" Favicons gezeigt.

    Und hier das Machwerk:

    JavaScript
    // FavIconInUrlBar.uc.js
    // Source file https://www.camp-firefox.de/forum/thema/130540/?postID=1214926#post1214926
    // Source file https://www.camp-firefox.de/forum/thema/136090/?postID=1221738#post1221738
    // Final source https://www.camp-firefox.de/forum/thema/136090/?postID=1221830#post1221830
    
    var myPath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'));  // Pfadangabe zum Profilordner
    var myPrefix = "firefox_logo_2004.svg";  // Name (& Dateiendung) des anzuzeigenden Symbols
    var mySuffix = ' ';  // Dateiendung des anzuzeigenden Symbols
    var Symbol = myPath + myPrefix + mySuffix;
    var i_icon = 'chrome://global/skin/icons/info.svg';
    var sheet = 'chrome://global/skin/icons/Portrait.png';
    var brand = 'chrome://branding/content/icon32.png';
    var globe = 'chrome://global/skin/icons/defaultFavicon.svg';
    var all = 'chrome://global/skin/icons/settings.svg';
    
    var icon_for_pages_without_favicon = Symbol; // i_icon, sheet, globe or brand (colorized Fx channel icon)
    
    (function() {
        if (location.href !== 'chrome://browser/content/browser.xhtml') return;
            let fav = document.createXULElement('image');
            fav.setAttribute('id', 'faviconid');
            fav.setAttribute('class', 'faviconclass');
        gBrowser.tabContainer.addEventListener('TabAttrModified', 
        function() {            
            let favicon = gBrowser.selectedTab.image; 
            if (favicon && favicon.indexOf('icon32.png') === -1) {
                // if favicon is present and not 'icon32.png', set it as the source
                fav.src = favicon;        
                var position = document.getElementById('identity-icon');
                position.parentNode.insertBefore(fav, position.previousSibling);
            }
            else {
                // if no favicon is present or it is 'icon32.png', set a custom one
                fav.src = icon_for_pages_without_favicon;
                var position = document.getElementById('identity-icon');
                position.parentNode.insertBefore(fav, position.previousSibling);
            }
        }, false);
        fav.style.height = '16px';
        fav.style.width  = '16px';
        fav.style.marginLeft  = '7px';
        fav.style.marginRight  = '3px';
        fav.style.marginTop  = '2px';
    
        var css =`
        /*------------------------------------------------*/
        /********** Anpassungen für Systemseiten **********/
        /*------------------------------------------------*/
    
        #identity-box[pageproxystate="valid"].localResource #identity-icon {
            list-style-image: unset !important;
        }
        #identity-box[pageproxystate="valid"].localResource #faviconid {
            margin-left: -15px !important;
            margin-bottom: 2px ;
        }
        
        #identity-box[pageproxystate="valid"].localResource::after {
            content: "Firefox"!important;
            margin-left: -2px !important;
            padding-left: -1px !important;
        }
        #identity-box[pageproxystate="valid"].localResource {
            margin-right: 8px !important;
            padding-right: 10px !important;
        }
        #identity-box[pageproxystate="valid"].localResource::after {
            background: url("chrome://global/skin/icons/info.svg") !important;
            background-repeat: no-repeat !important;
            background-position: 48px 2px !important;
            background-size: 16px 16px !important;   
            padding-right: 24px !important;
            -moz-context-properties: fill !important;
            fill: #ffcc00 !important;
        }
        
        /* chromeUI */
        
        #identity-box[pageproxystate="valid"].chromeUI #identity-icon {
            list-style-image: unset !important;
            width: 16px !important;
            height: 16px !important;
            background-image: url("${myPath}/firefox_logo_2004.svg")!important;
            background-repeat: no-repeat !important;
            background-size: 16px 16px !important;
        }
        #identity-box[pageproxystate="valid"].chromeUI #identity-icon-label {
            margin-bottom: 2px !important;
        }
        
        /* #identity-box[pageproxystate="invalid"]  */
        /* Der Code für about:home & about:welcome */
        
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"] #faviconid {
            display: none !important;
        }
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"] #identity-icon {
            list-style-image: unset !important;
            margin-left: 5px !important;
            background: url("${myPath}/firefox_logo_2004.svg")!important;
            background-size: 16px 16px !important;
        }
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"]::after {
            content: "Firefox"!important;
            margin-left: 1px !important;
        }
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"] {
            margin-right: 8px !important;
            padding-right: 10px !important;
        }
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"]::after {
            background: url("chrome://global/skin/icons/defaultFavicon.svg") !important;
            background-repeat: no-repeat !important;
            background-position: 48px 2px !important;
            background-size: 16px 16px !important;   
            padding-right: 24px !important;
            -moz-context-properties: fill !important;
            fill: #ffcc00 !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.AUTHOR_SHEET);
    
    })();
    Alles anzeigen
  • Eigene Icons für about:xxx in der Urlbar, bzw. im Container

    • Mira_Belle
    • 15. März 2023 um 22:57

    Wie ich schon in meinem letzten Beitrag angemerkt habe, gibt es ein kleines Problem!

    Habe das CSS nun so umgeschrieben, dass bei den internen Seiten die mitgelieferten Icons erhalten bleiben.

    Durch das JavaScript wird bei Seiten ohne eigenes Icon ein eigenes eingesetzt.

    Das wären die internen Seiten:

    about:checkerboard, about:logging, about:logo, about:memory, about:mozilla,

    about:networking, about:serviceworkers, about:third-party, about:unloads,

    about:url-classifier, about:webrtc & about:windows-messages.

    Seiten, die ein eigenes Icon mitbringen, sind:

    about:privatebrowsing, about:robots & about:sync-log,about:about & about:newtab.

    Bei den Seiten about:privatebrowsing, about:robots & about:sync-log

    soll das Icon nicht ersetzt werden sollen :!:

    Jedoch möchte ich, dass bei den Seiten about:about & about:newtab das Icon

    (chrome://branding/content/icon32.png) unbedingt durch das Icon,

    welches im JavaScript angegeben ist, ersetzt wird.

    Kann mir jemand eine Routine in das JavaScript einbauen, die das

    von mir gewünschte umsetzt?

    Prüfen des Symbols und wenn gleich icon32.png ersetzen durch var icon_for_pages_without_favicon?

    Hier noch einmal das betreffende Script:

    JavaScript
    var myPath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'));  // Pfadangabe zum Profilordner
    var myPrefix = "firefox_logo_2004.svg";  // Name (& Dateiendung) des anzuzeigenden Symbols
    var mySuffix = ' ';  // Dateiendung des anzuzeigenden Symbols
    var Src = myPath + myPrefix + mySuffix;
    var i_icon = 'chrome://global/skin/icons/info.svg';
    var sheet = 'chrome://global/skin/icons/Portrait.png';
    var brand = 'chrome://branding/content/icon32.png';
    var globe = 'chrome://global/skin/icons/defaultFavicon.svg';
    var all = 'chrome://global/skin/icons/settings.svg';
    
    var icon_for_pages_without_favicon = Src; // i_icon, sheet, globe or brand (colorized Fx channel icon)
    
    (function() {
        if (location.href !== 'chrome://browser/content/browser.xhtml') return;
            let fav = document.createXULElement('image');
            fav.setAttribute('id', 'faviconid');
            fav.setAttribute('class', 'faviconclass');
        gBrowser.tabContainer.addEventListener('TabAttrModified', function() {            
            let favicon = gBrowser.selectedTab.image;  
            if (favicon) {    
                fav.src = favicon;        
                var position = document.getElementById('identity-icon');
                position.parentNode.insertBefore(fav, position.previousSibling);
            }
           else {
               fav.src = icon_for_pages_without_favicon;
        var position = document.getElementById('identity-icon');
        position.parentNode.insertBefore(fav, position.previousSibling);
           }
        }, false);
        fav.style.height = '16px';
        fav.style.width  = '16px';
        fav.style.marginLeft  = '7px';
        fav.style.marginRight  = '3px';
        fav.style.marginTop  = '2px';
    })();
    Alles anzeigen

    Und hier das von mir geänderte CSS:

    CSS
        /* localResource (about:about) */
    
    #identity-box[pageproxystate="valid"].localResource #identity-icon {
        list-style-image: unset !important;
    }
    #identity-box[pageproxystate="valid"].localResource #faviconid {
      margin-left: -15px !important;
      margin-bottom: 2px ;
    }
    #identity-box[pageproxystate="valid"].localResource::after {
      content: "Firefox"!important;
      margin-left: -2px !important;
      padding-left: -1px !important;
    }
    #identity-box[pageproxystate="valid"].localResource {
      margin-right: 8px !important;
      padding-right: 10px !important;
    }
    #identity-box[pageproxystate="valid"].localResource::after {
      background: url("chrome://global/skin/icons/info.svg") !important;
      background-repeat: no-repeat !important;
      background-position: 48px 2px !important;
      background-size: 16px 16px !important;   
      padding-right: 24px !important;
      -moz-context-properties: fill !important;
      fill: #ffcc00 !important;
    }
    
        /* chromeUI */
    
        #identity-box[pageproxystate="valid"].chromeUI #identity-icon {
            list-style-image: unset !important;
            width: 16px !important;
            height: 16px !important;
            background-image: url("../icons/firefox_logo_2004.svg")!important;
            background-repeat: no-repeat !important;
            background-size: 16px 16px !important;
        }
    
        #identity-box[pageproxystate="valid"].chromeUI #identity-icon-label {
            margin-bottom: 2px !important;
        }
    
        /* #identity-box[pageproxystate="invalid"]  */
        /* Der Code für about:home & about:welcome */
    
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"] #faviconid {
            display: none !important;
        }
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"] #identity-icon {
            list-style-image: unset !important;
            margin-left: 5px !important;
            background: url("../icons/firefox_logo_2004.svg")!important;
            background-size: 16px 16px !important;
        }
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"]::after {
            content: "Firefox"!important;
            margin-left: 1px !important;
        }
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"] {
            margin-right: 8px !important;
            padding-right: 10px !important;
        }
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"]::after {
            background: url("chrome://global/skin/icons/defaultFavicon.svg") !important;
            background-repeat: no-repeat !important;
            background-position: 48px 2px !important;
            background-size: 16px 16px !important;   
            padding-right: 24px !important;
            -moz-context-properties: fill !important;
            fill: #ffcc00 !important;    
        }
    Alles anzeigen
  • Downloadordner bei EasyYoutubeVideoDownloader

    • Mira_Belle
    • 15. März 2023 um 16:31
    Zitat von Simbaro
    ...

    Es müsste also wohl eine eigene Einstellung für EasyYoutubeVideoDownloader geben?

    SG

    Simbaro

    Eventuell => https://www.computerbild.de/artikel/cb-Tip…l-31486363.html

    Übernehme aber keine Garantie!

  • benutzerdefiniertes Wörterbuch zur Rechtschreibkontrolle hinzufügen

    • Mira_Belle
    • 15. März 2023 um 16:26
    Zitat von Astrophytum

    Hallo Mira,

    danke für das Script! :)

    In der Tat wird wohl das verwenden mehrerer Profile das Problem sein.

    Ich bleibe dran.

    LG,

    Astrophytum

    Alles anzeigen

    Nichts zu Danken, ist ja nicht von mir, hatte halt nur die Idee ChatGPT mit einer Frage zu füttern.

    Aber ich hätte da noch Anmerkungen, andere Gedanken und Ideen!

    Bei einem solchen Script sollte es auch eine Sicherung der alten, originalen Datei geben,

    Eventuell muss es ja rückgängig gemacht werden.

    Menschliche Komponente, Nutzer die mehrere Profile nutzen sind, so glaube ich,

    keine Daus, also Nutzer, die wenige bis gar keine PC-Kentnisse besitzen,

    diesen kann man dann wohl zumuten, das richtige Benutzerprofil auszuwählen.

    Apropos Benutzerprofil, da muss natürlich auch noch eine Prüfroutine eingebaut werden

    und dann, wenn es tatsächlich mehrere Profile gibt, ein Auswahlfenster generiert werden.

    Wenn ich jetzt nichts vergessen habe, sollte es das gewesen sein.

  • benutzerdefiniertes Wörterbuch zur Rechtschreibkontrolle hinzufügen

    • Mira_Belle
    • 15. März 2023 um 10:47
    Zitat von Astrophytum
    Zitat von Mira_Belle

    Wenn da nichts verbogen wurde => %appdata%\Mozilla\Firefox\Profiles

    Hallo,

    der Pfad ist nicht vollständig, das Wichtigste fehlt, nämlich das aktuelle Profil. Und das ist eben bei jedem User anders benannt. Deswegen ist es so schwer, das per Batch anzusprechen. Und eine Umgebungsvariable gibt es auch nicht.

    Viele in FF gefällt mir, endliches überhaupt nicht.

    MfG

    Ja, ist mir schon klar, deshalb ja auch der Vorschlag per PowerShell Script.

    Denn in JavaScript ist es ja möglich den Pfad zum Profil "zu berechnen", das sollte

    in PS Script dann doch auch möglich sein.

    JavaScript => PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir))

    ------------------------------------------------------ von ChatGPT generiert -----------------------------------------------------------------

    In PowerShell könnten Sie den Profilordner von Firefox mit dem folgenden Skript ermitteln:

    Code
    # Pfade zu den relevanten Firefox-Dateien
    $firefoxPath = "$env:ProgramFiles\Mozilla Firefox\firefox.exe"
    $firefoxProfilePath = "$env:APPDATA\Mozilla\Firefox\Profiles"
    
    # Suchen nach dem Profilordner
    $profiles = Get-ChildItem $firefoxProfilePath -Directory
    foreach ($profile in $profiles) {
        $profilePath = Join-Path $profile.FullName "prefs.js"
        if (Test-Path $profilePath) {
            $firefoxProfileDir = $profile.FullName
            break
        }
    }
    
    # Konvertieren in eine File-URI
    if ($firefoxProfileDir) {
        $fileUri = (New-Object System.Uri($firefoxProfileDir)).AbsoluteUri
    }
    Alles anzeigen

    Dieses Skript sucht nach dem Installationspfad von Firefox und dem Profilordner im Benutzerverzeichnis.

    Es geht davon aus, dass der Profilordner von Firefox eine Datei namens prefs.js enthält, die zur Identifizierung

    des Profilordners verwendet werden kann.

    Wenn der Profilordner gefunden wird, wird er in eine File-URI umgewandelt und in der Variable $fileUri gespeichert.

    Wenn Sie sichergehen möchten, dass der gefundenen Profilordner tatsächlich von Firefox stammt,

    können Sie in der Schleife auch nach einer bestimmten Datei oder einem bestimmten Verzeichnis suchen,

    die oder das nur in Firefox-Profilordnern vorhanden ist.

    ------------------------------------------------------ von ChatGPT generiert ----------------------------------------------------------------

    Ob es so funktionieren kann, weiß ich nicht!

    Ein Pferdefuß könnte sein, wenn jemand mehrere Profile hat.

    Aber auch das sollte möglich sein, z.B. eine Abfrage wohin die persdict.dat dann kopiert werden soll.

  • benutzerdefiniertes Wörterbuch zur Rechtschreibkontrolle hinzufügen

    • Mira_Belle
    • 14. März 2023 um 21:34

    Sorry, ein klassisches Missverständnis.

    Ich würde einmalig auf einem System das Wörterbuch einer Firefoxinstallation mit den "Fachbegriffen, lateinische Namen und den Trivialnamen" füttern und dann die Datei persdict.dat per Batch oder wie auch immer verteilen.

    Dürfte einfacher sein als ein zertifiziertes Wörterbuch zu erstellen und auch schneller.

    Eventuell geht auch ein PowerShell Script, welches erst den Profilpfad abfragt und dann einfach die persdict.dat kopiert

    und die vorhandene ersetzt.

  • benutzerdefiniertes Wörterbuch zur Rechtschreibkontrolle hinzufügen

    • Mira_Belle
    • 14. März 2023 um 20:00
    Zitat von Sören Hentzschel

    Auf der verlinkten Seite steht doch überhaupt nichts zum Erstellen eines Wörterbuchs. :/

    Falls es bei der Recherche hilft: Es handelt sich um Hunspell-Wörterbücher.

  • benutzerdefiniertes Wörterbuch zur Rechtschreibkontrolle hinzufügen

    • Mira_Belle
    • 14. März 2023 um 17:16
    Zitat von Astrophytum

    Das war auch mein Gedanke, welchen ich Anfangs äußerte.

    Ich mache mich schlau, wie ich eigenes Wörterbuch erstellen kann....


    ... nach 15 min Recherche habe ich nichts gefunden, wie ich eigenes Wörterbuch erstellen kann, sorry.

    Rechtschreibprüfung in Firefox nutzen | Hilfe zu Firefox

    Funktioniert bei mir aber leider nicht.

    Zitat von Astrophytum

    Hallo,

    das per Batch an den richtigen Pfad zu kopieren ist klar.

    Die Frage ist, wie bekomme ich in einer Batch den aktuell genutzten Pfad des Profilordners von FF heraus?

    Und ich müsste die neuen Wörter an die vorhanden Datei anhängen, was wiederum nicht das Problem ist.

    Dank & Gruß

    Wenn da nichts verbogen wurde => %appdata%\Mozilla\Firefox\Profiles

  • Eigene Icons für about:xxx in der Urlbar, bzw. im Container

    • Mira_Belle
    • 14. März 2023 um 13:26

    Meine Schlafstörung hat mich mal wieder wach gehalten heute Nacht.

    Habe dann etwas an dem JavaScript verändert und auch das CSS angepasst.

    Dabei ist mir aufgefallen, dass oben im Script, wenn man beide Teile aus #5 und aus #10 zusammen führen möchte,

    ein gemeiner Bug vorhanden ist.

    Deshalb hier das ganze und korrigierte Script

    JavaScript
    // FavIconInUrlBar.uc.js
    // Source file https://www.camp-firefox.de/forum/thema/130540/?postID=1214926#post1214926
    // Source file https://www.camp-firefox.de/forum/thema/136090r/?postID=1221738#post1221738
    
    var myPath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'));  // Pfadangabe zum Profilordner
    var myPrefix = "default-browser-red.svg";  // Name (& Dateiendung) des anzuzeigenden Symbols
    var mySuffix = ' ';  // Dateiendung des anzuzeigenden Symbols
    var Src = myPath + myPrefix + mySuffix;
    var i_icon = 'chrome://global/skin/icons/info.svg';
    var sheet = 'chrome://global/skin/icons/Portrait.png';
    var brand = 'chrome://branding/content/icon32.png';
    var globe = 'chrome://global/skin/icons/defaultFavicon.svg';
    var all = 'chrome://global/skin/icons/settings.svg';
    var icon_for_pages_without_favicon = Src; // i_icon, sheet, globe or brand (colorized Fx channel icon)
    
    (function() {
        if (location.href !== 'chrome://browser/content/browser.xhtml') return;
            let fav = document.createXULElement('image');
            fav.setAttribute('id', 'faviconid');
            fav.setAttribute('class', 'faviconclass');
        gBrowser.tabContainer.addEventListener('TabAttrModified', function() {            
            let favicon = gBrowser.selectedTab.image;  
            if (favicon) {    
                fav.src = favicon;        
                var position = document.getElementById('identity-icon');
                position.parentNode.insertBefore(fav, position.previousSibling);
            }
           else {
               fav.src = icon_for_pages_without_favicon;
        var position = document.getElementById('identity-icon');
        position.parentNode.insertBefore(fav, position.previousSibling);
           }
        }, false);
        fav.style.height = '16px';
        fav.style.width  = '16px';
        fav.style.marginLeft  = '7px';
        fav.style.marginRight  = '3px';
        fav.style.marginTop  = '2px';
    })();
    Alles anzeigen

    und auch das geänderte CSS

    CSS
        /*------------------------------------------------*/
        /********** Anpassungen für Systemseiten **********/
        /*------------------------------------------------*/
        /* https://www.camp-firefox.de/forum/thema/135966/?postID=1219832#post1219832 */
        /* localResource (about:about) */
    
        #identity-box[pageproxystate="valid"].localResource #faviconid {
            display: none !important;
        }
        #identity-box[pageproxystate="valid"].localResource #identity-icon {
            width: 16px !important;
            height: 16px !important;
            margin-left: 4px !important;
            background-image: url("../icons/firefox_logo_2004.svg")!important;
            background-repeat: no-repeat !important;
            background-size: 16px 16px !important;
            list-style-image: unset !important;
        }
        #identity-box[pageproxystate="valid"].localResource::after {
            content: "Firefox"!important;
            margin-left: -2px !important;
            padding-left: -1px !important;
        }
        #identity-box[pageproxystate="valid"].localResource {
            margin-right: 8px !important;
            padding-right: 10px !important;
        }
        #identity-box[pageproxystate="valid"].localResource::after {
            background: url("chrome://global/skin/icons/info.svg") !important;
            background-repeat: no-repeat !important;
            background-position: 48px 2px !important;
            background-size: 16px 16px !important;   
            padding-right: 24px !important;
            -moz-context-properties: fill !important;
            fill: #ffcc00 !important;
        }
    
        /* chromeUI */
    
        #identity-box[pageproxystate="valid"].chromeUI #identity-icon {
            list-style-image: unset !important;
            width: 16px !important;
            height: 16px !important;
            background-image: url("../icons/firefox_logo_2004.svg")!important;
            background-repeat: no-repeat !important;
            background-size: 16px 16px !important;
        }
    
        #identity-box[pageproxystate="valid"].chromeUI #identity-icon-label {
            margin-bottom: 2px !important;
        }
    
        /* #identity-box[pageproxystate="invalid"]  */
        /* Der Code für about:home & about:welcome */
    
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"] #faviconid {
            display: none !important;
        }
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"] #identity-icon {
            list-style-image: unset !important;
            margin-left: 5px !important;
            background: url("../icons/firefox_logo_2004.svg")!important;
            background-size: 16px 16px !important;
        }
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"]::after {
            content: "Firefox"!important;
            margin-left: 1px !important;
        }
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"] {
            margin-right: 8px !important;
            padding-right: 10px !important;
        }
        #urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"]::after {
            background: url("chrome://global/skin/icons/defaultFavicon.svg") !important;
            background-repeat: no-repeat !important;
            background-position: 48px 2px !important;
            background-size: 16px 16px !important;   
            padding-right: 24px !important;
            -moz-context-properties: fill !important;
            fill: #ffcc00 !important;    
        }
    Alles anzeigen

    Und das "alte" und schönere Firefoxlogo => firefox_logo_2004.zip

    Nun, einen Tod muss man wohl immer sterben!

    Mit dieser Anpassung verlieren leider die Seiten about:privatbrowsing, about:robots und

    auch about:sync-log ihre eigenen Favicons (Symbole) :!:

    Das finde ich irgendwie auch doof, habe aber leider keine Lösung dafür.

  • Eigene Icons für about:xxx in der Urlbar, bzw. im Container

    • Mira_Belle
    • 14. März 2023 um 04:35

    Schlafstörungen sind doch was Feines, man hat Zeit um Dinge zu tun, die man eigentlich gar nicht tun müsste.

    Habe das JavaScript mal ergänzt!

    JavaScript
    var myPath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'));  // Pfadangabe zum Profilordner
    var myPrefix = "bug_1";  // Name (& Dateiendung) des anzuzeigenden Symbols
    var mySuffix = '.svg';  // Dateiendung des anzuzeigenden Symbols
    var Src = myPath + myPrefix + mySuffix;
    var i_icon = 'chrome://global/skin/icons/info.svg';
    var sheet = 'chrome://global/skin/icons/Portrait.png';
    var brand = 'chrome://branding/content/icon32.png';
    var globe = 'chrome://global/skin/icons/defaultFavicon.svg';
    var all = 'chrome://global/skin/icons/settings.svg';
    var icon_for_pages_without_favicon = Src; // i_icon, sheet, globe or brand (colorized Fx channel icon)
    (function() { ....
    Alles anzeigen

    Wenn ein eigenes Icon aus dem "%appdata%\Mozilla\Firefox\Profiles\chrome\icons"- Ordner verwendet werden soll,

    oder eines von den "Internen".

    Ach, wenn unter var myPrefix der Name & die Endung angegeben wird,

    muss die Dateiendung unter var mySuffix gelöscht werden, also vR mymySuffix = ' ';.

  • benutzerdefiniertes Wörterbuch zur Rechtschreibkontrolle hinzufügen

    • Mira_Belle
    • 13. März 2023 um 22:42

    @Astrophytum

    Wenn Du doch schon eine aktuelle Datei persdict.dat hast, kannst Du doch diese kopieren und dann verteilen.

    Eventuell für Dummies ein Batch erstellen, damit das Kopieren in den richtigen Ordner von alleine erfolgt.

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