Übersetzung meiner CSS-Styles für die userChrome.css und userContent.css

  • Firefox-Version
    Firefox 92.0.1
    Betriebssystem
    Xubuntu 20.04

    Hallo, ich habe versucht die Scrollbalken an meinen abgeänderten Style für das Xfce-Theme anzupassen. Über about:config geht das, die Funktion läuft laut dieser Antwort hier aber aus. Es geht noch über die userChrome und userContent, da muss man aber irgendwie den CSS-Code ändern. Das hier geht:

    Code
    :root {
    scrollbar-color: #BA0B00 #000000; scrollbar-width: auto;
    }

    meine Änderungen sind aber deutlich mehr und nach diesem Muster:

    Code
    scrollbar { background-image: linear-gradient(to right, #e8e8e8, white); border: 0; transition: 300ms cubic-bezier(0.25, 0.46, 0.45, 0.94); }
    *, headerbar.selection-mode .subtitle:link, .selection-mode.titlebar:not(headerbar) .subtitle:link { -GtkScrollbar-has-backward-stepper: 1; -GtkScrollbar-has-forward-stepper: 1; -GtkScrollbar-has-secondary-forward-stepper: 1; }
    scrollbar slider { min-width: 15px; min-height: 15px; margin: 0 ; border: 1px solid #828282; border-radius: 3px; background-clip: padding-box; background-image: linear-gradient(to right, #dbdbdb, #d1d1d1); }
    scrollbar.fine-tune slider { min-width: 11px; min-height: 11px; border: 3px solid #828282; }
    scrollbar button { padding: 0; min-width: 15px; min-height: 15px; border-style: none; border-radius: 0; transition-property: min-height, min-width, color; border-color: transparent; background-image: linear-gradient(to right, #dbdbdb, #d1d1d1); box-shadow: inset 0 1px rgba(255, 255, 255, 0); text-shadow: none; -gtk-icon-shadow: none; color: #595959; }
    scrollbar button:hover { border-color: transparent; background-image: linear-gradient(to right, blue, blue); box-shadow: inset 0 1px rgba(255, 255, 255, 0); text-shadow: none; -gtk-icon-shadow: none; color: #e8e8e8; }

    Wie übersetze ich das in "Firefox-kompatiblen" CSS-Code? Oder gehen solche komplexen Änderungen nicht umzusetzen?

  • Wenn ich mich nicht irre, gehen solche Anpassungen nur per Script. Ich nutze dafür folgendes Script:

    Vielleicht hilft dir das ja weiter.

  • Ich verstehe die Frage nicht. Natürlich gibt es hinter allem eine Logik. Das heißt aber nicht, dass man via userChrome.css auf alles Zugriff hat.

    Wieso brauchst du eigentlich so viele verschiedene Themen nur für die Scroll-Leiste? Das kann doch alles in einem Thema diskutiert werden, da es de facto alles das gleiche Thema ist?

  • Das Script scheint für eine userChrome.js, nicht für die userChrome.css da zu sein.

    Zitat

    Ich verstehe die Frage nicht. Natürlich gibt es hinter allem eine Logik.

    Gibt es eine Seite wo diese erklärt ist? Ich bin kein Experte für CSS, bekomme es aber hin für GTK3 einfache Anpassungen vorzunehmen. Die gehen aber 1:1 nicht im Firefox, also müsste ich den "GTK-CSS-Code" in irgendetwas übersetzen, dass Firefox damit arbeiten kann.

    Zitat

    Das heißt aber nicht, dass man via userChrome.css auf alles Zugriff hat.

    Das kann sein, nur weiß ich aktuell nicht was alles geändert werden kann. Ich vermute nicht, dass das irgendwie steht?

  • Wenn ich mich nicht irre, gehen solche Anpassungen nur per Script. Ich nutze dafür folgendes Script:

    Das ist richtig: Der Grund ist, dass die normale 'userChome.css' als 'USER_SHEET' registriert und ausgeführt wird. Damit kann man aber bestimmte Elemente(z.B. Scrollbars) der Firefox-Oberfläche nicht erreichen, bzw sie werden wieder überschrieben. Deswegen hat Aris auch den CSS-Code in ein Skript verpackt. Das Skript ist nur ein Wrapper für den CSS-Code (das Skript besteht eigentlich nur aus CSS-Codes), der dann als 'AGENT_SHEET' mit höherer Priorität ausgeführt wird.

    Gruß BrokenHeart

    "success has many fathers, failure is an orphan"

  • Das Script funktioniert unter Linux nicht. Ich hab jetzt bestimmt 10 bis 15x alles wie hier https://github.com/Aris-t2/Scrollbars beschrieben ausgeführt und es tut sich absolut nichts (beide Methoden). Unter Windows funktionierte es sofort.

    Bei mir ist Firefox in "/usr/bin" installiert und genau da habe ich die Datei und den Ordner aus dem "firefox"-Unterordner hinkopiert. Die anderen in den Profil-Ordner unter "chrome", Firefox beendet, den Startup-Cache gelöscht und Firefox neu gestartet: Nichts.

  • Das Script funktioniert unter Linux nicht.

    Funktionieren denn andere Scripte?

    Teste dieses bitte mal, das erstellt einen Neustart Button:

  • Das Script funktioniert unter Linux nicht.

    Ich musste die Dateien und Ordner allerdings nach /usr/lib/firefox kopieren.

    Und das ist auch richtig so, egal in welcher Distri. In /usr/bin liegt nur ein Wrapperscript, damit Programmaufrufe nicht ins Leere laufen.

    In /usr/bin liegen keine Programmordner, wohin man hätte irgendwas kopieren können...also immer genau schauen, was man macht.

  • Soviel ich als Windows-Nutzer weiß, können die Firefox-Dateien in /opt/firefox/, /usr/lib/firefox/ oder /usr/bin/firefox/ liegen. Ansonsten gebt mal about:support in die Adressleiste ein und geht zu Allgemeine Informationen --> Anwendungsprogrammdatei. Dort sollte sich der Pfad zur Programmdatei befinden. Zumindest wird hier unter Windows der Pfad zur firefox.exe angzeigt.

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • milupo

    Wie ich schon sagte, in /usr/bin liegen keine Ordner sondern nur Programme bzw. Startscripte - i m m e r -

    Diese Systemverzeichnisse werden bei einer Installation aus dem Repo der jeweiligen Distri verwendet.

    Es obliegt dem Paketbetreuer (Maintainer), wohin der Pfad zeigt, da richtet er sich natürlich an die Vorgaben der Distri.

    Nach /opt werden gewöhnlicherweise nur Programme installiert, die nicht aus dem Repo stammen, sondern von externen Anbietern.

    Das können z.B. Opera oder auch LibreOffice Pakete sein, die vom Anbieter erstellt und auf deren HP zur Verfügung gestellt werden.

    Selbstkompilierte Programme werden auch sehr oft nach /usr/local installiert, die Original-Archive z.B. von Mozilla kann ich aber auch in mein Homeverzeichnis entpacken und von dort aus starten. Oder wenn es global sein soll, nach /opt oder nach /usr/local, das bleibt dem Linux-User überlassen, er sollte sich aber nach den Standardvorgaben eines Linux-Systems richten.

  • Zitat

    Funktionieren denn andere Scripte?

    Teste dieses bitte mal, das erstellt einen Neustart Button:

    Ich vermute ich muss bei dem Script genau so vorgehen? Ich hab es nach PROFILE/chrome/userChrome kopiert, den Startup-Cache geleert und den Firefox neu gestartet. Wo sollte der Button liegen? Im File-Menü finde ich erstmal nichts.

    Ja, die Firefox-Dateien liegen tatsächlich in '/usr/lib/firefox', so wird es auch in about:support angezeigt. Ich hab mir das vorher mit 'which firefox' anzeigen lassen. Das ändert aber am Verhalten nichts. Hab es mit einem komplett neuen Profil versucht.

  • Das ändert aber am Verhalten nichts.

    Auf einem 2ten Rechner funktioniert es hier z.Z. auch noch nicht, beides sind ubuntu basierende Linux-Kisten und auf einer funktionierte es auf Anhieb und die 2te Kiste lädt derzeit auch noch keine Scripts. Auf beiden Rechnern sind m.M.n. die Dateien identisch kopiert und auch die Rechte sind gleich, trotzdem werden die Scripte auf dem 2ten Rechner nicht geladen. :(

    Es grüßt,

    Ralf

  • Wird auf beiden die gleiche Version von Firefox verwendet? Ich habe es auch auf einem zweiten Rechner versucht, da gibt es keinen Startup-Cache. Da wird beim Profil in about:profiles kein Cache-Folder angezeigt. Unter ~/.cache/mozilla/firefox/ gibt es den Profilnamen überhaupt nicht, den es im Profilordner gibt.

  • nach PROFILE/chrome/userChrome kopiert

    Was verstehst du hier unter userChrome? Einen Ordner? Den gibt es nicht. Für Skripte muss die Datei userChrome.js direkt im Ordner chrome des Profils sein. Inhalt dieser userChrome.js muss sein:

    JavaScript
    // userChrome.js
    userChrome.ignoreCache = true;
    userChrome.import("*", "UChrm");

    Im Ordner chrome des Profils müssen dann auch die Skripte liegen.

    Falls du doch nur userChrome siehst, gehe in deinen Dateimanager und lasse dir die Dateiendungen einblenden. Es gibt ja noch die Datei userChrome.css, die ebenfalls im Ordner liegt, falls du CSS nutzt. Beide Dateien dürfen auch keine anderen Dateiendungen haben, es muss also unbedingt userChrome.js (bzw. bei CSS) userChrome.css heißen. Überprüfe das bitte.

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • kann es sein, das die utilities.js in der Zip-Datei für Firefox Anpassungen : die Basis noch nicht die Änderung aus #Funktionelle Änderungen am Firefox durch Scripte enthält?

    Soviel ich weiß, hat das Endor auf seiner Seite bereits geändert. Wenn der TE die firefox-anpassungen.zip jetzt erst heruntergeladen hat, sollte die Änderung eigentlich enthalten sein.


    Ich habe jetzt auf der ersten Maschine, auf der die Scripte noch nicht funktionierten, die angepasste utilities.js ins entsprechende Verzeichnis kopiert, den Scriptcache gelöscht und siehe da nun funktionieren die Scripte.

    Dann hattest du wahrscheinlich dort die Vorbereitungen zu den Skripten getroffen, nur die utilities.js nicht aktualisiert.

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

    2 Mal editiert, zuletzt von milupo (3. Oktober 2021 um 18:30) aus folgendem Grund: Ein Beitrag von milupo mit diesem Beitrag zusammengefügt.