Kontextmenüeinträge, Identifier von Add-Ons mit Zähler/Nr. sortieren

  • Hallo,
    ich sortiere in meinem FF 60.0.1. die Kontextmenüeinträge.
    Wie bereits hier wunderbar erklärt, kann man die Reihenfolge der Menüeinträge festlegen, indem man im Custom-CSS den Identifiern (CSS-Selektoren) mittels der Anweisung "-moz-box-ordinal-group:" eine Position zuweist.

    Merkwürdigerweise kommen im Quelltext für das Kontextmenü immer wieder "neue" Identifier für denselben Menüeintrag eines Add-Ons hinzu. Irgendeine Routine hängt einfach eine Zahl hinten an den Indentifier. In meinem unten zitierten CSS-Quellcode sieht man bspw., dass der Menüeintrag des Add-Ons Context Search des Autors Olivier de Broqueville mittlerweile mit dem Zähler 4 im Quellcode für das Kontextmenü auftaucht. Also musste ich alle diese hochgezählten Identifier in meinem Custom-CSS eintragen.

    Heute war ebendieser Kontextmenüeintrag wieder nicht an der gewünschten obersten Position in meinem FF-Kontextmenü. Als ich den Indentifier identifizierte, hatte er den Zähler 8, also "olivier_debroqueville_gmail_com_8". Das nervt gewaltig.
    Wie unten im Code zu sehen, zählen auch andere Add-Ons wie Print-Edit (printedit-we_dw-dev_5) die Identifier mit einer Ziffer nach oben.
    Wie kann man das in den Griff bekommen?

  • Statt z.B. dieser Bezeichnung:

    Code
    id="olivier_debroqueville_gmail_com-menuitem-2"

    Den Eintrag direkt per Namen ansprechen:
    Für z.B. Ask immer ganz oben sollte so funktionieren:

    CSS
    menuitem[label="Ask"]{
    	-moz-box-ordinal-group: 0 !important;} 
    }
  • Vielen Dank für beide Tipps, die ich auch beide testete.

    Wenn ich die Einträge nur über [id^=...] anspreche, kann ich immerhin auch die Separatoren (Trennlinien) ansprechen.


    Allerdings funktioniert die Reihenfolge der Einträge ziemlich zufällig. Ich kann den FF dreimal neu starten und erhalte 3 unterschiedliche Reihenfolgen im Kontextmenü, manchmal auch in der gewünschte Reihenfolge. Ich kann den FF aber auch dreimal neu starten und erhalte 3 mal die gleiche falsche Reihenfolge.

    Wenn ich die Einträge über ihre Label menuitem[label="..."] anspreche, erreiche ich offenbar stabil die gewünschte Reihenfolge.


    Allerdings fühlen sich offenbar die Trennlinien nicht angesprochen, denn die einzige Trennlinie, die dann überhaupt im Kontextmenü erscheint, liegt dann sinnloserweise ganz oben. Ich zeige das mal mit einem Bild.
    Kann man die Trennlinien irgendwie auch über ein Label menuitem[label="..."] ansprechen?

  • Hier mal ein paar ids von den Separatoren aus dem Rechtklick Kontextmenü:

    Code
    #context-sep-selectall,
    #inspect-separator,
    #context-sep-viewsource,
    #context-sep-viewbgimage,
    #context-sep-navigation,
    #context-sep-sendpagetodevice

    Hoffe,dass einer davon passt.
    Mfg.
    Endor

    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/124.0.1
    OS: Windows 10 pro 64 bit und Windows 10 Home 64 bit
    Meine Scripte Sammlung: https://github.com/Endor8/userChrome.js
    Kein Support per PN. Fragen bitte im Forum stellen!


  • [...]


    Setze mal die IDs in Anführungszeichen. Ich habe das in meinem Post versäumt zu tun.
    Aber die MDN-Seite zeigt das eigentlich auch mit Anführungszeichen... :wink:

    CSS
    [id^="printedit-we_dw-dev"] {
        -moz-box-ordinal-group: 2 !important;
    }

    Windows 10 | FF 62.0 (64-Bit) / FF 61.0 (64-Bit) / FF 63.0 (64-Bit)

  • Also ... in ob man die id-Selektoren in Anführungsstriche setzt oder nicht, scheint keine Rolle zu spielen.

    Ich muss an dieser Stelle auch ergänzen, dass sich mein Problem konkret auf jenes Kontextmenü bezieht, wenn ich irgendwelchen Text markiere und dann mit rechtem Mausklick das Kontextmenü aufrufe. Ich bearbeite hier also konkret die Datei select-context.css

    Mit [id^=...] ist die Reihenfolge im Kontextmenü nun mehr oder minder stabil. Immerhin ein einziger Separator lässt sich damit auch sortieren, nämlich context-sep-selectall. Alle anderen Separatoren sind im "Select"-Kontext entweder gar nicht ansprechbar oder sträuben sich beharrlich, wie bspw. inspect-separator.

    Was mich jedoch nach wie vor gewaltig irritiert, ist, dass sich speziell das Select-Kontextmenü nach FF-Neustart unterschiedlich aufbaut, jedenfalls manchmal, manchmal auch öfter. Manchmal fehlt der für mich wichtigste Kontextmenüeintrag "Context Search" 5(!) FF-Neustarts lang. Das bedeutet, erst beim 6. Neustart erscheint "Context Search" wieder im Kontextmenü. Aber eben nur manchmal. Da scheint doch was an der FF-Rendering-Engine faul zu sein, wenn FF seine eigene Benutzeroberfläche oder die der Webextensions nicht gleichbleibend sorgfältig parst.

  • Also ich habe mir das jetzt einmal angeschaut und so wie ich das sehe, funktioniert die "Sortierung" mit -moz-box-ordinal-group nicht (mehr). "Nicht mehr" deshalb, weil mir persönlich die Reihenfolge im Kontext-Menü völlig egal ist, da ich es nur nutze, wenn nichts anderes mehr geht und ich nie versucht habe, die Reihenfolge zu ändern. Ich weiss also nicht, ob das jemals zuverlässig funktioniert hat.
    Mit Sicherheit kann ich aber jetzt sagen, das es - zumindest in Version 61 - so nicht zuverlässig arbeitet.
    Als Objekte habe ich mir die Einträge von zwei Extensions angeschaut, Swift Selection Search und Deep Translator.
    Während Swift Selection Search sich mit

    CSS
    [id^="jid1-kdtticj6wxvafa_jetpack-menuitem-_sss"] {
    	-moz-box-ordinal-group: 0 !important;
    }


    direkt dazu bewegen liess, den ersten Platz in meinem Kontext-Menü einzunehmen, konnte ich Deep Translator weder mit

    CSS
    [id^="deeptranslator_pkos_com-menuitem-_DeepTranslator"] {
    	-moz-box-ordinal-group: 1 !important;
    }


    noch mit

    CSS
    menuitem[label="Translate this"] {
    	-moz-box-ordinal-group: 1 !important;
    }

    dazu zwingen, seinen Platz an letzter Stelle im Kontext-Menü zu räumen.
    Ergo ist für mich -moz-box-ordinal-group nicht zuverlässig und nicht oder nicht alleine für die Positionierung verantwortlich.


    [...]Ich bearbeite hier also konkret die Datei select-context.css[...]


    Und woher nimmst du diese Datei?... :-??

    Windows 10 | FF 62.0 (64-Bit) / FF 61.0 (64-Bit) / FF 63.0 (64-Bit)


  • ... so wie ich das sehe, funktioniert die "Sortierung" mit -moz-box-ordinal-group nicht (mehr).

    Danke. Das ist zumindest ein mich beruhigendes Zeichen, dass die Fehlerursache außerhalb meines Unvermögens zu liegen scheint.

    Mir ist die Reihenfolge im Kontextmenü sehr wichtig, weil
    a) kurze Mausbewegungen Zeit sparen
    und
    b) ich die nötigen Mausbewegungen nach einer Weile eingeübt, also quasi konditioniert habe.
    Wenn dann plötzlich das Menü nicht mehr dort ist, wo ich es erwartete, nervt das und kostet Zeit.


    Und woher nimmst du diese Datei?... :-??


    Na, aus stonecrushers Github-Repository.


  • Flexbox ist eine Alternative zu -moz-box-ordinal-group.


    Also, bei mir funktioniert es bestens mit -moz-box-ordinal-group, nicht aber mit der Flexbox-Variante. Zunächst dachte ich, man müsste ja erst einmal festlegen, dass es sich um eine Flexbox handeln soll, das Ergebnis sah aber schlimm aus – das Kontextmenü wird in die Titlelleiste integriert (ich benutze CustomCSSfor Fx mit Anpassungen u.a. für den Titel). Die Regeln sahen so aus:

    CSS
    #contentAreaContextMenu {
    	display: flex !important;
    	flex-direction: column !important;
    }
    
    
    menu[id*="5dd73bb9-e728-4d1e-990b-c77d8e03670f"] { order: 1 !important; } /* Contextsearch */
    menu[id*="ecdeca5f-93eb-4757-8cad-9c4ab7568649"] { order: 2 !important; } /* Link Text an Location Copier */
    menu[id^="s3google_translator-menuitem"] { order: 3 !important; }
    menuitem[id^="ublock0_raymondhill_net-menuitem"] { order: 4 !important; }

    Ohne die Festlegung für das Kontextmenü erfolgt bei mir aber keine Beeinflussung.