My Opera Center proposal for Opera 10
Thursday, July 13, 2006 3:55:42 PM
This part of my wish list for Opera 10+. Only a proposal, not something real!
My Opera Center aims to replace the skins and panels parts from Appearance. Also, it replaces the Search Editor, Keyboard shortcuts manager, Toolbars, Mouse Gestures, and Menus from Preferences. Thus, simplifying the Preferences dialog.
It is also a one place for Update Manager, which is a very requested feature. Last, but not least, Customization Center is partly local GUI in Opera, and partly an online service, making use of my.opera.com.
Let me first explain what new capabilities Opera would be nice to have (but not required):
1. UserJS files with full power.
a) Add/edit/delete menu items, dialogs, toolbars, keyboard shortcuts, mouse gestures, voice commands.
b) Read/write local files and remote files (via HTTP, FTP, SCP, whatever).
c) Full access to widget storage.
d) Personal settings storage.
e) Ability to have UserJS files execute on Opera startup, without any page. Yes, these are extensions.
f) Allow running UserJS in panels, Mail, Chat, opera:about/config/cache/plugins/whatever, ftp:// and scp://.
g) Allow changing c3nform.vxml while running (this requires a way to force reparsing of the modified VXML forms from DOM).
2. Ability to add/edit/delete dialogs.ini setups (like we can change the language).
3. Ability to add/edit/delete c3nform.vxml setups (same as above).
4. Ability to add/edit/delete new toolbars (previously requested).
5. An editor for menus, like we have for shortcuts. Or... if you guys wanna make users really happy provide a menu editor as the one in KDE.
6. An improved keyboard shortcuts editor (hint: I like the editor in KDE).
7. Widgets should be given full access to local and remote files.
8. Panels should be given the same power as UserJS. Plus, they should be given access to the current page I am viewing, via DOM.
9. ability to use multiple filter.ini files at once.
Having this set of capabilities would be nice. Yes, I know these would bring serious security issues. This problem can be solved. An ideea is provided.
To better understand what I want from the My Opera Center you should know about Debian package management: apt and repositories . Yes, I know this is a radical/weird approach.
The online "My Opera Center" should allow users of my.opera publish "packages" and "meta-packages".
Packages can be of several types:
1. UserJS files:
a) "system-wide" which start with Opera.
b) for any site, or site-specific (similar to current behaviour).
c) define rights: access local files (read/write), access remote files (read/write), widgets storage, modify menus, toolbars, dialogs, etc
d) Each file should contain a unique signature in the comment which is checked by Opera, before execution. The comment also tells Opera what permissions does the script need. Signature must be checked with the my.opera.com server. Therefore, unauthorised scripts don't run wild. If a script asks for the wrong permissions, or the signature is invalid, or the my.opera.com does not "like" it, then Opera must not run it at all.
By default UserJS files should be handled as now (if, for example, the user downloads a file from an unknown location and saves it in the UserJS folder).
2. UserCSS files:
a) exchange "internal" CSS files used by Opera: about.css, info.css, chat.css, email.css, whatever.
b) per site, or general (as now).
c) again, signature needed. However, this does not need permission management.
3. Search engines in a new format, which can also tell Opera how to auto-fetch suggestions (like Google and Yahoo have in Firefox).
4. language files
8. Aural User Interfaces (c3nform.vxml)
9. keyboard shortcuts
10. mouse gestures
11. voice commands
13. panels, with all applicable permission management
14. widgets, with all applicable permission management
15. filter ini files
16. plugins. Yes, we want to download Flash automatically, and keep it updated.
All packages, of course, having versioning, dating, etc. Thus the site can provide support for future versions of Opera, and opens the possibility of implementing the Update Manager.
No normal user can post a package without any prior review.
Each package can have the following additional permission bit: "Make public". Enabling this, you allow others use the package in meta-packages. So, authors can share among themselves packages in various "meta-packages".
Meta-packages are just packages in which the author selects packages out of his own and other "public packages". When Opera downloads a meta-package, it will also download the packages "linked" in.
Meta-packages can be posted without any prior review.
Automatic updates should work per-package. So, if the author wants to change just the menus, you won't redownload the whole meta-package.
If the meta-package dependencies change, Opera should warn you about new packages being installed and old ones being removed.
Meta-packages can also contain meta-packages which are not conflicting. For example, one could make a meta-package out of his user styles, userjs files. One can choose to download only these, or download the entire meta-package which includes toolbars, menus, etc.
The "My Opera Center" in the Opera Internet Suite should allow browsing the site (in a dialog, as we browse for skins, or in a tab, as we browse for widgets) to install (meta)packages. The user should be given the option to interchange packages. I'm imagining a tree view of the meta-packages and packages, with checkboxes. It should allow me to check any of the menus, from any package, or to select all of them at once (if i check the meta-package).
Optionally, users should be given the option to login with username and password of my.opera.com account, directly in the Opera browser. After login, the user should be given the option to upload all backup all data online, with included multiple snapshots management and data restoring.
And ... if you guys wanna bring the open-source spirit into the ecuation: make a specification detailing how the package manager works. Also, provide a way in opera.ini to add/edit/delete the repositories.
Important to many users is providing the option to revert to "factory settings".
Settings for how often to check for updates, and what to check for.
All the above opens many, many possibilities. For example, one could create many setups: Firefox-clones, IE-clones, Email client-specialised setups, and lots more. It would also provide one of the features asked by many: adblocking with automatic updates.
Disclaimer: This is all "food for thought", ideas and suggestions. I'd be happy if Opera Software, or even Firefox would implement such advanced features. IMHO, Opera has many of the needed capabilities in place.