Calling all Vivaldi Modders (1 minute task)
Vivaldi currently has a version dependent folder structure for its installation files. Changing the folder named after the version of the Vivaldi installation would make Vivaldi scripting and automation much easier and encourage more people to make innovative contributions to the Vivaldi community.
This would mean a better Vivaldi experience for everyone!
Please up vote my feature suggestion for 1.12 to make this change in future Vivaldi versions. https://forum.vivaldi.net/post/157919
That is all. Thanks!
I've upvoted your post, although I don't really know any applications which would need this, other than batch scripting to install the modifications automatically. And even there you can work around it, as @Isildur has shown.
What is really needed to make this more friendly towards beginners, would be an official, Vivaldi supported, way for our custom modifications to survive updates. I could also imagine an extension system similar to the current chrome extensions, where you just install the functional code someone else has written, and you could easily enable/disable it from a dedicated internal site. VivaldiHooks already does this to some extent, but we need it official (coded by Vivaldi devs), supported, and completely modular (no automatic installs), with a "store" featuring modifications. But I doubt this will ever happen.
I take the version directly from vivaldi.exe FileVersion, and use a python script to restore custom css/js after updates, and I did in a similar way for VivaldiHooks.
#!/usr/bin/python # coding: utf-8 # (C)2017 iAN CooG - Restore custom.css after updating Vivaldi import os, sys, shutil import win32api #----------------------------------------------------------------------------- def getexefilever(exename): try: info = win32api.GetFileVersionInfo(exename, "\\") ms = info['FileVersionMS'] ls = info['FileVersionLS'] version = "%d.%d.%d.%d" % (win32api.HIWORD(ms) ,win32api.LOWORD(ms) ,win32api.HIWORD(ls) ,win32api.LOWORD(ls) ) except: version=None return version #----------------------------------------------------------------------------- def main(argv): vivaldiexe="../Application/vivaldi.exe" vivaldires="../Application/%s/resources/vivaldi/" afiles=["browser.html" ,"custom.js" ,"style/custom.css" ] vers=getexefilever(vivaldiexe) if vers: destpath=vivaldires % vers for fl in afiles: dst="%s%s" % (destpath,fl) print dst if os.path.isfile(dst): os.unlink(dst) shutil.copy(fl,dst) return #----------------------------------------------------------------------------- if __name__ == "__main__": main(sys.argv)
Of course linux and mac users should find a different method for obtaining it, but it can surely be done.
@ian-coog Isildur posted a working method for osx users. It's really great. And I thought the pinned thread about batch scripting for the windows version works already? Reading through the thread I see that the latest user to post had trouble making it work though.
Well, the least we can do as community is set up one pinned thread for these batch scripts, featuring a working Windows, OSX and Linux version with detailed explanations. I'm sure @Christoph142 is willing to make such a thread and replace it with the current one. We just need to find someone who can write a working version for Linux first. Anyone here who can do this?
I'll send a message to Christop124 in the meantime....
I agree with you that there should be an official means to preserve our mods across upgrades, but if we get all the Vivaldi modders to upvote this request it will, at the very least, bring more attention to the fact that we want an official method to perform this task.
Also, having this folder structure remain consistent should make it easier for the Vivaldi team to implement such a feature in the future.
Finally, having this folder structure consistent will open the doors to a lot more automation and scripting possibilities that could be implemented by a novice modder or an expert modder alike:
Consider the following possibilities:
- Creating Vivaldi modding profiles (Script that asks which mod settings to apply on Vivaldi startup)
- Integration into other products (with Vivaldi team's permission of course)
- Easy scripted transfer of specific Vivaldi component files from one system to another
And many more!
In short, this change would:
1. Open the door to a lot more scripted and automation possibilities for everyone
2. Encourage more innovation by the Vivaldi community
3. Inspire Vivaldi developmental team through increased community involvement
4. Bring requested features to the Vivaldi browser at a faster pace
I use a python script that looks at all the files that are numbered a certain way, and finds the highest one. Its not an amazing solution, but it works for me.
Either way, what we're doing is hacking vivaldi's code which isn't in any way a neat solution. Good file structure or not.
I made a suggestion here: https://forum.vivaldi.net/post/153470 which I think would be more beneficial, providing an official way to store custom css upgrades, and the sugestion by @luetage above about something for the JS side would also be welcome.
That said, having a file structure that changes in the way Vivaldi's does is quite weird and not having to deal with it would be nice.
Would you please post a link to your exact post for feature requests? I clicked on your link, but it didn't take me there. To get the exact link, I clicked on the twitter button and got the link that went directly to my post regardless of how they are sorted.
@sethjbr As said, if someone is skilled they can circumvent the versioning. You shouldn't forget that the application is replaced on update, what the folder is called doesn't really matter.
For the last feature request thread I made a post about modifications persisting updates. But feature request threads don't really influence the development of Vivaldi. They aren't meaningless, but it's likely they are to a greater extent a means to prevent forum flooding and making the community feel like they could change something. Sometimes a request and an update to Vivaldi will be alike/identical, but I'd argue that's a mere coincidence in most cases.
@sethjbr I updated my post. I didn't realise that there were two ways the vivaldi forum shared URLs. I really wish they would always use that short one, the long ones are quite annoying to deal with.
@ian-coog Haha, here take my upvote. You are the first one in this forum to use a copyright on their code
@luetage I just tag all my sources in that way
Yes, that is exactly my point. "if someone is skilled they can circumvent the versioning". Making this change would encourage both skilled and unskilled alike contribute meaningful mods to the community.
I also think that the Vivaldi team considers the feature requests more than you think. There are a lot of factors that they take into consideration, but if it is something fairly easy to implement, has a lot of requestors, and makes sense for the future development of chromium engine and Vivaldi, I think these requests can hold a lot of weight.
My request is simple, wouldn't take a lot of time to implement and I think makes sense for future Vivaldi development, but that will be ultimately up to the Vivaldi development team to decide.
And I thought the pinned thread about batch scripting for the windows version works already? Reading through the thread I see that the latest user to post had trouble making it work though.
I only wanted to make one that went to the correct directory of the currently installed version without having to try them all. This was a problem in older installers in any case, now seems the older directories get wiped correctly after install.