[*TEST*] Vivaldi scrollbar mod [Unpacked extension]

IMPORTANT:
* Follow any instruction to avoid vivaldi hangs or color mess in webpages or other extensions.
* Remove hooks and any change in browser.html if Vivaldi is misbehaving.

PREREQUISITES
* Knowing how to tweak browser.html
* Hook chromecss.js (thanks Sporif for that)
* Hook httpcss.js (which is almost the same, but hook on webpages)
* Place an exclamation mark (!) in body section of the browser.html, so <body> should become <!body> to avoiding hooking unwanted resources from there
* Enable required flag (chrome://flags/#extensions-on-chrome-urls)

Sample of browser.html opened with code editor (I use notepad++)
You should place hooks after bundle.js (look red arrows) without any blank line.
!body [red line] is to prevent hooking background values everywhere (which is really bad).
Then, you have to:

  • Place the vscroll folder in a path like vivaldi\unpack\vscroll;
  • Go to vivaldi://extensions;
    Enable developer mod and point to folder;

You should now see it, restart the browser, and it should work now.

 

LIMITATIONS
* If you plan to use httpcss.js you’ll lose vivaldi splash screen as you have to disable the whole body in browser.html to make this work correctly.
If you know how I can make the script work without disabling body section please let me know.
* Webpanels scrollbars become transparent (so hook still don’t work there).
* Don’t skip !body step (will cause neverding close to vivaldi).


What is this?
An extension to change the scrollbars on any page, internal or not.

An extension..for scrollbars?
Scrollbars are not part of the browser (Vivaldi) but of the webpage, so they need an extension.

So.. like userscripts extensions (eg. stylus)?
Yes, but it uses less resources as this extension only load the code (custom.css) to change the scrollbars everywhere following vivaldi theme.

So.. it works also on internal pages?
Yes, by default. Activate the need flag (look above).

Download: [Grab it]

I hope will see an easier way to expose v-colors 🙂
This is just a quite hacky workaround.

 

OPTIONAL STEPS or “Variants you could make”
Follow these only if you have confidence in editing manifest.json files

If you plan to use this only for chrome:// or vivaldi:// pages, open manifest.json and change this line
"matches": [ "chrome://*/*", "http://*/*", "https://*/*" ],
to this
"matches": [ "chrome://*/*" ],
Then hook only chromecss.js

If you’re not going to do enable that flag, open manifest.json and replace this
"matches": [ "chrome://*/*", "http://*/*", "https://*/*" ],
 with this
"matches": [ "http://*/*", "https://*/*" ],
then load the extension.
Disable any userscript for scrollbars if any (as this match do the same thing).
Then hook only httpcss.js (don’t forget about !body)

Lascia un commento