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. Boersenfeger

Beiträge von Boersenfeger

  • Tabs angepasst, jetzt im Nightly zusätzlicher Rahmen zu sehen

    • Boersenfeger
    • 14. November 2021 um 15:03

    milupo ist 2x auf

    CSS
    margin-left: -5px !important;

    geändert. :)

    2002Andreas:

    Wo könnte ich denn was probieren?

    Auch das im ausgewählten Tab die Tabbeschriftung nicht fett ist, fehlt noch

    Hier nochmal der ganze Code nach der Anpassung wg milupos Hinweis

    CSS
        /* Tabs rund und farbig */
    
        /* Angaben für die TAB-Leiste*/
    
        /* TAB normal (inaktiv):
        * Hintergrundfarbe, Schriftfarbe,
        * Rahmen um die TABs, oben abgerundet und Abstände angepaßt,
        * unten kein Rahmen -> Abschlußrahmen vom Container.*/
    
       
        #TabsToolbar .tabbrowser-tab {
        color: black !important;
        border: 1px solid !important;
        border-bottom: 1px solid black !important;
        border-radius: 16px 16px !important;
        margin-top: 0px !important;
        padding: 0 !important;
        }
    
        /* TAB bei bei angewähltem TAB (aktiv):
        * Hintergrundfarbe, Rahmen,
        * Schriftfarbe. */
     
       .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) > .tab-stack > .tab-background {
        background: red !important;
        border-radius: 16px 16px !important;
        margin-top: 0px !important;  
        border: none !important;
        color: black ! important; 
        }
    
        #TabsToolbar .tabbrowser-tab:not([selected="true"]) {
        border-radius: 16px 16px !important;
        margin-top: 0px !important;
        padding: 0 !important;
        color: black ! important; 
        }
    
        /* Tab-Icon etwas größer,
        * links weniger, unten etwas mehr Abstand zum TAB-Rand.*/
     
        #TabsToolbar .tab-icon-image {
        height: 20px !important;
        width:  20px !important;
        margin-left: -5px !important;    
        margin-bottom: 2px !important;
        }
            
        /* Tab-Schließen-Button:
        * Rechts weniger Abstand zum TAB-Rand, etwas größer,
        * Textfarbe (Kreuz)
        * Hintergrundfarbe, an den Eckenradius des Buttons angepaßt */
     
        #TabsToolbar .tab-close-button {
        margin-right: -8px !important; 
        font-weight: bold !important;    
        color: black !important; 
        }
    
        #TabsToolbar .tab-close-button .toolbarbutton-icon {
        height: 20px !important;
        width:  20px !important;    
        background-color: red !important;
        border-radius: 12px !important; 
        }
        
        /* Schliessen-Button nur wenn angewählt */
    
        tab:not([selected]) .tab-close-button {display: none !important; 
        }
    
     
        /* Schriftgröße Tabs */
    
        .tab-text {
        font-size:15px !important;
        }
        
        /* Damit wird der Tabtext am Ende nicht ausgeblendet */
        
        .tab-label-container[textoverflow][labeldirection=ltr]:not([pinned]),
        .tab-label-container[textoverflow]:not([labeldirection]):not([pinned]):-moz-locale-dir(ltr) {
        direction: ltr;
        mask-image: linear-gradient(to left, transparent, black 0em) !important; 
        }
        
        /* Doppelte Schliessung ausblenden */
    
        #TabsToolbar > .titlebar-buttonbox-container {
        display:none !important; 
        }
    
        /* Tabs Proton-Design */
    
        :root {
        --proton-tab-radius: 0px !important;
        --proton-tab-block-margin: 0px !important;
        --inline-tab-padding: 10px !important;
        }
    
        #TabsToolbar .tabbrowser-tab {
        max-height: 34px !important;    
        border-top: 1px solid #B2B2B2 !important;
        border-bottom: 1px solid #B2B2B2 !important; 
        margin-bottom: 1px !important;
        padding-left: 0 !important;
        }
    
        #TabsToolbar .toolbarbutton-1 {
        margin-top: 2px !important;    
        margin-bottom: 2px !important;
        }
    
        #TabsToolbar .toolbarbutton-1 > image {
        padding: 2px 4px !important;
        }
    
        /* Rahmen um die Tableiste durchsichtig */
    
        #TabsToolbar {
        border: 0.2px solid transparent !important;
        }
         
        #TabsToolbar:hover {
        border: 0.2px solid transparent !important;
        }     
    
        .tabbrowser-tab[label*=" - YouTube"] .tab-content,
        .tabbrowser-tab[label*="YouTube - youtube.com"] .tab-content {
        background-image: linear-gradient(to bottom, red 0%, red 14%, red 14%, red 100%) !important;
        }
        
        .tabbrowser-tab[label*=" - YouTube"][selected="true"] .tab-content,
        .tabbrowser-tab[label*="YouTube - youtube.com"][selected="true"] .tab-content {
        background-image: linear-gradient(to bottom, green 0%, green 14%, red 14%, red 100%) !important;
        }
        
        .tabbrowser-tab[label*=" - YouTube"]:hover .tab-content,
        .tabbrowser-tab[label*="YouTube - youtube.com"]:hover .tab-content {
        background-image: linear-gradient(to bottom, saddlebrown 0%, saddlebrown 14%, saddlebrown 14%, saddlebrown 100%) !important;
        }
        
        .tabbrowser-tab[label*=" - YouTube"][selected="true"]:hover .tab-content,
        .tabbrowser-tab[label*="YouTube - youtube.com"][selected="true"]:hover .tab-content {
        background-image: linear-gradient(to bottom, green 0%, green 14%, saddlebrown 14%, saddlebrown 100%) !important;
        } 
    
        .tabbrowser-tab .tab-content vbox.tab-label-container.proton {
        -moz-box-orient: horizontal !important;
        } 
        
        /*Lautsprechersymbol violet bei Sound*/
        
        .tab-icon-overlay[soundplaying] {
        fill: blueviolet !important;
        margin-left: -5px !important;
        }
    
        /*Lautsprechersymbol gelb bei Stumm*/
        
        .tab-icon-overlay[muted] {
        fill: yellow !important;
        margin-left: -5px !important;
        }
      
        .tabbrowser-tab .tab-content vbox.tab-label-container.proton label[class="tab-icon-sound-label tab-icon-sound-blocked-label"],
        .tabbrowser-tab .tab-content vbox.tab-label-container.proton label[class="tab-icon-sound-label tab-icon-sound-playing-label"],
        .tabbrowser-tab .tab-content vbox.tab-label-container.proton label[class="tab-icon-sound-label tab-icon-sound-muted-label"] {
        display: none !important;
        }
    
        /* Tab Beschriftung mittig */
        
        .tab-content {
        display: flex !important; 
        margin-top: -4px !important;
        justify-content: center !important;
        align-items: center !important;
        }
    
        .tab-label-container {
        margin: auto !important;
        }
    
        .tabbrowser-tab > .tab-stack > .tab-content > .tab-close-button {
        flex-shrink: 0 !important; 
        padding: 0 !important; 
        padding-top: 0!important;
        width: 16px !important;
        }
    
        /* Tabs in Tableiste mittig */
        
        scrollbox:not(#PlacesToolbarItems) {
        -moz-box-pack: center !important;
        }
        
        /* Lautsprechersymbol größer */
        
        .tab-icon-overlay {
        transform: scale(1.9, 1.9) !important;
        }
        
        image.tab-icon-overlay {
        margin-top: 3px !important;
        }
        
        
        /* Aktiver Tab breiter */
        
        .tabbrowser-tab:not([pinned]):not([selected]) {
        min-width: 200px !important;
        max-width: 200px !important;
        }
        .tabbrowser-tab:not([pinned])[selected] {
        min-width: 256px !important;
        max-width: 256px !important;
        }
        
        /* Kein Schatten drum */
        
        #TabsToolbar:not([brighttext]) #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab:is([visuallyselected="true"],
        [multiselected]) > .tab-stack > .tab-background
        {
        box-shadow: none !important;
        }
        
        /* Kein blauer Kasten */
        
        tab.tabbrowser-tab {
        --focus-outline-width: 0px !important;
        --focus-outline-color: transparent !important;
        --focus-outline: var(--focus-outline-width) solid var(--focus-outline-color)!important;
        }
    Alles anzeigen
  • Tabs angepasst, jetzt im Nightly zusätzlicher Rahmen zu sehen

    • Boersenfeger
    • 14. November 2021 um 14:32

    Ah, ok... danke,werde ich einarbeiten :)

  • Tabs angepasst, jetzt im Nightly zusätzlicher Rahmen zu sehen

    • Boersenfeger
    • 14. November 2021 um 14:24
    Zitat von 2002Andreas

    Auf die Schnelle, teste bitte mal.

    Danke, das hat mich weiter gebracht... habe nochmal selber einiges probiert... jetzt

    habe ich noch dies Problem

    Im aktiven Tab füllt die rote Farbe nicht den ganzen Tab

    CSS
        /* Tabs rund und farbig */
    
        /* Angaben für die TAB-Leiste*/
    
        /* TAB normal (inaktiv):
        * Hintergrundfarbe, Schriftfarbe,
        * Rahmen um die TABs, oben abgerundet und Abstände angepaßt,
        * unten kein Rahmen -> Abschlußrahmen vom Container.*/
    
       
        #TabsToolbar .tabbrowser-tab {
        color: black !important;
        border: 1px solid !important;
        border-bottom: 1px solid black !important;
        border-radius: 16px 16px !important;
        margin-top: 0px !important;
        padding: 0px !important;
        }
    
        /* TAB bei bei angewähltem TAB (aktiv):
        * Hintergrundfarbe, Rahmen,
        * Schriftfarbe. */
     
       .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) > .tab-stack > .tab-background {
        background: red !important;
        border-radius: 16px 16px !important;
        margin-top: 0px !important;  
        border: none !important;
        color: black ! important; 
        }
    
        #TabsToolbar .tabbrowser-tab:not([selected="true"]) {
        border-radius: 16px 16px !important;
        margin-top: 0px !important;
        padding: 0px !important;
        color: black ! important; 
        }
    
        /* Tab-Icon etwas größer,
        * links weniger, unten etwas mehr Abstand zum TAB-Rand.*/
     
        #TabsToolbar .tab-icon-image {
        height: 20px !important;
        width:  20px !important;
        margin-left: -5px !important;    
        margin-bottom: 2px !important;
        }
            
        /* Tab-Schließen-Button:
        * Rechts weniger Abstand zum TAB-Rand, etwas größer,
        * Textfarbe (Kreuz)
        * Hintergrundfarbe, an den Eckenradius des Buttons angepaßt */
     
        #TabsToolbar .tab-close-button {
        margin-right: -8px !important; 
        font-weight: bold !important;    
        color: black !important; 
        }
    
        #TabsToolbar .tab-close-button .toolbarbutton-icon {
        height: 20px !important;
        width:  20px !important;    
        background-color: red !important;
        border-radius: 12px !important; 
        }
        
        /* Schliessen-Button nur wenn angewählt */
    
        tab:not([selected]) .tab-close-button {display: none !important; 
        }
    
     
        /* Schriftgröße Tabs */
    
        .tab-text {
        font-size:15px !important; 
        }
        
        /* Damit wird der Tabtext am Ende nicht ausgeblendet */
        
        .tab-label-container[textoverflow][labeldirection=ltr]:not([pinned]),
        .tab-label-container[textoverflow]:not([labeldirection]):not([pinned]):-moz-locale-dir(ltr) {
        direction: ltr;
        mask-image: linear-gradient(to left, transparent, black 0em) !important; 
        }
        
        /* Doppelte Schliessung ausblenden */
    
        #TabsToolbar > .titlebar-buttonbox-container {
        display:none !important; 
        }
    
        /* Tabs Proton-Design */
    
        :root {
        --proton-tab-radius: 0px !important;
        --proton-tab-block-margin: 0px !important;
        --inline-tab-padding: 10px !important;
        }
    
        #TabsToolbar .tabbrowser-tab {
        max-height: 34px !important;    
        border-top: 1px solid #B2B2B2 !important;
        border-bottom: 1px solid #B2B2B2 !important; 
        margin-bottom: 1px !important;
        padding-left: 0px !important;
        }
    
        #TabsToolbar .toolbarbutton-1 {
        margin-top: 2px !important;    
        margin-bottom: 2px !important;
        }
    
        #TabsToolbar .toolbarbutton-1 > image {
        padding: 2px 4px !important;
        }
    
        /* Rahmen um die Tableiste durchsichtig */
    
        #TabsToolbar {
        border: 0.2px solid transparent !important;
        }
         
        #TabsToolbar:hover {
        border: 0.2px solid transparent !important;
        }     
    
        .tabbrowser-tab[label*=" - YouTube"] .tab-content,
        .tabbrowser-tab[label*="YouTube - youtube.com"] .tab-content {
        background-image: linear-gradient(to bottom, red 0%, red 14%, red 14%, red 100%) !important;
        }
        
        .tabbrowser-tab[label*=" - YouTube"][selected="true"] .tab-content,
        .tabbrowser-tab[label*="YouTube - youtube.com"][selected="true"] .tab-content {
        background-image: linear-gradient(to bottom, green 0%, green 14%, red 14%, red 100%) !important;
        }
        
        .tabbrowser-tab[label*=" - YouTube"]:hover .tab-content,
        .tabbrowser-tab[label*="YouTube - youtube.com"]:hover .tab-content {
        background-image: linear-gradient(to bottom, saddlebrown 0%, saddlebrown 14%, saddlebrown 14%, saddlebrown 100%) !important;
        }
        
        .tabbrowser-tab[label*=" - YouTube"][selected="true"]:hover .tab-content,
        .tabbrowser-tab[label*="YouTube - youtube.com"][selected="true"]:hover .tab-content {
        background-image: linear-gradient(to bottom, green 0%, green 14%, saddlebrown 14%, saddlebrown 100%) !important;
        } 
    
        .tabbrowser-tab .tab-content vbox.tab-label-container.proton {
        -moz-box-orient: horizontal !important;
        } 
        
        /*Lautsprechersymbol violet bei Sound*/
        
        .tab-icon-overlay[soundplaying] {
        fill: blueviolet !important;
        padding-left: -9px !important;
        }
    
        /*Lautsprechersymbol gelb bei Stumm*/
        
        .tab-icon-overlay[muted] {
        fill: yellow !important;
        padding-left: -9px !important;
        }
      
        .tabbrowser-tab .tab-content vbox.tab-label-container.proton label[class="tab-icon-sound-label tab-icon-sound-blocked-label"],
        .tabbrowser-tab .tab-content vbox.tab-label-container.proton label[class="tab-icon-sound-label tab-icon-sound-playing-label"],
        .tabbrowser-tab .tab-content vbox.tab-label-container.proton label[class="tab-icon-sound-label tab-icon-sound-muted-label"] {
        display: none !important;
        }
    
        /* Tab Beschriftung mittig */
        
        .tab-content {
        display: flex !important; 
        margin-top: -4px !important;
        justify-content: center !important;
        align-items: center !important;
        }
    
        .tab-label-container {
        margin: auto !important;
        }
    
        .tabbrowser-tab > .tab-stack > .tab-content > .tab-close-button {
        flex-shrink: 0 !important; 
        padding: 0px !important; 
        padding-top: 0px!important;
        width: 16px !important;
        }
    
        /* Tabs in Tableiste mittig */
        
        scrollbox:not(#PlacesToolbarItems) {
        -moz-box-pack: center !important;
        }
        
        /* Lautsprechersymbol größer */
        
        .tab-icon-overlay {
        transform: scale(1.9, 1.9) !important;
        }
        
        image.tab-icon-overlay {
        margin-top: 3px !important;
        }
        
        
        /* Aktiver Tab breiter */
        
        .tabbrowser-tab:not([pinned]):not([selected]) {
        min-width: 200px !important;
        max-width: 200px !important;
        }
        .tabbrowser-tab:not([pinned])[selected] {
        min-width: 256px !important;
        max-width: 256px !important;
        }
        
        /* Kein Schatten drum */
        
        #TabsToolbar:not([brighttext]) #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab:is([visuallyselected="true"],
        [multiselected]) > .tab-stack > .tab-background
        {
        box-shadow: none !important;
        }
        
        /* Kein blauer Kasten */
        
        tab.tabbrowser-tab {
        --focus-outline-width: 0px !important;
        --focus-outline-color: transparent !important;
        --focus-outline: var(--focus-outline-width) solid var(--focus-outline-color)!important;
        }
    Alles anzeigen

    .DeJaVu: wenn ich die 0px bei padding weglasse, ergeben sich andere unschöne Begleitumstände.

  • Tabs angepasst, jetzt im Nightly zusätzlicher Rahmen zu sehen

    • Boersenfeger
    • 13. November 2021 um 16:40
    Zitat von .DeJaVu

    Was sagen die Browser-Werkzeuge?

    Die nutze ich nicht, da für mich zu kompliziert... ?(

    @ Sören Hentschel

    Dann werde ich mal zuwarten...

    Ggf. hat das dann auch mit meinem anderen Problem zu tun!?

    Beitrag

    RE: Tableiste unten per CSS-Code, oder per Skript.

    Der CSS-Code aus Beitrag 1 funktioniert mit Nightly seit heute nicht mehr... das Alternativ-Script schon. Kann das jemand bestätigen?
    Boersenfeger
    13. November 2021 um 14:47
  • About:config Icon

    • Boersenfeger
    • 13. November 2021 um 16:38

    Der TotalCommander ist ein Explorer, den ich einfach gern nutze... NotePad++ ist mein Editor... und der Button für das Config-Menü kannst du dir da anzeigen lassen wo du möchtest.. Bei mir ist das zwischen dem Vor und Zurück-Button... hier ein Screenshot..

  • Tabs angepasst, jetzt im Nightly zusätzlicher Rahmen zu sehen

    • Boersenfeger
    • 13. November 2021 um 16:31

    Nur im Nightly im aktiven Tab (rot) erscheint der viereckige Rahmen seit einigen Tagen....

    Liegts am Code für die Anpassung der Tabs?

    CSS
        /* Tabs rund und farbig */
    
        /* Angaben für die TAB-Leiste*/
    
        /* TAB normal (inaktiv):
        * Hintergrundfarbe, Schriftfarbe,
        * Rahmen um die TABs, oben abgerundet und Abstände angepaßt,
        * unten kein Rahmen -> Abschlußrahmen vom Container.*/
    
       
        #TabsToolbar .tabbrowser-tab {
        color: black !important;
        border: 1px solid !important;
        border-bottom: 1px solid black !important;
        border-radius: 16px 16px !important;
        margin-top: 0px !important;
        padding: 0px !important;
        }
    
        /* TAB bei bei angewähltem TAB (aktiv):
        * Hintergrundfarbe, Rahmen,
        * Schriftfarbe. */
     
        #TabsToolbar .tabbrowser-tab[selected="true"] {
        background: red !important;
        border-radius: 16px 16px !important;
        margin-top: 0px !important;
        padding: 0px !important;
        font-weight: bold !important;   
        color: black ! important; 
        }
    
        #TabsToolbar .tabbrowser-tab:not([selected="true"]) {
        border-radius: 16px 16px !important;
        margin-top: 0px !important;
        padding: 0px !important;   
        color: black ! important; 
        }
    
        /* Tab-Icon etwas größer,
        * links weniger, unten etwas mehr Abstand zum TAB-Rand.*/
     
        #TabsToolbar .tab-icon-image {
        height: 20px !important;
        width:  20px !important;
        margin-left: -5px !important;    
        margin-bottom: 2px !important; 
        }
            
        /* Tab-Schließen-Button:
        * Rechts weniger Abstand zum TAB-Rand, etwas größer,
        * Textfarbe (Kreuz)
        * Hintergrundfarbe, an den Eckenradius des Buttons angepaßt */
     
        #TabsToolbar .tab-close-button {
        margin-right: -5px !important;  
        color: black !important; 
        }
    
        #TabsToolbar .tab-close-button .toolbarbutton-icon {
        height: 20px !important;
        width:  20px !important;    
        background-color: red !important;
        border-radius: 14px !important; 
        }
        
        /* Schliessen-Button nur wenn angewählt */
    
        tab:not([selected]) .tab-close-button {display: none !important; 
        }
    
        /* Alle anderen Elemente in den TABs ohne Hintergrund. */
    
        #TabsToolbar .tabbrowser-tab * {
        background: none !important; 
        }
     
        /* Schriftgröße Tabs */
    
        .tab-text {
        font-size:15px !important; 
        }
        
        /* Damit wird der Tabtext am Ende nicht ausgeblendet */
        
        .tab-label-container[textoverflow][labeldirection=ltr]:not([pinned]),
        .tab-label-container[textoverflow]:not([labeldirection]):not([pinned]):-moz-locale-dir(ltr) {
        direction: ltr;
        mask-image: linear-gradient(to left, transparent, black 0em) !important; 
        }
        
        /* Doppelte Schliessung ausblenden */
    
        #TabsToolbar > .titlebar-buttonbox-container {
        display:none !important; 
        }
    
        /* Tabs Proton-Design */
    
        :root {
        --proton-tab-radius: 0px !important;
        --proton-tab-block-margin: 0px !important;
        --inline-tab-padding: 10px !important;
        }
    
        #TabsToolbar .tabbrowser-tab {
        max-height: 34px !important;    
        border-top: 1px solid #B2B2B2 !important;
        border-bottom: 1px solid #B2B2B2 !important; 
        margin-bottom: 1px !important;
        padding-left: 2px !important;
        }
    
        #TabsToolbar .toolbarbutton-1 {
        margin-top: 2px !important;    
        margin-bottom: 2px !important;
        }
    
        #TabsToolbar .toolbarbutton-1 > image {
        padding: 2px 4px !important;
        }
    
        /* Rahmen um die Tableiste durchsichtig */
    
        #TabsToolbar {
        border: 0.2px solid transparent !important;
        }
         
        #TabsToolbar:hover {
        border: 0.2px solid transparent !important;
        }     
    
        .tabbrowser-tab[label*=" - YouTube"] .tab-content,
        .tabbrowser-tab[label*="YouTube - youtube.com"] .tab-content {
        background-image: linear-gradient(to bottom, red 0%, red 14%, red 14%, red 100%) !important;
        }
        
        .tabbrowser-tab[label*=" - YouTube"][selected="true"] .tab-content,
        .tabbrowser-tab[label*="YouTube - youtube.com"][selected="true"] .tab-content {
        background-image: linear-gradient(to bottom, green 0%, green 14%, red 14%, red 100%) !important;
        }
        
        .tabbrowser-tab[label*=" - YouTube"]:hover .tab-content,
        .tabbrowser-tab[label*="YouTube - youtube.com"]:hover .tab-content {
        background-image: linear-gradient(to bottom, saddlebrown 0%, saddlebrown 14%, saddlebrown 14%, saddlebrown 100%) !important;
        }
        
        .tabbrowser-tab[label*=" - YouTube"][selected="true"]:hover .tab-content,
        .tabbrowser-tab[label*="YouTube - youtube.com"][selected="true"]:hover .tab-content {
        background-image: linear-gradient(to bottom, green 0%, green 14%, saddlebrown 14%, saddlebrown 100%) !important;
        } 
    
        .tabbrowser-tab .tab-content vbox.tab-label-container.proton {
        -moz-box-orient: horizontal !important;
        } 
        
        /*Lautsprechersymbol violet bei Sound*/
        
        .tab-icon-overlay[soundplaying] {
        fill: blueviolet !important;
        }
    
        /*Lautsprechersymbol gelb bei Stumm*/
        
        .tab-icon-overlay[muted] {
        fill: yellow !important;
        }
      
        .tabbrowser-tab .tab-content vbox.tab-label-container.proton label[class="tab-icon-sound-label tab-icon-sound-blocked-label"],
        .tabbrowser-tab .tab-content vbox.tab-label-container.proton label[class="tab-icon-sound-label tab-icon-sound-playing-label"],
        .tabbrowser-tab .tab-content vbox.tab-label-container.proton label[class="tab-icon-sound-label tab-icon-sound-muted-label"] {
        display: none !important;
        }
    
        /* Tab Beschriftung mittig */
        
        .tab-content {
        display: flex !important; 
        margin-top: -4px !important;
        justify-content: center !important;
        align-items: center !important;
        }
    
        .tab-label-container {
        margin: auto !important;
        }
    
        .tabbrowser-tab > .tab-stack > .tab-content > .tab-close-button {
        flex-shrink: 0 !important; 
        padding: 0px !important; 
        padding-top: -5px!important;
        width: 16px !important;
        }
    
        /* Tabs in Tableiste mittig */
        
        scrollbox:not(#PlacesToolbarItems) {
        -moz-box-pack: center !important;
        }
        
        /* Lautsprechersymbol größer */
        
        .tab-icon-overlay {
        transform: scale(1.9, 1.9) !important;
        }
        
        image.tab-icon-overlay {
        margin-top: 3px !important;
        padding-right: -4px !important;
        }
        
        
        /* Aktiver Tab breiter */
        
        .tabbrowser-tab:not([pinned]):not([selected]) {
        min-width: 200px !important;
        max-width: 200px !important;
        }
        .tabbrowser-tab:not([pinned])[selected] {
        min-width: 256px !important;
        max-width: 256px !important;
        }
        
        /* Kein Schatten drum */
        
        #TabsToolbar:not([brighttext]) #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab:is([visuallyselected="true"],
        [multiselected]) > .tab-stack > .tab-background
        {
        box-shadow: none !important;
        }
        
        /* Kein blauer Kasten */
        
        tab.tabbrowser-tab {
        --focus-outline-width: 0px !important;
        --focus-outline-color: transparent !important;
        --focus-outline: var(--focus-outline-width) solid var(--focus-outline-color)!important;
        }
    Alles anzeigen
  • About:config Icon

    • Boersenfeger
    • 13. November 2021 um 16:13
    Zitat von oldman53

    Ich habe für mich etwas umgeschraubt, statt about:config zu about:about.

    Dafür gibts doch schon ein Script, beinhaltet aber noch viel mehr:

    JavaScript
    // ==UserScript==
    // @name           extras_config_menu.uc.js
    // @compatibility  Firefox 6*.*
    // @include        main
    // @version        1.0.20190504
    // ==/UserScript==
    
    var uProfMenu = {
      // Beginn der Konfiguration
      // In der folgenden Zeile (11) den Pfad zum Texteditor eintragen (unter Ubuntu 10.04 z.B.: '/usr/bin/gedit'). Bei Fehleintrag wird view_source.editor.path ausgelesen:
      TextOpenExe: 'h:\\Notepad++\\notepad++.exe',
      // Falls gewuenscht, in Zeile 15 einen Dateimanager eintragen (komplett leer lassen fuer Dateimanager des Systems) Beispiele:
      // vFileManager: 'E:\\Total Commander\\Totalcmd.exe',
      // vFileManager: 'C:\\Program Files (x86)\\FreeCommander\\FreeCommander.exe'
      vFileManager: 'H:\\Total Commander\\Totalcmd64.exe',
      // In der folgenden Zeile (19) 'menu' eintragen, damit es unter "Extras" als Menue erscheint, sonst die id des gewuenschten
      // Elements *nach* dem der Button erscheinen soll (z.B. 'urlbar', 'searchbar', 'undoclosetab-button','abp-toolbarbutton')
      // Bitte nicht so etwas wie die Menue- oder Navigationsleiste (sondern einen Menuepunkt oder einen Button mit id auf diesen Leisten) eintragen:
      warpmenuto: 'back-button',
     // Unter Linux sollte/kann versucht werden, die userChromeJS-Skripte zu sortieren, unter Windows ist das evtl. nicht noetig (die Sortierung wird Gross- und Kleinschreibung *nicht* beruecksichtigen - dazu wird die sort()-Funktion entsprechend mit einer Vergleichsfunktion aufgerufen)
      sortScripts: 0,   // 1 zum Erzwingen der Sortierung
      // Einbindung GM-Skripte-Ordner (0: nein, 1: Greasemonkey [Profil-Verzeichnis], 2: UserScriptLoader [Chrome-Verzeichnis], 3: Scriptish [Profil-Verzeichnis]):
      gmOrdner: 0,
      // Einbindung CSS-Ordner (0: nein, 1: UserCSSLoader-Ordner im Chrome-Verzeichnis):
      cssOrdner: 1,
      // In Zeile 30 gueltige about:Adressen eintragen, die ebenfalls aufgerufen werden sollen.
      // - Zum Ausblenden: abouts: [],
      // - Damit die about:-Seiten nicht als Untermenue, sondern direkt als Menuepunkte aufgefuehrt werden, muss das erste Element '0' sein:
      // abouts: ['0','about:about','about:addons','about:cache','about:config','about:support'],
       abouts: ['about:about','about:addons','about:cache','about:config','about:debugging','about:crashes','about:home','about:memory','about:plugins','about:preferences','about:profiles','about:support'],
      // Die normalen Firefox-Einstellungen auch zur Verfuegung stellen (0: nein, 1: ja):
      showNormalPrefs: 1,
      // Stellt "Skriptliste in Zwischenablage" zur Verfuegung (1: ja, 2: mit getrennter Nummerierung, 3: mit gemeinsamer Nummerierung) oder nicht (0):
      enableScriptsToClip: 1,
      // Um den Eintrag "Neustart" zu erzwingen (falls z.B. das andere Skript zu spaet eingebunden und nicht erkannt wird), auf 1 setzen:
      enableRestart: 0,
      // Ende der Konfiguration
    
      init: function() {
        if (this.warpmenuto.toLowerCase() == 'menu') {
          // aufgrund des gewaehlten warpmenuto als Untermenue von Extras anlegen
          var zielmenu = document.getElementById('menu_ToolsPopup');
          if (zielmenu==null) {
            userChrome.log("extras_config_menu.uc.js findet Zielmenue nicht, evtl. weil ein anderes Fenster als das Hauptfenster " +
                           "geoeffnet wurde. Falls dieser Fehler auch im Hauptfenster auftritt, bitte die vorgehende Definition " +
                           "von 'zielmenu' kontrollieren.");
            return;
          }
          var menu = zielmenu.appendChild(this.createME("menu","Config Men\u00FC",0,0,"ExtraConfigMenu"));
          menu.setAttribute("class","menu-iconic");
          menu.setAttribute("ondblclick","openTrustedLinkIn('about:config', 'tab');");
         } else {
          // als Button nach dem per warpmenuto gewaehlten Element anlegen (s. Kommentar ueber warpmenuto im Konfigurationsabschnitt)
          var zielmenu = document.getElementById(this.warpmenuto);
          if (zielmenu==null) {
            userChrome.log("extras_config_menu.uc.js findet Zielpunkt '"+this.warpmenuto+"' nicht, evtl. weil ein anderes Fenster als das Hauptfenster " +
                           "geoeffnet wurde. Falls dieser Fehler auch im Hauptfenster auftritt, bitte die vorgehende Definition " +
                           "von 'warpmenuto' kontrollieren.");
            return;
          }
          var menu = zielmenu.parentNode.insertBefore(document.createXULElement('toolbarbutton'), zielmenu.nextSibling);
          menu.setAttribute("id", "ExtraConfigMenu-button");
          menu.setAttribute("class", "toolbarbutton-1");
          menu.setAttribute("type", "menu");
          menu.setAttribute("tooltiptext", "Extra Config Menü\nMittelklick \öffnet about:config");
          menu.setAttribute("onclick", "if (event.button === 1 && !this.open) {openTrustedLinkIn('about:config','tab')};");
        }
        //ab hier ist alles gleich, egal ob Button oder Menue
        var css = " \
          #ExtraConfigMenu, #ExtraConfigMenu-button { \
           background: 8px 12px no-repeat url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACnElEQVR4Xm2RzYtbZRSHn/fr3pvJzTB3qiNM2k2pMBUGhEHaqsUqdeFGQalCobgREaFu/B/cqCtxVSjoQhBEQRBmIfWDKgNGJUPt0Nhah9JJ4iSd5E6+bu5972tAO4SS5/DjXZ1znsMrNiq1eikMQqYYJCmjxNH5+zdW777L0J5KKl9VPmnf+ut9KWkwhbheuzNcOVYOmGKc5iRO0r1ykeXCx0h7kt4fC3z5wfqbQnAJwQHa5S7jAZSRuJ0mkf81cheobhBXZa+ri1uptQjHAZoZCEC1PiPgDuwxCfwerBU7b73zXn//3usCcdt4HkZ7SGZg431U51NUCgwlO3cV/bVXhR/6p9ut+nP9QYeNn7/n8qUPZxvQ/Q6VVWHk4ZqWRvlJjpx9hcGfW2wO95N2q8m3618A2WwDt/0RplSAXsBed57eyossHl5GYdHacG3zGpADM06wjQ1UUIN+CLHPvfAxojPnKLiE+bDE1R9+5GatAmgPeGCAteQ7l5GBhGSyuROyd/gFouUyWkqEErR2mwXAAA8BRS0AgMQBjSra30ZkEeDzz9Dn4ZcvMO51SMcJcTdGChmA0ABA6cAgzyG3I8jLEBylV4fWoaeIc0V7t0Uv7pFbC+CA+28mp/8+SwXKnMVmz1O9HpE+eobMZdjcoY1GIHD/NwIdoH1fBaNguzlg88pVyoUi4vTbFI8eJxsNAIfSkrliESllH/L0v0jktNNomFGv1TFrL3Fo9QSMR3jaEEXzLC09gjaKp595No0WjyCEB4zRclICUMDxtRMce/wJ1MIi2SglXShhfI/cOjxPoZRmbq4gXzt/gVrtBrdvbiG+Wf+p/mvll1BpiVAGhCDPxuAUDotz4HKHlIJON6bRbL4hhPjcMx5mkn8BBLEUrsVZbq0AAAAASUVORK5CYII=) !important; \
          } \
          #ExtraConfigMenu-button > dropmarker, #ExtraConfigMenu-button > hbox > .toolbarbutton-menu-dropmarker { \
            display: none !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);
        menu.setAttribute("onpopupshowing","uProfMenu.getScripts(0)");
        var menupopup = menu.appendChild(this.createME("menupopup",0,0,0,"ExtraConfigMenu-popup"));
        menupopup.appendChild(this.createME("menuitem","userChrome.js","uProfMenu.edit(0,'userChrome.js');","uProfMenu_edit",0));
        // Anlegen von Untermenues fuer die userChromeJS-Skripte (befuellt werden sie spaeter)
        var submenu=menupopup.appendChild(this.createME("menu","uc.js",0,0,"submenu-ucjs"));
        var submenupopup = submenu.appendChild(this.createME("menupopup",0,0,0,"submenu-ucjs-items"));
        // var submenu=menupopup.appendChild(this.createME("menu","uc.xul",0,0,"submenu-ucxul"));
        // var submenupopup = submenu.appendChild(this.createME("menupopup",0,0,0,"submenu-ucxul-items"));
        if (this.enableScriptsToClip) menupopup.appendChild(this.createME("menuitem","Skriptliste in Zwischenablage","uProfMenu.getScripts(1)","uProfMenu_clipboard",0));
         // Ende Anlegen von Untermenues fuer die userChromeJS-Skripte
        menupopup.appendChild(document.createXULElement('menuseparator'));
        // Einbindung von Konfigdateien
        menupopup.appendChild(this.createME("menuitem","userChrome.css","uProfMenu.edit(0,'userChrome.css');","uProfMenu_edit",0));
        menupopup.appendChild(this.createME("menuitem","userContent.css","uProfMenu.edit(0,'userContent.css');","uProfMenu_edit",0));
        menupopup.appendChild(this.createME("menuitem","prefs.js","uProfMenu.edit(1,'prefs.js');","uProfMenu_edit",0));
        menupopup.appendChild(this.createME("menuitem","user.js","uProfMenu.edit(1,'user.js');","uProfMenu_edit"),0);
        // Ende Einbindung von Konfigdateien
        menupopup.appendChild(document.createXULElement('menuseparator'));
        // Einbindung von Ordnern
        switch (this.gmOrdner) {
          case 1:
            menupopup.appendChild(this.createME("menuitem","GM-skripty","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('ProfD')+uProfMenu.getDirSep()+'gm_scripts');","uProfMenu_folder"),0);
            break;
          case 2:
            menupopup.appendChild(this.createME("menuitem","USL-skripty","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('UChrm')+uProfMenu.getDirSep()+'UserScriptLoader');","uProfMenu_folder"),0);
            break;
          case 3:
            menupopup.appendChild(this.createME("menuitem","Skripty Scriptish","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('ProfD')+uProfMenu.getDirSep()+'scriptish_scripts');","uProfMenu_folder"),0);
            break;
        }
        if (this.cssOrdner) {
          menupopup.appendChild(this.createME("menuitem","CSS-Ordner","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('UChrm')+uProfMenu.getDirSep()+'CSS');","uProfMenu_folder"),0);
        }
        menupopup.appendChild(this.createME("menuitem","Chromeordner","uProfMenu.prefDirOpen('UChrm');","uProfMenu_folder"),0);
        menupopup.appendChild(this.createME("menuitem","Profilordner","uProfMenu.prefDirOpen('ProfD');","uProfMenu_folder"),0);
        menupopup.appendChild(this.createME("menuitem","Addonordner","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('ProfD')+uProfMenu.getDirSep()+'extensions');","uProfMenu_folder"),0);
        menupopup.appendChild(this.createME("menuitem","Installationsordner","uProfMenu.prefDirOpen('CurProcD');","uProfMenu_folder"),0);
        menupopup.appendChild(this.createME("menuitem","Startup-Cacheordner","uProfMenu.dirOpen(uProfMenu.getPrefDirectoryPath('ProfLD')+uProfMenu.getDirSep()+'startupCache');","uProfMenu_folder"),0);
        // Ende Einbindung von Ordnern
        // Einbindung von abouts
        if (this.abouts.length>0) {
          menupopup.appendChild(document.createXULElement('menuseparator'));
          // falls der erste Eintrag des arrays ='0' ist, dann kein Untermenue anlegen, sondern direkt als Menuepunkte einbinden
          if (this.abouts[0]=='0') {
            for (var i = 1; i < this.abouts.length; i++) {
            menupopup.appendChild(this.createME("menuitem",this.abouts[i],"openTrustedLinkIn('"+this.abouts[i]+"','tab')","uProfMenu_about"),0);
            }
           } else {
            // der erste Eintrag des arrays ist ungleich '0', deshalb als Untermenue einrichten
            var submenu=menupopup.appendChild(this.createME("menu","uc.js",0,0,"submenu-about"));
            var submenupopup = submenu.appendChild(this.createME("menupopup",0,0,0,"submenu-about-items"));
            this.fillMenu("submenu-about","submenu-about-items", "about:",this.abouts,"uProfMenu_about",1);
          }
        }
        // Ende Einbindung von abouts
        // Separator, falls dieser nicht schon durch abouts generiert wurde und weitere Menuepunkte folgen werden
        if (this.abouts.length==0 && (this.showNormalPrefs || typeof(ToolRstartMod) != "undefined")) menupopup.appendChild(document.createXULElement('menuseparator'));
        // Falls gewuenscht (s. Konfigurationsabschnitt), Zugriff auf die normalen Einstellungen
        if (this.showNormalPrefs) menupopup.appendChild(this.createME("menuitem","Einstellungen","try{openOptionsDialog();}catch(e){openPreferences();}","uProfMenu_prefs"),0);
        // Falls addRestartButton installiert ist, Neustart zur Verfuegung stellen (addRestartButton 1.0.20120105mod erforderlich)
        if(typeof(ToolRstartMod) != "undefined" || this.enableRestart) menupopup.appendChild(this.createME("menuitem","Neustart",
        "try{ToolRstartMod.restartApp(false);} catch(e){alert(e);}","uProfMenu_restart"),0);
    
      },
    
    
      getDirSep:function() {
        // Betriebssystem nach https://developer.mozilla.org/en/Code_snippets/Miscellaneous ermitteln
        var osString = Components.classes["@mozilla.org/xre/app-info;1"].getService(Components.interfaces.nsIXULRuntime).OS;
        var dirsep="/";
        switch(osString) {
          case "WINNT":
            dirsep="\\";
            break;
          case "Linux":
            dirsep="/";
            break;
          case "Darwin":
            dirsep="/";
            break;
        }
        return dirsep;
      },
    
    
      edit:function(OpenMode,Filename){
        var Path = "";
        var dSep = this.getDirSep();  // die Trennzeichen zwischen Ordnern abhaengig vom Betriebssystem machen
        switch (OpenMode){
          //Current is Chrome Directory
          case 0:
            var Path = this.getPrefDirectoryPath("UChrm") + dSep + Filename;
            break;
          //Current is Profile Directory
          case 1:
            var Path = this.getPrefDirectoryPath("ProfD") + dSep + Filename;
            break;
          //Current is Root
          case 2:
            var Path = Filename;
            break;
        }
        this.launch(this.TextOpenExe,Path);
      },
    
    
      dirOpen:function(Path){
        if (this.vFileManager.length != 0) {
          var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
          var process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess);
          var args=[Path];
          file.initWithPath(this.vFileManager);
          process.init(file);
          // Verzeichnis mit anderem Dateimanager oeffnen
          process.run(false, args, args.length);
         } else {
          // Verzeichnis mit Dateimanager des Systems oeffnen
          var dir = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
          dir.initWithPath(Path);
          dir.launch();
        }
      },
    
    
      prefDirOpen:function(prefDir){
        Path = this.getPrefDirectoryPath(prefDir);
        this.dirOpen(Path);
      },
    
    
      getPrefDirectoryPath:function(str){
        // get profile directory
        var file = Components.classes["@mozilla.org/file/directory_service;1"]
          .getService(Components.interfaces.nsIProperties)
          .get(str, Components.interfaces.nsIFile);
        if (str == 'CurProcD') {
          file = file.parent;
        };
        return file.path;
      },
    
    
      launch:function(RanPath,OpenPath){
        var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsIFile);
        var proc = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
        var args = [OpenPath];
        file.initWithPath(RanPath);
        // falls der im Konfigurationsabschnitt definierte Editor nicht gefunden wird, auf Einstellung in about:config ausweichen:
        if (!file.exists()) {
          var pref = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
          RanPath=pref.getCharPref("view_source.editor.path");
          file.initWithPath(RanPath);
        }
        proc.init(file);
        proc.run(false, args, args.length);
      },
    
    
      stringComparison:function(a, b){
        a = a.toLowerCase();
        a = a.replace(/ä/g,"a");
        a = a.replace(/ö/g,"o");
        a = a.replace(/ü/g,"u");
        a = a.replace(/ß/g,"s");
        b = b.toLowerCase();
        b = b.replace(/ä/g,"a");
        b = b.replace(/ö/g,"o");
        b = b.replace(/ü/g,"u");
        b = b.replace(/ß/g,"s");
        return(a==b)?0:(a>b)?1:-1;
      },
    
    
      getScripts:function(iType) {
        // Arrays (jeweils ein Array fuer uc.js und uc.xul) nehmen Namen der gefundenen Skripte auf
        let ucJsScripts = [];
        let ucXulScripts = [];
        // Suchmuster, also die Dateierweiterungen uc.js und uc.xul
        let extjs = /\.uc\.js$/i;
        let extxul= /\.uc\.xul$/i;
        let aFolder = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
        aFolder.initWithPath(Services.dirsvc.get("UChrm", Ci.nsIFile).path);
        // files mit Eintraegen im Chrome-Ordner befuellen
        let files = aFolder.directoryEntries.QueryInterface(Ci.nsISimpleEnumerator);
        // Ordner bzw. files durchlaufen und kontrollieren, ob gesuchte Dateien dabei sind
        while (files.hasMoreElements()) {
          let file = files.getNext().QueryInterface(Ci.nsIFile);
          // keine gewuenschte Datei, deshalb continue
          if (!extjs.test(file.leafName) && !extxul.test(file.leafName)) continue;
          // uc.js gefunden -> im Array ablegen
          if (extjs.test(file.leafName)) ucJsScripts.push(file.leafName);
          // uc.xul gefunden -> im Array ablegen
          if (extxul.test(file.leafName)) ucXulScripts.push(file.leafName);
        }
        if (this.sortScripts) {
          ucJsScripts.sort(this.stringComparison);
          ucXulScripts.sort(this.stringComparison);
        }
        // Aufruf der naechsten Methoden um die beiden Untermenues oder die Zwischenablage zu befuellen
        if (iType==0) {
          this.fillMenu("submenu-ucjs","submenu-ucjs-items", "uc.js",ucJsScripts,"uProfMenu_ucjs",0);
          this.fillMenu("submenu-ucxul","submenu-ucxul-items", "uc.xul",ucXulScripts,"uProfMenu_ucxul",0);
         } else {
          var result=this.fillClipboardValue(ucJsScripts,ucXulScripts);
          Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper).copyString(result);
        }
      },
    
    
      fillMenu:function(whichsubmenu, whichsubmenuitems, strlabel, scriptArray,sClass,sTyp) {
        // Beschriftung des Untermenues mit Anzahl der gefundenen Dateien ergaenzen
        var e = document.getElementById(whichsubmenu);
        e.setAttribute('label',strlabel + ' (' + scriptArray.length + ')');
        var popup = document.getElementById(whichsubmenuitems);
        // zunaechst Untermenue zuruecksetzen
        while(popup.hasChildNodes()){
          popup.removeChild(popup.firstChild);
        }
        // Untermenue endlich befuellen
        for (var i = scriptArray.length-1; i > -1; i--) {
          // bisher nur eine Typunterscheidung (userChromeJS-Skript oder about:)
          if (sTyp==0){
            var mitem = this.createME("menuitem",scriptArray[i],"uProfMenu.edit(0,'"+scriptArray[i]+"')",sClass,0);
            mitem.setAttribute("onclick","uProfMenu.openAtGithub(event,'"+scriptArray[i]+"')");
            mitem.setAttribute("tooltiptext"," Linksklick: Bearbeiten,\n Mittelklick: https://github.com/.../"+this.cleanFileName(scriptArray[i])+" oeffnen,\n Rechtsklick: Suche auf GitHub");
           } else {
            var mitem = this.createME("menuitem",scriptArray[i],"openTrustedLinkIn('"+scriptArray[i]+"','tab')",sClass,0);
          }
          popup.insertBefore(mitem, popup.firstChild);
        }
      },
    
    
      fillClipboardValue:function(sArray,xArray) {
        var retValue;
        var s = 0;
        var x = 0;
        s = sArray.length;
        x = xArray.length;
        switch(this.enableScriptsToClip) {
          case 1:
            retValue = "userChromeJS/uc.js ("+s+"):\n------------------------\n"+sArray.join("\n")+
                       "\n\nuserChromeJS/uc.xul ("+x+"):\n-------------------------\n"+xArray.join("\n");
            break;
          default:
            retValue = "userChromeJS/uc.js ("+s+"):\n------------------------";
            for (var i = 0; i < s ; i++) {
              j = i + 1;
              retValue = retValue + "\n" + j + ". " + sArray[i];
            }
            retValue = retValue + "\n\nuserChromeJS/uc.xul ("+x+"):\n-------------------------";
            if (this.enableScriptsToClip==2) s = 0;
            for (var i = 0; i < x ; i++) {
              j = i + s + 1;
              retValue = retValue + "\n" + j + ". " + xArray[i];
            }
            break;
        }
        return retValue;
      },
    
    
      createME:function(sTyp,sLabel,sCommand,sClass,sId) {
        // Anlegen von menuitem, menu oder menupop - fuer bestimmte Typen nicht eingesetzte Parameter werden als 0 uebergeben
        const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
        var m = document.createElementNS(XUL_NS, sTyp);
        switch (sTyp) {
          case "menuitem":
            // this.createME("menuitem","Label des Items","ZuzuweisenderCodeFueroncommand","GewuenschteKlasseDesItems",0)
            m.setAttribute('label', sLabel);
            m.setAttribute('oncommand',sCommand);
            m.setAttribute('class',sClass);
            break;
          case "menu":
            // this.createME("menu","Label des Menues",0,0,"GewuenschteIdDesMenues")
            m.setAttribute('label', sLabel);
            m.setAttribute('id', sId);
            break;
          case "menupopup":
            //this.createME("menupopup",0,0,0,"GewuenschteIdDesMenupopups");
            m.setAttribute('id', sId);
            break;
        }
        return m;
      },
    
    
      openAtGithub:function(e,sScript) {
        if (e.button==1){
          // Mittelklick - Seite auf GitHub oeffnen (funktioniert nur, wenn Ordner- und bereinigter Dateiname [ohne Erweiterung] uebereinstimmen):
          var sUrl="https://github.com/ardiman/userChrome.js/tree/master/"+this.cleanFileName(sScript);
          openWebLinkIn(sUrl, 'tab');
        }
        if (e.button==2){
          // Rechtsklick - Suche auf GitHub starten (funktioniert nur, wenn der Dateiname im Code hinterlegt ist):
          e.preventDefault();
          var sUrl="https://github.com/search?langOverride=&language=&q="+sScript+"&repo=&start_value=1&type=Code";
          openWebLinkIn(sUrl, 'tab');
        }
      },
    
    
      cleanFileName:function(sName) {
        sName=sName.toLowerCase();
        /* Das folgende Array enthaelt regulaere Ausdruecke, um ungueltige Zeichenfolgen entfernen:
        /Datei-Erweiterungen am Ende/, /"ucjs_" am Anfang/, /"_"gefolgtVonZahlUndDanachBeliebigenZeichen/
        / "_fx"gefolgtVonZahl(en)/, /"-" oder "+" oder "."/, /"_v"gefolgtVonZahlen
        */
        var regs=[/\.uc\.js$/,/\.uc\.xul$/,/^ucjs_/,/_\d.+/,/_fx\d+/,/[-+\.]/g,/_v\d+/];
        for (var i = 0; i < regs.length; i++) {
          sName=sName.replace(regs[i],"");
        }
        return sName;
      }
    
    };
    uProfMenu.init();
    Alles anzeigen

    Zeile 11, 15 und 19 müssen/können angepasst werden.

  • camp-firefox.de in trackingarmen Sozialen Netzwerken

    • Boersenfeger
    • 13. November 2021 um 16:08

    Der Aluhut passt meist nie.... :rolleyes:

  • Was ist der Unterschied zwischen dem Firefox und dem Firefox Nightly?

    • Boersenfeger
    • 13. November 2021 um 15:03

    Firefox Nightly ist eine frühe Vorversion... zur Zeit 96.0a1, dann käme die Beta-Version zur Zeit 95b* und der derzeitige Default-Firefox hat die Version 94.0.1, also deine.

    In Nightly kommen immer mal wieder Fehlfunktionen vor, man kann sich aber bei der Verwendung von Scripts und Codes schon mal vorher um Ersatz bzw um Behebung kümmern...

    Du kannst eine Nightly-Version bequem neben dem "normalen" Firefox nutzen, allerdings unbedingt ein eigenes Profil dafür anlegen.

  • Tableiste unten per CSS-Code, oder per Skript.

    • Boersenfeger
    • 13. November 2021 um 14:47

    Der CSS-Code aus Beitrag 1 funktioniert mit Nightly seit heute nicht mehr... das Alternativ-Script schon. Kann das jemand bestätigen?

  • Windows 10 Startmenü umstellen

    • Boersenfeger
    • 11. November 2021 um 09:54

    Classic Shell gibts nicht mehr aber OpenShell ist ein Nachfolger, der hier einwandfrei funktioniert:

    GitHub - Open-Shell/Open-Shell-Menu: Classic Shell Reborn.
    Classic Shell Reborn. Contribute to Open-Shell/Open-Shell-Menu development by creating an account on GitHub.
    github.com

    Hier ist die BETA-Version installiert

    Links unter dem Datum via Rechtsklick und Speichern unter....

  • Google Searchbar ist nach Update weiß und nicht mehr schwarz

    • Boersenfeger
    • 9. November 2021 um 17:23

    Bis dahin kannst du den Schalter ja wieder umschalten...

  • FF-Fussball Thread

    • Boersenfeger
    • 8. November 2021 um 18:26

    Außer Spesen nix gewesen, Die Eintrachtlöwen fahren wohl im Augenblick aus Würzburg wieder zurück nach Hause. Das dortige Drittligaspiel am heutigen Abend musste abgesagt werden, nachdem 4 positive PCR-Tests bei Spielern von Würzburg festgestellt wurden. Ein Wiederholungstermin steht noch nicht fest. Es wird wohl nicht das letzte Spiel gewesen sein, das wegen Corona abgesagt wurde. X(

  • Geschlossene Tabs werden nach Neustart wieder hergestellt, Tab-Lücke nicht geschlossen

    • Boersenfeger
    • 8. November 2021 um 16:11
    Zitat von Atarist

    user.js:

    Keine Ahnung, was ich da über die Jahre geändert habe. Aber im Moment ist ja keine user.js aktiv

    Tach, die user.js ist gelöscht... kontrolliere, ob alle Einträge daraus in der about:config gelöscht, bzw auf default zurückgestellt wurden.

    Die von dir in #12 geposteten Einträge stammen aus Urzeiten, die seinerzeit auf diversen Seiten als heilsbringend gepostet wurden. Davon ist heutzutage nichts mehr vorteilbringend bzw gar bremsend. Viele davon sind auch gar nicht mehr existent.

    Meine Meinung: Wenn du das Profil bereits so lange (mehrere Jahre) mit durchziehst, solltest du eh ein neues Profil anlegen und deine Daten dort hinein kopieren.

    Daraus kann sich auch zum Beispiel ein enormer Geschwindigkeitsvorteil ergeben.

    Client Challenge

    Client Challenge

  • Firefox 94.0.1 - Sitzung manuell wiederherstellen

    • Boersenfeger
    • 8. November 2021 um 15:38

    Willkommen im Forum!

    Um welche Erweiterung handelte es sich?

    Hilft dir ggf. dieser Artikel weiter?

    Sitzungswiederherstellung – Ihre letzten Tabs und Fenster wieder anzeigen | Hilfe zu Firefox

  • Was hört Ihr gerade?

    • Boersenfeger
    • 7. November 2021 um 18:22

    In memoriam Terence "Astro" Wilson :(

    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.
  • In memoriam

    • Boersenfeger
    • 7. November 2021 um 18:18

    Terence "Astro" Wilson, Mitbegründer der englischen Reggae-Gruppe UB 40, ist nach kurzer schwerer Krankheit, im Alter von 64 Jahren verstorben. :|

  • Der Glückwunsch-Thread

    • Boersenfeger
    • 4. November 2021 um 17:04

    Auch von mir alles Gute und vor allem viel Gesundheit! :)

  • In memoriam

    • Boersenfeger
    • 3. November 2021 um 18:36

    Bereits am 18.Oktober starb Val Bisoglio im Alter von 95 Jahren an den Folgen der Lewy-Body-Demenz.

    Hier in Deutschland wurde er vor allem in der Krimiserie Quincy als Wirt Danny Tovo bekannt.

    Aber auch im Film Saturday Night Fever als Vater von Tony (John Travolta) und in der Serie Die Sopranos spielte er mit.

  • BackupProfile.uc.js - div. Fragen dazu

    • Boersenfeger
    • 1. November 2021 um 15:46

    Mein Ergebnis:

    CSS
    // ==UserScript==
    // @name           BackupProfile.uc.js
    // @namespace      BackupProfile.github.com
    // @description    Schaltfläche zum Sichern des Firefoxprofils
    // @charset        UTF-8
    // @author         ywzhaiqi、defpt
    // @version        v2018.01.10
    // @note           Vorlage Script von ywzhaiqi (+ Mischung aus diversen Varianten aus dem Fuchsforum 1.11.21)
    // @note           Sicherungsdatei enthaelt auch Profilname    
    // @reviewURL      http://bbs.kafan.cn/thread-1758785-1-1.html
    (function () {
        Components.utils.import("resource:///modules/CustomizableUI.jsm");
        CustomizableUI.createWidget({
            id : "Backup-button",
            defaultArea : CustomizableUI.AREA_NAVBAR,
            label : "Profilsicherung",
            tooltiptext : "Sichern der aktuellen Konfiguration",
            onClick: function(){
                // Speicherort - Ordner festlegen - Sichern funktioniert nur wenn Speicherort- bzw. Ordner vorhanden ist!!
                var path = "G:\\Martin\\Sicherungen\\Firefox\\Firefox Sicherung\\Nightly\\";
                // var path = "";
                // Ausschlussliste
                var excludes = 'bookmarkbackups *cache* crashes fftmp *healthreport* minidumps safebrowsing *webapps* saved-telemetry-pings *thumbnails* *session* *Telemetry* *hotfix* *.sqlite-shm *.sqlite-wal *.bak parent.lock blocklist.xml content-prefs.sqlite directoryLinks.json mimeTypes.rdf compatibility.ini parent.lock formhistory.sqlite';
    
    
                if (!path) {
                    var nsIFilePicker = Ci.nsIFilePicker;
                    var FP = Cc['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker);
                    FP.init(window, 'Sicherungspfad wählen', nsIFilePicker.modeGetFolder);
    
                    if (FP.show() == nsIFilePicker.returnOK) {
                        path = FP.file.path;
                    } else {
                        return false;
                    }
                }
    
                excludes = excludes.replace(/\./g, '\\.').replace(/\*/g, '.*').replace(/\s+/g, '|');
                excludes = new RegExp(excludes, 'i');
    
                var zw = Cc['@mozilla.org/zipwriter;1'].createInstance(Ci.nsIZipWriter);
                var pr = {PR_RDONLY: 0x01, PR_WRONLY: 0x02, PR_RDWR: 0x04, PR_CREATE_FILE: 0x08, PR_APPEND: 0x10, PR_TRUNCATE: 0x20, PR_SYNC: 0x40, PR_EXCL: 0x80};
                var fu = Cu.import('resource://gre/modules/FileUtils.jsm').FileUtils;
                var dir = fu.getFile('ProfD', []);
                
                let d = new Date();
                d = d.getDate() + '.' + (d.getMonth() + 1).toString().padStart(2, '0') + '.' + d.getFullYear().toString().padStart(2, '0')  + '  '  + d.getHours().toString().padStart(2, '0') + '\uA789' + d.getMinutes().toString().padStart(2, '0') + '\uA789' + d.getSeconds().toString().padStart(2, '0');
    
                // Die folgende Zeile formt den Archivnamen
                var archiveName = 'Profil Nightly ' + ' ' + d + '.zip';  /* 'd' ersetzt 'localnow' */ 
            
                var xpi = fu.File(path + '\\' + archiveName);
    
                zw.open(xpi, pr.PR_RDWR | pr.PR_CREATE_FILE | pr.PR_TRUNCATE);
                var dirArr = [dir];
                for (var i=0; i<dirArr.length; i++) {
                    var dirEntries = dirArr[i].directoryEntries;
                    while (dirEntries.hasMoreElements()) {
                        var entry = dirEntries.getNext().QueryInterface(Ci.nsIFile);
                        if (entry.path == xpi.path) {
                            continue;
                        }
    
                        if (entry.isDirectory()) {
                           dirArr.push(entry);
                        }
    
                        var relPath = entry.path.replace(dirArr[0].path, '');
                        if (relPath.match(excludes)) {
                            continue;
                        }
    
                        var saveInZipAs = relPath.substr(1);
                        saveInZipAs = saveInZipAs.replace(/\\/g,'/');
                        // Konfigurationsdateien können gesperrt werden
                        try {
                            zw.addEntryFile(saveInZipAs, Ci.nsIZipWriter.COMPRESSION_FASTEST, entry, false);
                        } catch (e) {}
                    }
                }
                zw.close();
                alert('Die aktuelle Konfiguration wurde als:\n'+ archiveName +'\ngesichert in:\n' + path);
    
                function alert(aString, aTitle) {
                    Cc['@mozilla.org/alerts-service;1'].getService(Ci.nsIAlertsService).showAlertNotification("", aTitle, aString, false, "", null);
                }
    
                function bupgetCurrentProfileName(){
                    function readFile(aFile){
                        var stream = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(Ci.nsIFileInputStream);    stream.init(aFile, 0x01, 0, 0);
                        var cvstream = Cc["@mozilla.org/intl/converter-input-stream;1"].createInstance(Ci.nsIConverterInputStream);
                        cvstream.init(stream, "UTF-8", 1024, Ci.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER);
                        var content = "", data = {};
                        while (cvstream.readString(4096, data)) {
                            content += data.value;
                        }
                        cvstream.close();
                        return content.replace(/\r\n?/g, "\n");
                    }
                    var PrefD = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("PrefD", Components.interfaces.nsIFile);
                    var ini = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("AppRegD", Components.interfaces.nsIFile);
    
                    ini.append("profiles.ini");
                    var ini = readFile(ini);
                    var profiles = ini.match(/Name=.+/g);
                    var profilesD = ini.match(/Path=.+/g);
                    for ( var i = 0; i < profiles.length;i++) {
                    if ((profilesD[i]+"$").indexOf(PrefD.leafName+"$") >= 0) {
                        profiles[i].match(/Name=(.+)$/);
                        return RegExp.$1;
                        }
                    }
                    return null;
                }
            },
        });
    
        var cssStr = '@-moz-document url("chrome://browser/content/browser.xhtml"){'
             + '#Backup-button .toolbarbutton-icon {'
             + 'list-style-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1%2B%2FAAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNC8xMS8wOGGVBZQAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzQGstOgAAABxklEQVQ4ja2UMUgbURjHfxeSFBzuBEuCkkAgIA5JDdzWohVnQe3UpRDE2UXpKKXdWro4ixlcdNJAydxiyHZkCIKIOEnLpZQSRFFz%2Bjqk73nvuDtb2j883nv%2F73u%2F%2B%2B69ewf%2FWUZgbgEFYDgiPw18B86An8DtQw%2BYdF1XRLVGoyGEEKJara4Bj0MKIhGYDxuGQVSTqtVqH0ql0uzvNzLigCQSicjmeZ7K63Q6u5VKZRoYigXGVWhZlpbbbrfrwKjfS4ZVGKVCoUCz2aTX65FOp6WdA04igf69CsqyLMrlctAWsRXGAf9EavXyFELEZT4A2TwYsLQKF%2BYXAJhb3VPep4%2BLzK3uqd7vS9Xr%2B2qsAW9u4eyoxcZSFoCVLZfTwxaA6v2xjaUsuYmnWrU60IOr%2FmD8etvl%2Fausikl%2FZcsFULEbD02hwPUdl7cvs1qiBAb9eOCdwdjEM2AABdh88wJA%2BbK%2FX6MDtVPmHyRPOfjRPfc87%2FPfgJLJ5AzwRc0BbNseB8a63e6TuKsXpnw%2BP5nJZAzgq%2BM4x3IPzwFM07woFovv%2Bv3%2BUDTiXqlU6tI0zQs%2FI%2FSe2bYt%2FyCPgJFA%2BAdwDeA4zrfg2l%2BwUqCoC1F3YQAAAABJRU5ErkJggg%3D%3D)'
             + '}}';
        var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
        var ios = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
        sss.loadAndRegisterSheet(ios.newURI("data:text/css;base64," + btoa(cssStr), null, null), sss.USER_SHEET);
    })();
    Alles anzeigen

    Vielen Dank an Euch 2 :)

Unterstütze uns!

Jährlich (2026)

76,1 %

76,1% (589,79 von 775 EUR)

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