• 1 Post
  • 121 Comments
Joined 2 years ago
cake
Cake day: June 13th, 2023

help-circle
  • You should be able to simply set z-index: 1 for #nav-bar as well to not have tabs cover it. And then add margin to both tabs and the content-area to create empty space at right. Then you could also do some hackery to make the scrollbar display in that empty area and make it not respond to mouse events, that would cause the tabs to not expand when scrollbar is hovered. But of course that also means that the scrollbar cannot be clicked - basically it becomes just an indicator, which might be alright.

    So all in all you would add this to vertical_tabs.css:

    :root:not([customizing],[chromehidden~="menubar"]){
      --uc-vertical-tabs-width: 40px;
    }
    :root:not([customizing]) #tabbrowser-tabs:hover{
      width: 220px !important;
      z-index: 1;
    }
    #nav-bar{
      z-index: 1;
    }
    #main-window:not([inDOMFullscreen]) > body > #browser{
      margin-right: calc(var(--uc-vertical-tabs-width) + 8px);
    }
    :root:not([customizing]) #tabbrowser-tabs{
      margin-right: 8px;
    }
    #tabs-newtab-button,
    .tabbrowser-tab{
      pointer-events: auto;
    }
    scrollbox[orient="horizontal"]{
      scrollbar-width: thin;
      pointer-events: none;
      margin-right: -8px;
    }
    

    The empty area on right might become “wrong” colored, but you can then just add whatever background-color you want for the #main-window

    Note, you said you have tabs on right side of window so the empty area only works with that.


  • You can get tabs over web-content by simply adding z-index to tabbrowser-tabs. So adding this after vertical_tabs code should work:

    :root:not([customizing],[chromehidden~="menubar"]){
      --uc-vertical-tabs-width: 40px;
    }
    :root:not([customizing]) #tabbrowser-tabs:hover{
      width: 220px !important;
      z-index: 1;
    } 
    

    But I’m not sure how you should make scrollbar not trigger expansion.






  • I see. In that case you can achieve what you want - however, it really isn’t enough to just apply different flex-direction because all the buttons also have different styling. So you’ll end up with something like this:

    sidebar-main{
      --uc-flex-direction: column;
    }
    sidebar-main[expanded]{
      --uc-flex-direction: row;
      --uc-buttonbox-padding-inline: var(--space-medium);
      --uc-sidebar-button-outer-padding: 0;
    }
    .tools-and-extensions{
      flex-direction: var(--uc-flex-direction) !important;
      justify-content: start !important;
      padding-inline-start: var(--uc-buttonbox-padding-inline,0) !important;
    }
    .tools-and-extensions > moz-button{
      width: unset !important;
      --button-outer-padding-inline: var(--uc-sidebar-button-outer-padding,var(--space-medium)) !important;
      --button-outer-padding-block-start: var(--space-xxsmall) !important;
    }
    button > .button-background{
      width: var(--button-size-icon) !important;
    }
    


  • Sorry, but I don’t know what the issue could be. I’ve been trying all sorts of configurations but I cannot reproduce the issue you are describing anymore. I did find a problem that occurs when letterboxing is enabled and window is somewhat narrow where hovering a link then moves the web-content area - and fixed that though.

    The last part of the style that you mentioned shouldn’t even be necessary anymore because web-content is covering the statuspanel - this wasn’t the case in some older Firefox versions.




  • I doubt there’s any way for css to really distinguish between the two. But few things come to mind that I could believe might be usable as a proxy; perhaps there is a pref that is set only in wayland or only in x11 systems, or perhaps the window has some attribute set only in one of the two modes. If nothing else, you could invent a pref and use that to manually select when your rules should apply.








  • F12 opens web developer tools - the console there runs scripts in the website context - you cannot use that to access browser internals like PlacesUtils.

    You need to run your script via browser console, I can’t remember a hotkey for it, but you can find it from menu > more tools… > browser console

    Also, I’m not sure but there’s a chance that browser console is “read-only” in release firefox - meaning you might not be able to run anything from it. If that is the case, then open normal web developer tools (F12) and go to its settings, there’s some checkbox there to enable “browser chrome debugging” or something like that. After checking that (and reopening browser console) you can run your function from browser console.


  • How exactly are you trying to run your javascript? Website javascript certainly won’t be allowed to create bookmarks. If you run the function on browser side however, then it should work fine - but then I don’t understand why it’s wrapped into javascript url.

    If it’s a javascript: url because you tried to run this as bookmark itself (ie. clicking this special bookmark creates another bookmark folder and a bookmark inside it) then that’s not going to work because that’s pretty much just user provided code running in website context.