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

Beiträge von omar1979

  • Vertikale Zusatzleiste wird nicht angezeigt.

    • omar1979
    • 20. November 2022 um 20:04
    Zitat von Horstmann

    Wie legst Du denn die rote Hintergrundfarbe fest für die anderen Teile Deiner Toolbars, mit welcher CSS Regel(n) ?

    Danke, dass du das gefragt hast. Hab jetzt nachgeschaut und eine CSS gefunden, in dem ich den hintergrund für die linke vertikale leiste selber eingefärbt habe. Hab jetzt das gleiche für die rechte vertikale leiste gemacht.

    Das heisst also, dass bei mir die leisten nicht automatisch rot werden. :)

    CSS
        /* Senkrechte Zusatzleiste Farbe ändern */
        #addonbar_v{
        appearance: none !important;
        background-color: red !important;
        color: white !important;
        }
        #addonbar_v2{
        appearance: none !important;
        background-color: red !important;
        color: white !important;
        }
    Alles anzeigen
  • Vertikale Zusatzleiste wird nicht angezeigt.

    • omar1979
    • 20. November 2022 um 19:42

    hmm.. ich hab jetzt festgestellt, dass im anpassungs-fenster die rechte leiste auch nicht angezeigt wird.

  • Vertikale Zusatzleiste wird nicht angezeigt.

    • omar1979
    • 20. November 2022 um 19:06
    Zitat von Horstmann

    Vielleicht könntest Du probieren das Script für die linke Leiste zum testen mal rauszunehmen

    Hab jetzt mal die linke rausgenommen und nur das rechte gelassen aber hat sich nichts geändert, funkt immer noch nicht. ich weiss jetzt nicht mehr was ich machen kann. bin hilflos..

  • Vertikale Zusatzleiste wird nicht angezeigt.

    • omar1979
    • 20. November 2022 um 17:30

    ich hab jetzt die original-code die für linke vertikale leiste funkt umgeändert für rechts funkt aber immernoch nicht.

    hier die code:

    CSS
    // 'Vertical Add-on Bar' script for Firefox 60+ by Aris
    //
    // no 'close' button
    // 'toggle' toolbar with 'Ctr + Alt + /' on Windows/Linux or 'Cmd + Alt + /' on macOS
    // optional toggle button hides the toolbar temporarily, it gets restored on every restart
    // 'Vertical Add-on Bar' entry is only visible in toolbars context menu when in customizing mode
    //
    // flexible spaces on toolbar work 'vertically'
    // toolbar can be on the left or on the right
    // toolbar is display horizontally in customizing mode
    
    // [!] Fix for WebExtensions with own windows by 黒仪大螃蟹 (for 1-N scripts)
    
    
    Components.utils.import("resource:///modules/CustomizableUI.jsm");
    var {Services} = Components.utils.import("resource://gre/modules/Services.jsm", {});
    var appversion = parseInt(Services.appinfo.version);
    
    
    
    var AddonbarVertical = {
      init: function() {
    
        if (appversion >= 76 && location != 'chrome://browser/content/browser.xhtml')
          return;
    
        /* blank tab workaround */
        try {
          if(gBrowser.selectedBrowser.getAttribute('blank')) gBrowser.selectedBrowser.removeAttribute('blank');
        } catch(e) {}
          
        var addonbar_v2_label = "Vertical right Add-on Bar"; // toolbar name
        var button_label = "Toggle vertical right Add-on Bar"; // Toggle button name
        var addonbar_v2_togglebutton = true; // display toggle button for vertical toolbar (true) or not (false)
        var addonbar_v2_on_the_left = false; // display vertical toolbar on the left (true) or the right (false)
        var insert_before_borders = true; // may not always offer a visible change
        var style_addonbar_v2 = true; // apply default toolbar appearance/colors to vertical add-on bar
        var addonbar_v2_width = "30px"; // toolbar width
        var compact_buttons = false; // compact button size (true) or default button size (false)
    
        try {
         if(document.getElementById('toolbox_abv2') == null && document.getElementById('addonbar_v2') == null) {
          if(appversion <= 62) var toolbox_abv2 = document.createElement("toolbox");
          else var toolbox_abv2 = document.createXULElement("toolbox");
          toolbox_abv2.setAttribute("orient","horizontal");
          toolbox_abv2.setAttribute("id","toolbox_abv2");
          toolbox_abv2.setAttribute("insertbefore","sidebar-box");
          
          if(appversion <= 62) var tb_addonbarv = document.createElement("toolbar");
          else var tb_addonbarv = document.createXULElement("toolbar");
          tb_addonbarv.setAttribute("id","addonbar_v2");
          tb_addonbarv.setAttribute("customizable","true");
          tb_addonbarv.setAttribute("class","toolbar-primary chromeclass-toolbar browser-toolbar customization-target");
          tb_addonbarv.setAttribute("mode","icons");
          tb_addonbarv.setAttribute("iconsize","small");
          tb_addonbarv.setAttribute("toolboxid","navigator-toolbox");
          tb_addonbarv.setAttribute("orient","vertical");
          tb_addonbarv.setAttribute("flex","1");
          tb_addonbarv.setAttribute("context","toolbar-context-menu");
          tb_addonbarv.setAttribute("toolbarname", addonbar_v2_label);
          tb_addonbarv.setAttribute("label", addonbar_v2_label);
          tb_addonbarv.setAttribute("lockiconsize","true");
          tb_addonbarv.setAttribute("defaultset","spring");
          
          toolbox_abv2.appendChild(tb_addonbarv);
          
          CustomizableUI.registerArea("addonbar_v2", {legacy: true});
          if(appversion >= 65) CustomizableUI.registerToolbarNode(tb_addonbarv);
          
          if(addonbar_v2_on_the_left) {
            if(insert_before_borders || appversion >= 86) document.getElementById("browser").insertBefore(toolbox_abv2,document.getElementById("browser").firstChild);
            else document.getElementById("browser").insertBefore(toolbox_abv2,document.getElementById("browser").firstChild.nextSibling);
          }
          else {
            if(insert_before_borders) document.getElementById("browser").appendChild(toolbox_abv2);
            else document.getElementById("browser").insertBefore(toolbox_abv2,document.getElementById("browser").lastChild);
          }
          
            var observer = new MutationObserver(function(mutations) {
            mutations.forEach(function(mutation) {
              try {
                if(document.querySelector('#main-window').getAttribute('customizing')) {
                  document.querySelector('#addonbar_v2').setAttribute("orient","horizontal");
                  document.querySelector('#navigator-toolbox').appendChild(document.querySelector('#addonbar_v'));
                }
                else  {
                  document.querySelector('#addonbar_v2').setAttribute("orient","vertical");
                  document.querySelector('#toolbox_abv2').appendChild(document.querySelector('#addonbar_v2'));
    
                }
              } catch(e){}
            });    
          });
        
          observer.observe(document.querySelector('#main-window'), { attributes: true, attributeFilter: ['customizing'] });
          
          try {
            Services.prefs.getDefaultBranch("browser.vaddonbar.").setBoolPref("enabled",true);
            setToolbarVisibility(document.getElementById("addonbar_v2"), Services.prefs.getBranch("browser.vaddonbar.").getBoolPref("enabled"));
            setToolbarVisibility(document.getElementById("toolbox_abv2"), Services.prefs.getBranch("browser.vaddonbar.").getBoolPref("enabled"));
          } catch(e) {}
          
          if(addonbar_v2_togglebutton) {
          
            CustomizableUI.createWidget({
                id: "tooglebutton_addonbar_v2", // button id
                defaultArea: CustomizableUI.AREA_NAVBAR,
                removable: true,
                label: button_label, // button title
                tooltiptext: button_label, // tooltip title
                onClick: function(event) {
    
                  var windows = Services.wm.getEnumerator(null);
                    while (windows.hasMoreElements()) {
                      var win = windows.getNext();
                      
                      var vAddonBar = win.document.getElementById("addonbar_v2");
                      setToolbarVisibility(vAddonBar, vAddonBar.collapsed);
                          
                      var vAddonBarBox = win.document.getElementById("toolbox_abv2");
                      setToolbarVisibility(vAddonBarBox, vAddonBarBox.collapsed);
                          
                      Services.prefs.getBranch("browser.vaddonbar.").setBoolPref("enabled",!vAddonBar.collapsed);
                      
                      if(!vAddonBar.collapsed)
                        win.document.querySelector('#tooglebutton_addonbar_v2').setAttribute("checked","true");
                      else win.document.querySelector('#tooglebutton_addonbar_v2').removeAttribute("checked");
                    }
    
                },
                onCreated: function(button) {
                  if(Services.prefs.getBranch("browser.vaddonbar.").getBoolPref("enabled"))
                    button.setAttribute("checked","true");
                  return button;
                }
                    
            });
          }
    
          // 'Ctr + Alt + /' on Windows/Linux or 'Cmd + Alt + /' on macOS to toggle vertical add-on bar
          var key = document.createXULElement('key');
          if(appversion < 69) key = document.createElement("key");
          key.id = 'key_toggleVAddonBar';
          key.setAttribute('key', '/');
          key.setAttribute('modifiers', 'accel,alt');
          key.setAttribute('oncommand','\
            var windows = Services.wm.getEnumerator(null);\
            while (windows.hasMoreElements()) {\
              var win = windows.getNext();  \
              var vAddonBar = win.document.getElementById("addonbar_v2");\
              setToolbarVisibility(vAddonBar, vAddonBar.collapsed);\
              var vAddonBarBox = win.document.getElementById("toolbox_abv2");\
              setToolbarVisibility(vAddonBarBox, vAddonBarBox.collapsed);\
              Services.prefs.getBranch("browser.vaddonbar.").setBoolPref("enabled",!vAddonBar.collapsed);\
              if(!vAddonBar.collapsed)\
                win.document.querySelector("#tooglebutton_addonbar_v2").setAttribute("checked","true");\
              else win.document.querySelector("#tooglebutton_addonbar_v2").removeAttribute("checked");\
            }\
          ');
          document.getElementById('mainKeyset').appendChild(key);
          
         }
        } catch(e) {}
        
        // style toolbar & toggle button
        var addonbar_v2_style = '';
        var tooglebutton_addonbar_v2_style = '';
        
        if(style_addonbar_v2) {
          var end_border =' \
            #addonbar_v2 { \
                -moz-border-end: 1px solid var(--sidebar-border-color,rgba(0,0,0,0.1)) !important; \
            }\
          ';
              
          if(!addonbar_v2_on_the_left) {
            end_border ='\
              #addonbar_v2 { \
                -moz-border-start: 1px solid var(--sidebar-border-color,rgba(0,0,0,0.1)) !important; \
              }\
            ';
          }
    
          addonbar_v2_style ='\
            #addonbar_v2 { \
              -moz-appearance: none !important; \
              background-color: var(--toolbar-bgcolor); \
              background-image: var(--toolbar-bgimage); \
              background-clip: padding-box; \
              color: var(--toolbar-color, inherit); \
            } \
            #main-window:-moz-lwtheme #addonbar_v2 { \
              background: var(--lwt-accent-color) !important; \
            } \
            #main-window[lwtheme-image="true"]:-moz-lwtheme #addonbar_v2 { \
              background: var(--lwt-header-image) !important; \
              background-position: 0vw 50vh !important; \
            } \
            #main-window:not([customizing]) #toolbox_abv2:not([collapsed="true"]), \
            #main-window:not([customizing]) #addonbar_v2:not([collapsed="true"]) { \
              min-width: '+addonbar_v2_width+'; \
              width: '+addonbar_v2_width+'; \
              max-width: '+addonbar_v2_width+'; \
            } \
            #main-window[chromehidden="menubar toolbar location directories status extrachrome "] #toolbox_abv2:not([collapsed="true"]), \
            #main-window[chromehidden="menubar toolbar location directories status extrachrome "] #addonbar_v2:not([collapsed="true"]), \
            #main-window[sizemode="fullscreen"] #toolbox_abv2:not([collapsed="true"]), \
            #main-window[sizemode="fullscreen"] #addonbar_v2:not([collapsed="true"]) { \
              min-width: 0px; \
              width: 0px; \
              max-width: 0px; \
            } \
            #main-window[customizing] #addonbar_v2 { \
              outline: 1px dashed !important; \
              outline-offset: -2px !important; \
            } \
            #addonbar_v2:-moz-lwtheme { \
              background: var(--lwt-header-image) !important; \
              background-position: 100vw 50vh !important; \
            } \
            #addonbar_v2 toolbarbutton, \
            #addonbar_v2 toolbar .toolbarbutton-1 { \
              padding: 0 !important; \
            } \
            '+end_border+' \
          ';
        }
        
        if(addonbar_v2_togglebutton) {
          tooglebutton_addonbar_v2_style ='\
             #tooglebutton_addonbar_v2:hover > .toolbarbutton-icon {\
             background-color: var(--toolbarbutton-active-background)!important; }\
             #tooglebutton_addonbar_v2> .toolbarbutton-icon {\
              background-color: transparent !important;}\
            #tooglebutton_addonbar_v2 .toolbarbutton-icon { \
              list-style-image: url("chrome://browser/skin/sidebars.svg"); \
              fill: white; \
            }\
            /*#tooglebutton_addonbar_v2 .toolbarbutton-icon { \
              list-style-image: url("chrome://browser/skin/forward.svg"); \
              fill: red; \
            } \
            #tooglebutton_addonbar_v2[checked] .toolbarbutton-icon { \
              fill: green;  \
              background:none !important;\
            } \
            #tooglebutton_addonbar_v2 { \
              background: url("chrome://browser/skin/back.svg") no-repeat; \
              background-size: 35% !important; \
              background-position: 10% 70% !important; \
            } \
            #tooglebutton_addonbar_v2[checked] { \
              transform: rotate(180deg) !important;  \
              background: url("chrome://browser/skin/back.svg") no-repeat; \
              background-position: 10% 30% !important; \
            }*/ \
          ';
        }
        
        var compact_buttons_code = "";
        
        if(compact_buttons)
          compact_buttons_code = "\
            #addonbar_v2 toolbarbutton .toolbarbutton-icon { \
              padding: 0 !important; \
              width: 16px !important; \
              height: 16px !important; \
            } \
            #addonbar_v2 .toolbarbutton-badge-stack { \
              padding: 0 !important; \
              margin: 0 !important; \
              width: 16px !important; \
              min-width: 16px !important; \
              height: 16px !important; \
              min-height: 16px !important; \
            } \
            #addonbar_v2 toolbarbutton .toolbarbutton-badge { \
              margin-top: 0px !important; \
              font-size: 8px !important; \
            } \
          ";
          
        var uri = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent('\
          '+addonbar_v2_style+' \
          '+tooglebutton_addonbar_v2_style+' \
          '+compact_buttons_code+' \
        '), null, null);
          
        var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService);
        sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
        
      }
    
    }
    
    /* initialization delay workaround */
    document.addEventListener("DOMContentLoaded", AddonbarVertical.init(), false);
    /* Use the below code instead of the one above this line, if issues occur */
    /*
    setTimeout(function(){
      AddonbarVertical.init();
    },2000);
    */
    Alles anzeigen

    und hier ein bild davon:

    also die Leiste ist rechts was ok ist. der icon von der leiste hat keinen grauen hintergrund was auch ok ist.

    aber die Leiste wird nicht automatisch wie die auf der linken seite rot.

  • Vertikale Zusatzleiste wird nicht angezeigt.

    • omar1979
    • 19. November 2022 um 22:53
    Zitat von Horstmann

    Was die Hintergrundfarbe der neuen Leiste angeht , bei mir - und zumindest mit der Variante die ich oben gepostet hatte - passen sich beide Zusatzleisten an die allgemeine Toolbarfarbe an .

    Besten Dank. Das tut auch die, die ich für die linke Seite benütze auch. Werde morgen das Ändern und schauen.

  • Vertikale Zusatzleiste wird nicht angezeigt.

    • omar1979
    • 19. November 2022 um 22:36
    Zitat von Horstmann

    Und die Zeilen 229 und darunter von hier haben also die selben Einträge wie der korrespondierende Code von Andreas ?

    Hoppla.. Sorry irgendwie hab ich glaub ich doch den alten Script genommen. Ich sollte es löschen und den anderen code umändern. :( mach ich aber morgen.

  • Vertikale Zusatzleiste wird nicht angezeigt.

    • omar1979
    • 19. November 2022 um 22:21
    Zitat von Horstmann

    Der Script Code den Du oben gepostet hast ist ohne die Änderungen von Andreas für die Buttons und ihr aktiv bzw. hover Verhalten .

    Es ist das Script das 2002Andreas gepostet hat, die benütze ich auch für auf der linken Seite. ich hab nur in diesem Script die addonbar_v zu addonbar_v2 geändert und die toolbox_abv in toolbox_abv2 geändert, damit ich es benützen kann.

  • Vertikale Zusatzleiste wird nicht angezeigt.

    • omar1979
    • 19. November 2022 um 22:01
    Zitat von Horstmann

    Bei mir ( Mac ) funktioniert die Leiste rechts nur wenn ich zusätzlich noch var insert_before_borders = true setze .

    Da ich dachte, dass es bei Windows anderst ist, hab ich das nicht beachtet..

    Jetzt wo es 2002Andreas bestätigte, dass es bei Windows auch so ist, hab ich es gemacht.

    Und tatsächlich.. die Leiste ist jetzt auf der rechten Seite, nur die Farbe der Leiste ist nicht automatisch rot geworden.

    Der Hintergrund des Icons der Leiste ist auch immernoch grau als ob es auf Hover wäre.

  • Vertikale Zusatzleiste wird nicht angezeigt.

    • omar1979
    • 19. November 2022 um 21:53
    Zitat von Horstmann

    Den Iconhintergrund hat Andreas auf der letzten Seite schon erläutert, zB hier ; der Leistenhintergrund in deiner ersten Leiste ist ja rot, sollte in der neuen Leiste dann eigentlich auch so sein .

    Ich benütze ja diese Code, die 2002Andreas dort teilte. Hab die Code noch geändert, damit ich die gleiche Leiste auch auf der rechten Seite habe. :)

  • Vertikale Zusatzleiste wird nicht angezeigt.

    • omar1979
    • 19. November 2022 um 21:33

    Hier ist mal die Code, evtl kann jemand helfen den Fehler zu finden.

    1. Wäre froh wenn die Leiste auf der rechten Seite wäre.

    2. Die Farbe der Leiste wie beim Leiste auf der linken Seite auch automatisch rot wird.

    3. Dass der Hintergrund des Icons von der Leiste nicht immer grau ist, als ob es immer auf Hover wäre.

    Besten Danke im Voraus..

    CSS
    // 'Vertical Add-on Bar' script for Firefox 60+ by Aris
    //
    // no 'close' button
    // 'toggle' toolbar with 'Ctr + Alt + /' on Windows/Linux or 'Cmd + Alt + /' on macOS
    // optional toggle button hides the toolbar temporarily, it gets restored on every restart
    // 'Vertical Add-on Bar' entry is only visible in toolbars context menu when in customizing mode
    //
    // flexible spaces on toolbar work 'vertically'
    // toolbar can be on the left or on the right
    // toolbar is display horizontally in customizing mode
    
    // [!] Fix for WebExtensions with own windows by 黒仪大螃蟹 (for 1-N scripts)
    
    
    Components.utils.import("resource:///modules/CustomizableUI.jsm");
    var {Services} = Components.utils.import("resource://gre/modules/Services.jsm", {});
    var appversion = parseInt(Services.appinfo.version);
    
    
    
    var AddonbarVertical = {
      init: function() {
    
        if (appversion >= 76 && location != 'chrome://browser/content/browser.xhtml')
          return;
    
        /* blank tab workaround */
        try {
          if(gBrowser.selectedBrowser.getAttribute('blank')) gBrowser.selectedBrowser.removeAttribute('blank');
        } catch(e) {}
          
        var addonbar_v2_label = "Vertical right Add-on Bar"; // toolbar name
        var button_label = "Toggle vertical right Add-on Bar"; // Toggle button name
        var addonbar_v2_togglebutton = true; // display toggle button for vertical toolbar (true) or not (false)
        var addonbar_v2_on_the_left = false; // display vertical toolbar on the left (true) or the right (false)
        var insert_before_borders = false; // may not always offer a visible change
        var style_addonbar_v2 = true; // apply default toolbar appearance/colors to vertical add-on bar
        var addonbar_v2_width = "30px"; // toolbar width
        var compact_buttons = false; // compact button size (true) or default button size (false)
    
        try {
         if(document.getElementById('toolbox_abv2') == null && document.getElementById('addonbar_v2') == null) {
          if(appversion <= 62) var toolbox_abv2 = document.createElement("toolbox");
          else var toolbox_abv2 = document.createXULElement("toolbox");
          toolbox_abv2.setAttribute("orient","horizontal");
          toolbox_abv2.setAttribute("id","toolbox_abv2");
          toolbox_abv2.setAttribute("insertbefore","sidebar-box");
          
          if(appversion <= 62) var tb_addonbarv = document.createElement("toolbar");
          else var tb_addonbarv = document.createXULElement("toolbar");
          tb_addonbarv.setAttribute("id","addonbar_v2");
          tb_addonbarv.setAttribute("customizable","true");
          tb_addonbarv.setAttribute("class","toolbar-primary chromeclass-toolbar browser-toolbar customization-target");
          tb_addonbarv.setAttribute("mode","icons");
          tb_addonbarv.setAttribute("iconsize","small");
          tb_addonbarv.setAttribute("toolboxid","navigator-toolbox");
          tb_addonbarv.setAttribute("orient","vertical");
          tb_addonbarv.setAttribute("flex","1");
          tb_addonbarv.setAttribute("context","toolbar-context-menu");
          tb_addonbarv.setAttribute("toolbarname", addonbar_v2_label);
          tb_addonbarv.setAttribute("label", addonbar_v2_label);
          tb_addonbarv.setAttribute("lockiconsize","true");
          tb_addonbarv.setAttribute("defaultset","spring");
          
          toolbox_abv2.appendChild(tb_addonbarv);
          
          CustomizableUI.registerArea("addonbar_v2", {legacy: true});
          if(appversion >= 65) CustomizableUI.registerToolbarNode(tb_addonbarv);
          
          if(addonbar_v2_on_the_left) {
            if(insert_before_borders || appversion >= 86) document.getElementById("browser").insertBefore(toolbox_abv2,document.getElementById("browser").firstChild);
            else document.getElementById("browser").insertBefore(toolbox_abv2,document.getElementById("browser").firstChild.nextSibling);
          }
          else {
            if(insert_before_borders) document.getElementById("browser").appendChild(toolbox_abv2);
            else document.getElementById("browser").insertBefore(toolbox_abv2,document.getElementById("browser").lastChild);
          }
          
            var observer = new MutationObserver(function(mutations) {
            mutations.forEach(function(mutation) {
              try {
                if(document.querySelector('#main-window').getAttribute('customizing')) {
                  document.querySelector('#addonbar_v2').setAttribute("orient","horizontal");
                  document.querySelector('#navigator-toolbox').appendChild(document.querySelector('#addonbar_v2'));
                }
                else  {
                  document.querySelector('#addonbar_v2').setAttribute("orient","vertical");
                  document.querySelector('#toolbox_abv2').appendChild(document.querySelector('#addonbar_v2'));
    
                }
              } catch(e){}
            });    
          });
        
          observer.observe(document.querySelector('#main-window'), { attributes: true, attributeFilter: ['customizing'] });
          
          try {
            Services.prefs.getDefaultBranch("browser.vaddonbar.").setBoolPref("enabled",true);
            setToolbarVisibility(document.getElementById("addonbar_v2"), Services.prefs.getBranch("browser.vaddonbar.").getBoolPref("enabled"));
            setToolbarVisibility(document.getElementById("toolbox_abv2"), Services.prefs.getBranch("browser.vaddonbar.").getBoolPref("enabled"));
          } catch(e) {}
          
          if(addonbar_v2_togglebutton) {
          
            CustomizableUI.createWidget({
                id: "tooglebutton_addonbar_v2", // button id
                defaultArea: CustomizableUI.AREA_NAVBAR,
                removable: true,
                label: button_label, // button title
                tooltiptext: button_label, // tooltip title
                onClick: function(event) {
    
                  var windows = Services.wm.getEnumerator(null);
                    while (windows.hasMoreElements()) {
                      var win = windows.getNext();
                      
                      var vAddonBar = win.document.getElementById("addonbar_v2");
                      setToolbarVisibility(vAddonBar, vAddonBar.collapsed);
                          
                      var vAddonBarBox = win.document.getElementById("toolbox_abv2");
                      setToolbarVisibility(vAddonBarBox, vAddonBarBox.collapsed);
                          
                      Services.prefs.getBranch("browser.vaddonbar.").setBoolPref("enabled",!vAddonBar.collapsed);
                      
                      if(!vAddonBar.collapsed)
                        win.document.querySelector('#tooglebutton_addonbar_v2').setAttribute("checked","true");
                      else win.document.querySelector('#tooglebutton_addonbar_v2').removeAttribute("checked");
                    }
    
                },
                onCreated: function(button) {
                  if(Services.prefs.getBranch("browser.vaddonbar.").getBoolPref("enabled"))
                    button.setAttribute("checked","true");
                  return button;
                }
                    
            });
          }
    
          // 'Ctr + Alt + /' on Windows/Linux or 'Cmd + Alt + /' on macOS to toggle vertical add-on bar
          var key = document.createXULElement('key');
          if(appversion < 69) key = document.createElement("key");
          key.id = 'key_toggleVAddonBar';
          key.setAttribute('key', '/');
          key.setAttribute('modifiers', 'accel,alt');
          key.setAttribute('oncommand','\
            var windows = Services.wm.getEnumerator(null);\
            while (windows.hasMoreElements()) {\
              var win = windows.getNext();  \
              var vAddonBar = win.document.getElementById("addonbar_v2");\
              setToolbarVisibility(vAddonBar, vAddonBar.collapsed);\
              var vAddonBarBox = win.document.getElementById("toolbox_abv2");\
              setToolbarVisibility(vAddonBarBox, vAddonBarBox.collapsed);\
              Services.prefs.getBranch("browser.vaddonbar.").setBoolPref("enabled",!vAddonBar.collapsed);\
              if(!vAddonBar.collapsed)\
                win.document.querySelector("#tooglebutton_addonbar_v2").setAttribute("checked","true");\
              else win.document.querySelector("#tooglebutton_addonbar_v2").removeAttribute("checked");\
            }\
          ');
          document.getElementById('mainKeyset').appendChild(key);
          
         }
        } catch(e) {}
        
        // style toolbar & toggle button
        var addonbar_v2_style = '';
        var tooglebutton_addonbar_v2_style = '';
        
        if(style_addonbar_v2) {
          var end_border =' \
            #addonbar_v2 { \
                -moz-border-end: 1px solid var(--sidebar-border-color,rgba(0,0,0,0.1)) !important; \
            }\
          ';
              
          if(!addonbar_v2_on_the_left) {
            end_border ='\
              #addonbar_v2 { \
                -moz-border-start: 1px solid var(--sidebar-border-color,rgba(0,0,0,0.1)) !important; \
              }\
            ';
          }
    
          addonbar_v2_style ='\
            #addonbar_v2 { \
              -moz-appearance: none !important; \
              background-color: var(--toolbar-bgcolor); \
              background-image: var(--toolbar-bgimage); \
              background-clip: padding-box; \
              color: var(--toolbar-color, inherit); \
            } \
            #main-window:-moz-lwtheme #addonbar_v2 { \
              background: var(--lwt-accent-color) !important; \
            } \
            #main-window[lwtheme-image="true"]:-moz-lwtheme #addonbar_v2 { \
              background: var(--lwt-header-image) !important; \
              background-position: 0vw 50vh !important; \
            } \
            #main-window:not([customizing]) #toolbox_abv2:not([collapsed="true"]), \
            #main-window:not([customizing]) #addonbar_v2:not([collapsed="true"]) { \
              min-width: '+addonbar_v2_width+'; \
              width: '+addonbar_v2_width+'; \
              max-width: '+addonbar_v2_width+'; \
            } \
            #main-window[chromehidden="menubar toolbar location directories status extrachrome "] #toolbox_abv2:not([collapsed="true"]), \
            #main-window[chromehidden="menubar toolbar location directories status extrachrome "] #addonbar_v2:not([collapsed="true"]), \
            #main-window[sizemode="fullscreen"] #toolbox_abv2:not([collapsed="true"]), \
            #main-window[sizemode="fullscreen"] #addonbar_v2:not([collapsed="true"]) { \
              min-width: 0px; \
              width: 0px; \
              max-width: 0px; \
            } \
            #main-window[customizing] #addonbar_v2 { \
              outline: 1px dashed !important; \
              outline-offset: -2px !important; \
            } \
            #addonbar_v2:-moz-lwtheme { \
              background: var(--lwt-header-image) !important; \
              background-position: 100vw 50vh !important; \
            } \
            #addonbar_v2 toolbarbutton, \
            #addonbar_v2 toolbar .toolbarbutton-1 { \
              padding: 0 !important; \
            } \
            '+end_border+' \
          ';
        }
        
        if(addonbar_v2_togglebutton) {
          tooglebutton_addonbar_v2_style ='\
            #tooglebutton_addonbar_v2 .toolbarbutton-icon { \
              list-style-image: url("chrome://browser/skin/sidebars.svg"); \
              fill: green; \
            }\
            /*#tooglebutton_addonbar_v2 .toolbarbutton-icon { \
              list-style-image: url("chrome://browser/skin/forward.svg"); \
              fill: red; \
            } \
            #tooglebutton_addonbar_v2[checked] .toolbarbutton-icon { \
              fill: green;  \
            } \
            #tooglebutton_addonbar_v2 { \
              background: url("chrome://browser/skin/back.svg") no-repeat; \
              background-size: 35% !important; \
              background-position: 10% 70% !important; \
            } \
            #tooglebutton_addonbar_v2[checked] { \
              transform: rotate(180deg) !important;  \
              background: url("chrome://browser/skin/back.svg") no-repeat; \
              background-position: 10% 30% !important; \
            }*/ \
          ';
        }
        
        var compact_buttons_code = "";
        
        if(compact_buttons)
          compact_buttons_code = "\
            #addonbar_v2 toolbarbutton .toolbarbutton-icon { \
              padding: 0 !important; \
              width: 16px !important; \
              height: 16px !important; \
            } \
            #addonbar_v2 .toolbarbutton-badge-stack { \
              padding: 0 !important; \
              margin: 0 !important; \
              width: 16px !important; \
              min-width: 16px !important; \
              height: 16px !important; \
              min-height: 16px !important; \
            } \
            #addonbar_v2 toolbarbutton .toolbarbutton-badge { \
              margin-top: 0px !important; \
              font-size: 8px !important; \
            } \
          ";
          
        var uri = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent('\
          '+addonbar_v2_style+' \
          '+tooglebutton_addonbar_v2_style+' \
          '+compact_buttons_code+' \
        '), null, null);
          
        var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService);
        sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
        
      }
    
    }
    
    /* initialization delay workaround */
    document.addEventListener("DOMContentLoaded", AddonbarVertical.init(), false);
    /* Use the below code instead of the one above this line, if issues occur */
    /*
    setTimeout(function(){
      AddonbarVertical.init();
    },2000);
    */
    Alles anzeigen

    zur Zeit sieht die Leiste so aus:

  • Vertikale Zusatzleiste wird nicht angezeigt.

    • omar1979
    • 19. November 2022 um 21:16

    Hab jetzt so gemacht, wie ich in meinem oberen Beitrag gesagt habe und es sieht jetzt so aus. :)

    Mal noch etwas weiter testen. :)


    Wenn ich in dieser Zeile das 2 nach dem addonbar_v wegnehme verschwindet die Leiste wieder. :(

  • Vertikale Zusatzleiste wird nicht angezeigt.

    • omar1979
    • 19. November 2022 um 21:13
    Zitat von Dharkness

    Du hast das → var addonbar_v_on_the_left auch auf false geändert?

    Bei mir sieht diese Zeile jetzt so aus:

    var addonbar_v2_on_the_left = false; // display vertical toolbar on the left (true) or the right (false)

    ich setz das mal auf true und teste nochmals.

    Danke für die Info.

  • Vertikale Zusatzleiste wird nicht angezeigt.

    • omar1979
    • 19. November 2022 um 21:02

    Hmm... Hab die auch geändert, aber die vertikale Leiste ist auch auf der linken Seite. :)

    Mal morgen schauen, was ich falsch gemacht habe. Und das Icon hat immer einen grauen Hintergrund, als ob es immer auf Hover wäre.

  • Vertikale Zusatzleiste wird nicht angezeigt.

    • omar1979
    • 19. November 2022 um 20:24
    Zitat von Dharkness

    Du hast aber sicherlich die IDs addonbar_v und toolbox_abv weiter verwendet, die müsstest Du auch ändern

    Danke für die Info. Werde es mal testen, ob nur mit diesen evtl. funkt.

  • Vertikale Zusatzleiste wird nicht angezeigt.

    • omar1979
    • 19. November 2022 um 20:08
    Zitat von Horstmann

    Nur mal aus Neugierde, was hast Du denn probiert um eine zweite vertikale Zusatzleiste zu bekommen ?

    Es gibt da verschiedene Möglichkeiten - bzw. 2 die ich selber kenne - wobei das Aris Script die einzig mir bekannte Fertiglösung ist .

    Ich hab ein Paar sachen geändert, ist aber in dem oberen Code nicht drin. Zum Beispiel das "Vertical Add-on Bar" in "Vertical right Add-on Bar" oder das "Toggle vertical Add-on Bar" in "Toggle vertical right Add-on Bar"...

    sonst kommt mir grad nichts mehr in den Sinn. Aber so Anfänger-Sachen halt.

  • Vertikale Zusatzleiste wird nicht angezeigt.

    • omar1979
    • 18. November 2022 um 20:51

    Hallo Allen..

    ich hab heute versucht, die vertikale Zusatzleiste umzuändern, so dass ich eine 2.te auf der rechten Seite habe, hat aber nicht geklappt. Benützt evtl. jemand diese Leiste doppelt also für rechts und links? Kann er/sie es teilen? oder mir helfen die änderungen richtig zu machen?

    hier die Code, die ich für Links benütze und will sie AUCH für rechts benützen.

    CSS
    // 'Vertical Add-on Bar' script for Firefox 60+ by Aris
    //
    // no 'close' button
    // 'toggle' toolbar with 'Ctr + Alt + /' on Windows/Linux or 'Cmd + Alt + /' on macOS
    // optional toggle button hides the toolbar temporarily, it gets restored on every restart
    // 'Vertical Add-on Bar' entry is only visible in toolbars context menu when in customizing mode
    //
    // flexible spaces on toolbar work 'vertically'
    // toolbar can be on the left or on the right
    // toolbar is display horizontally in customizing mode
    
    // [!] Fix for WebExtensions with own windows by 黒仪大螃蟹 (for 1-N scripts)
    
    
    Components.utils.import("resource:///modules/CustomizableUI.jsm");
    var {Services} = Components.utils.import("resource://gre/modules/Services.jsm", {});
    var appversion = parseInt(Services.appinfo.version);
    
    
    
    var AddonbarVertical = {
      init: function() {
    
        if (appversion >= 76 && location != 'chrome://browser/content/browser.xhtml')
          return;
    
        /* blank tab workaround */
        try {
          if(gBrowser.selectedBrowser.getAttribute('blank')) gBrowser.selectedBrowser.removeAttribute('blank');
        } catch(e) {}
          
        var addonbar_v_label = "Vertical Add-on Bar"; // toolbar name
        var button_label = "Toggle vertical Add-on Bar"; // Toggle button name
        var addonbar_v_togglebutton = true; // display toggle button for vertical toolbar (true) or not (false)
        var addonbar_v_on_the_left = true; // display vertical toolbar on the left (true) or the right (false)
        var insert_before_borders = false; // may not always offer a visible change
        var style_addonbar_v = true; // apply default toolbar appearance/colors to vertical add-on bar
        var addonbar_v_width = "30px"; // toolbar width
        var compact_buttons = false; // compact button size (true) or default button size (false)
    
        try {
         if(document.getElementById('toolbox_abv') == null && document.getElementById('addonbar_v') == null) {
          if(appversion <= 62) var toolbox_abv = document.createElement("toolbox");
          else var toolbox_abv = document.createXULElement("toolbox");
          toolbox_abv.setAttribute("orient","horizontal");
          toolbox_abv.setAttribute("id","toolbox_abv");
          toolbox_abv.setAttribute("insertbefore","sidebar-box");
          
          if(appversion <= 62) var tb_addonbarv = document.createElement("toolbar");
          else var tb_addonbarv = document.createXULElement("toolbar");
          tb_addonbarv.setAttribute("id","addonbar_v");
          tb_addonbarv.setAttribute("customizable","true");
          tb_addonbarv.setAttribute("class","toolbar-primary chromeclass-toolbar browser-toolbar customization-target");
          tb_addonbarv.setAttribute("mode","icons");
          tb_addonbarv.setAttribute("iconsize","small");
          tb_addonbarv.setAttribute("toolboxid","navigator-toolbox");
          tb_addonbarv.setAttribute("orient","vertical");
          tb_addonbarv.setAttribute("flex","1");
          tb_addonbarv.setAttribute("context","toolbar-context-menu");
          tb_addonbarv.setAttribute("toolbarname", addonbar_v_label);
          tb_addonbarv.setAttribute("label", addonbar_v_label);
          tb_addonbarv.setAttribute("lockiconsize","true");
          tb_addonbarv.setAttribute("defaultset","spring");
          
          toolbox_abv.appendChild(tb_addonbarv);
          
          CustomizableUI.registerArea("addonbar_v", {legacy: true});
          if(appversion >= 65) CustomizableUI.registerToolbarNode(tb_addonbarv);
          
          if(addonbar_v_on_the_left) {
            if(insert_before_borders || appversion >= 86) document.getElementById("browser").insertBefore(toolbox_abv,document.getElementById("browser").firstChild);
            else document.getElementById("browser").insertBefore(toolbox_abv,document.getElementById("browser").firstChild.nextSibling);
          }
          else {
            if(insert_before_borders) document.getElementById("browser").appendChild(toolbox_abv);
            else document.getElementById("browser").insertBefore(toolbox_abv,document.getElementById("browser").lastChild);
          }
          
            var observer = new MutationObserver(function(mutations) {
            mutations.forEach(function(mutation) {
              try {
                if(document.querySelector('#main-window').getAttribute('customizing')) {
                  document.querySelector('#addonbar_v').setAttribute("orient","horizontal");
                  document.querySelector('#navigator-toolbox').appendChild(document.querySelector('#addonbar_v'));
                }
                else  {
                  document.querySelector('#addonbar_v').setAttribute("orient","vertical");
                  document.querySelector('#toolbox_abv').appendChild(document.querySelector('#addonbar_v'));
    
                }
              } catch(e){}
            });    
          });
        
          observer.observe(document.querySelector('#main-window'), { attributes: true, attributeFilter: ['customizing'] });
          
          try {
            Services.prefs.getDefaultBranch("browser.vaddonbar.").setBoolPref("enabled",true);
            setToolbarVisibility(document.getElementById("addonbar_v"), Services.prefs.getBranch("browser.vaddonbar.").getBoolPref("enabled"));
            setToolbarVisibility(document.getElementById("toolbox_abv"), Services.prefs.getBranch("browser.vaddonbar.").getBoolPref("enabled"));
          } catch(e) {}
          
          if(addonbar_v_togglebutton) {
          
            CustomizableUI.createWidget({
                id: "tooglebutton_addonbar_v", // button id
                defaultArea: CustomizableUI.AREA_NAVBAR,
                removable: true,
                label: button_label, // button title
                tooltiptext: button_label, // tooltip title
                onClick: function(event) {
    
                  var windows = Services.wm.getEnumerator(null);
                    while (windows.hasMoreElements()) {
                      var win = windows.getNext();
                      
                      var vAddonBar = win.document.getElementById("addonbar_v");
                      setToolbarVisibility(vAddonBar, vAddonBar.collapsed);
                          
                      var vAddonBarBox = win.document.getElementById("toolbox_abv");
                      setToolbarVisibility(vAddonBarBox, vAddonBarBox.collapsed);
                          
                      Services.prefs.getBranch("browser.vaddonbar.").setBoolPref("enabled",!vAddonBar.collapsed);
                      
                      if(!vAddonBar.collapsed)
                        win.document.querySelector('#tooglebutton_addonbar_v').setAttribute("checked","true");
                      else win.document.querySelector('#tooglebutton_addonbar_v').removeAttribute("checked");
                    }
    
                },
                onCreated: function(button) {
                  if(Services.prefs.getBranch("browser.vaddonbar.").getBoolPref("enabled"))
                    button.setAttribute("checked","true");
                  return button;
                }
                    
            });
          }
    
          // 'Ctr + Alt + /' on Windows/Linux or 'Cmd + Alt + /' on macOS to toggle vertical add-on bar
          var key = document.createXULElement('key');
          if(appversion < 69) key = document.createElement("key");
          key.id = 'key_toggleVAddonBar';
          key.setAttribute('key', '/');
          key.setAttribute('modifiers', 'accel,alt');
          key.setAttribute('oncommand','\
            var windows = Services.wm.getEnumerator(null);\
            while (windows.hasMoreElements()) {\
              var win = windows.getNext();  \
              var vAddonBar = win.document.getElementById("addonbar_v");\
              setToolbarVisibility(vAddonBar, vAddonBar.collapsed);\
              var vAddonBarBox = win.document.getElementById("toolbox_abv");\
              setToolbarVisibility(vAddonBarBox, vAddonBarBox.collapsed);\
              Services.prefs.getBranch("browser.vaddonbar.").setBoolPref("enabled",!vAddonBar.collapsed);\
              if(!vAddonBar.collapsed)\
                win.document.querySelector("#tooglebutton_addonbar_v").setAttribute("checked","true");\
              else win.document.querySelector("#tooglebutton_addonbar_v").removeAttribute("checked");\
            }\
          ');
          document.getElementById('mainKeyset').appendChild(key);
          
         }
        } catch(e) {}
        
        // style toolbar & toggle button
        var addonbar_v_style = '';
        var tooglebutton_addonbar_v_style = '';
        
        if(style_addonbar_v) {
          var end_border =' \
            #addonbar_v { \
                -moz-border-end: 1px solid var(--sidebar-border-color,rgba(0,0,0,0.1)) !important; \
            }\
          ';
              
          if(!addonbar_v_on_the_left) {
            end_border ='\
              #addonbar_v { \
                -moz-border-start: 1px solid var(--sidebar-border-color,rgba(0,0,0,0.1)) !important; \
              }\
            ';
          }
    
          addonbar_v_style ='\
            #addonbar_v { \
              -moz-appearance: none !important; \
              background-color: var(--toolbar-bgcolor); \
              background-image: var(--toolbar-bgimage); \
              background-clip: padding-box; \
              color: var(--toolbar-color, inherit); \
            } \
            #main-window:-moz-lwtheme #addonbar_v { \
              background: var(--lwt-accent-color) !important; \
            } \
            #main-window[lwtheme-image="true"]:-moz-lwtheme #addonbar_v { \
              background: var(--lwt-header-image) !important; \
              background-position: 0vw 50vh !important; \
            } \
            #main-window:not([customizing]) #toolbox_abv:not([collapsed="true"]), \
            #main-window:not([customizing]) #addonbar_v:not([collapsed="true"]) { \
              min-width: '+addonbar_v_width+'; \
              width: '+addonbar_v_width+'; \
              max-width: '+addonbar_v_width+'; \
            } \
            #main-window[chromehidden="menubar toolbar location directories status extrachrome "] #toolbox_abv:not([collapsed="true"]), \
            #main-window[chromehidden="menubar toolbar location directories status extrachrome "] #addonbar_v:not([collapsed="true"]), \
            #main-window[sizemode="fullscreen"] #toolbox_abv:not([collapsed="true"]), \
            #main-window[sizemode="fullscreen"] #addonbar_v:not([collapsed="true"]) { \
              min-width: 0px; \
              width: 0px; \
              max-width: 0px; \
            } \
            #main-window[customizing] #addonbar_v { \
              outline: 1px dashed !important; \
              outline-offset: -2px !important; \
            } \
            #addonbar_v:-moz-lwtheme { \
              background: var(--lwt-header-image) !important; \
              background-position: 100vw 50vh !important; \
            } \
            #addonbar_v toolbarbutton, \
            #addonbar_v toolbar .toolbarbutton-1 { \
              padding: 0 !important; \
            } \
            '+end_border+' \
          ';
        }
        
        if(addonbar_v_togglebutton) {
          tooglebutton_addonbar_v_style ='\
             #tooglebutton_addonbar_v:hover > .toolbarbutton-icon {\
             background-color: var(--toolbarbutton-active-background)!important; }\
             #tooglebutton_addonbar_v> .toolbarbutton-icon {\
              background-color: transparent !important;}\
            #tooglebutton_addonbar_v .toolbarbutton-icon { \
              list-style-image: url("chrome://browser/skin/sidebars.svg"); \
              fill: white; \
            }\
            /*#tooglebutton_addonbar_v .toolbarbutton-icon { \
              list-style-image: url("chrome://browser/skin/forward.svg"); \
              fill: red; \
            } \
            #tooglebutton_addonbar_v[checked] .toolbarbutton-icon { \
              fill: green;  \
              background:none !important;\
            } \
            #tooglebutton_addonbar_v { \
              background: url("chrome://browser/skin/back.svg") no-repeat; \
              background-size: 35% !important; \
              background-position: 10% 70% !important; \
            } \
            #tooglebutton_addonbar_v[checked] { \
              transform: rotate(180deg) !important;  \
              background: url("chrome://browser/skin/back.svg") no-repeat; \
              background-position: 10% 30% !important; \
            }*/ \
          ';
        }
        
        var compact_buttons_code = "";
        
        if(compact_buttons)
          compact_buttons_code = "\
            #addonbar_v toolbarbutton .toolbarbutton-icon { \
              padding: 0 !important; \
              width: 16px !important; \
              height: 16px !important; \
            } \
            #addonbar_v .toolbarbutton-badge-stack { \
              padding: 0 !important; \
              margin: 0 !important; \
              width: 16px !important; \
              min-width: 16px !important; \
              height: 16px !important; \
              min-height: 16px !important; \
            } \
            #addonbar_v toolbarbutton .toolbarbutton-badge { \
              margin-top: 0px !important; \
              font-size: 8px !important; \
            } \
          ";
          
        var uri = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent('\
          '+addonbar_v_style+' \
          '+tooglebutton_addonbar_v_style+' \
          '+compact_buttons_code+' \
        '), null, null);
          
        var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService);
        sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
        
      }
    
    }
    
    /* initialization delay workaround */
    document.addEventListener("DOMContentLoaded", AddonbarVertical.init(), false);
    /* Use the below code instead of the one above this line, if issues occur */
    /*
    setTimeout(function(){
      AddonbarVertical.init();
    },2000);
    */
    Alles anzeigen
  • Vertikale Zusatzleiste wird nicht angezeigt.

    • omar1979
    • 17. November 2022 um 19:19
    Zitat von 2002Andreas

    Oder dieses angepasste Skript mal testen:

    Besten Dank funktioniert.

    Morgen versuch ich daraus noch eine 2.te Leiste für Rechts zu machen. :)

  • Vertikale Zusatzleiste wird nicht angezeigt.

    • omar1979
    • 17. November 2022 um 18:50

    Weiss den Jemand warum das so ist? Sieht etwas komisch aus. :)

  • Vertikale Zusatzleiste wird nicht angezeigt.

    • omar1979
    • 17. November 2022 um 18:47
    Zitat von 2002Andreas

    Ja, sieht hier auch so aus:

    :thumbup: TipTop. Danke vom ganzen Herzen.

  • Vertikale Zusatzleiste wird nicht angezeigt.

    • omar1979
    • 17. November 2022 um 18:39

    Ich glaub ich hab mich wieder falsch ausgedrückt. Sorry :)


    Zitat von 2002Andreas

    Das Icon bleibt in der Leiste, bis du es selber wieder entfernst.

    Das ist doch extra ein verschiebbarer Button

    Das weiss ich. Ich drücke mich glaub ich falsch. Ich will wissen ob es bei euch auch immer so eingeblendet bleibt, als ob man mit dem maus drauf wäre also hovermässig. :)

Unterstütze uns!

Jährlich (2025)

101,9 %

101,9% (662,48 von 650 EUR)

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