Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: KeySnail isn't 'Restartless'. Pentadactyl is 'Restartless'. How come KeySnail is not? #179

Open
EvaparotangCote opened this issue Oct 2, 2015 · 3 comments

Comments

@EvaparotangCote
Copy link

Update As per my second comment, it seems that the type of extension (there's 3 types) that Pentadactyl is (type 2), has the same 'Power' and 'Ease of use' potential as the type of extension (type 3) that KeySnail is. Main difference between the two types is whether they're 'Restartless' (type 1 and 2 is, type 3 is not). All this (the update part of this comment) of course only stands if I have managed to categorize the two add-ons in their actual build technique type category.
/Update

I'm curious.
Pentadactyl is 'Restartless'.
(Pentadactyl nightlies here: 01, 02, 03.)
I was wondering how come KeySnail is not 'Restartless'? (I tried saving + installing from here: mooz wiki and Fx asked to restart.)
I saw mentioning in #168 about 'eval' being 'key' to KeySnail: 01, 02. Not sure if Pentadactyl uses 'eval'. Google glance suggests it might.

So why is KeySnail not 'Restartless' when Pentadactyl is? KeySnail uses 'eval' while Pentadactyl maybe doesn't (although as glancified it might actually - I don't know)? KeySnail is more advanced than Pentadactyl? KeySnail can do more stuff than Pentadactyl? *
I've only been quite familiarized with Pentadactyl (and similar browsers like dwb, uzbl, etc. + a little bit Conkeror at one point), not Vimperator or KeySnail (came close to fiddling with KeySnail at one point though), and it was a while ago, so I'm not currently aware of the potential advantages of KeySnail over Pentadactyl.

What I do remember was that Pentadactyl apparently was a successor to Vimperator and KeySnail seems to be based (at least partly) on Vimperator, so maybe by taking hints from Pentadactyl, KeySnail can also become 'Restartless'?

Also from my wondering, what is your thought on the future regarding KeySnail and WebExtensions? WebExtensions would also be 'Restartless' I suppose?
So generally what are your thoughts on 'Restartless'? and would you be able to make KeySnail 'Restartless' fx by taking hints from Pentadactyl?

* = Apart from the Vim (Pentadactyl default, though see this) vs Emacs (KeySnail default) thing. Not sure if that can be listed as an advantage/difference that does it can't be 'Restartless'. That has nothing to do with the 'engine'? Vimperator is also default to Vim like Pentadactyl, but you modded it to KeySnail/Emacs (default), so maybe you can do similar with Pentadactyl and incorporate that into a 'Restartless' KeySnail?

@ghost
Copy link

ghost commented Oct 2, 2015

They are built around different SDK/toolikts apparently. Iirc Pentadactyl comes without any UI (or a very minimal one) so it is easier to port to new toolkits. KeySnail has some GUI elements which would require some work to port.

Meanwhile both SDKs/toolkits seem obsolete...

@EvaparotangCote
Copy link
Author

They are built around different SDK/toolikts apparently.

Resources: (01, 02). Quote:

There are three different techniques you can use to build extensions: (my comment: 'automatically bootstrapped') Add-on SDK-based (my comment: 'Restartless') extensions, manually bootstrapped restartless extensions, and legacy (my comment: not 'Restartless') extensions.

Also look at: Comparing Extension Techniques/Toolchains. Quote about the second type of extension ('manual'):

Apart from that, JavaScript code running in the extension has a similar environment to code running in a traditional overlay extension: it has automatic chrome privileges, giving it access to browser objects like tabbrowser and XPCOM.

The feature comparison table seems to say that the second ('manual') and third ('legacy') type of extension has the same 'Power' and 'Ease of use', main difference being 'Restartless' or not.
Given that, I would guess that Pentadactyl uses the second method ('manual')? or is it the first method it uses?
KeySnail is a 'legacy technique built add-on' and supposedly uses a lot of XUL. Pentadactyl XUL, maybe not so much - though wait, it doesn't matter anyway because the "add-on method comparison run-through" above just told us that Pentadactyl has access to and could use as much XUL as KeySnail if it wanted to (Provided Pentadactyl is a type 2 and KeySnail is a type 3). When I tried to build/compile Stylish (mentioned in my wondering) (unsuccessful - even though I downloaded the following - I couldn't figure it out) I noticed a mention of 'xulrunner-sdk'. Resources: 01, 02. Quote:

Gecko SDK, also known as the XULRunner SDK (...).

Is that the one KeySnail is using as well?

KeySnail has some GUI elements which would require some work to port.

How important are those GUI elements really? Why not do them like Pentadactyl/Pentadactyl strategy? Pentadactyl also has interface (overview included) to see all your custom key combos and what they do and with descriptions. I do understand that a point-and-click GUI is somewhat more accessible (like what KeySnail has now). Anyway (= scrap those previous sentences questioning GUI importance/usefulness) apart from me not being sure that such a interface is needed after having tried Pentadactyl (though actually fx dwb browser does have one as well), I'm not sure such a interface couldn't be made using Add-on SDK/'Restartless'. Look at the GUI's of fx Findbar Tweak and Hide Caption Titlebar Plus - they're pretty fancy - though they doesn't have 'Paste code below' textfields like KeySnail - but that's probably possible as well.

Meanwhile both SDKs/toolkits seem obsolete...

Hmm, Mozilla quote:

We have decided on an approximate timeline for the deprecation of XPCOM- and XUL-based add-ons. (...) A preview release of WebExtensions is available in Firefox 42. (...) chance that the Electrolysis release schedule will be delayed (my comment: at least the initial schedule seems to have been delayed. E10s too unstable/crashing (I've turned it off myself even though I'd like not to)) (...) November 3rd (...) E10s enabled by default on Beta and we will begin blocklisting Electrolysis-incompatible add-ons that cause major performance and/or stability problems. (...) Half a year after E10s in regular Fx release = start Q3 2016 = deprecation of CPOWs and compatibility shims will begin and any add-ons that depend on them will stop working.
Alternative summary: We have decided to deprecate add-ons that depend on XUL, XPCOM, and XBL. We don’t have a specific timeline for deprecation, but most likely it will take place within 12 to 18 months from now.
Mozilla's Dan Callahan says "~18 month timeline."

Yeah well seems like there's 6+ months before becoming obsolete.

Iirc Pentadactyl comes without any UI (or a very minimal one) so it is easier to port to new toolkits. KeySnail has some GUI elements which would require some work to port.

You're probably right that KeySnail is a little bit more GUI'ish. But not much. I don't think Pentadactyl has its own interactive chrome:// pages like KeySnail seems to have. Also Pentadactyl seems to have introduced its own 'statuspanel tooltip' (read on, more about that later) and got rid of the original Firefox one - though there may be a way to get the original Firefox one back (maybe even while also being able to use the Pentadactyl one at the same time), but I haven't asked around about that yet. So KeySnail does seem to keep more of Firefox's original GUI elements (but couldn't Pentadactyl/adapted-to-KeySnail-Pentadactyl(/"KeySnactyl" 😝) just choose to keep them instead of getting rid of them - they're built in Fx original elements - not something that needs adding by an add-on?). Other than that, isn't it fair to say that the two UI's is pretty much similar/the same?

Pentadactyl screenshots: 01, 02, 03, 04, 05, 06, 07, 08, 09.
Pentadactyl GUI quote:

Extensions: Any extension buttons that would normally be installed to the Firefox status bar are appended to the end of the status line.

So it's not like Pentadactyl isn't able to show icons and buttons of add-ons or favicons. You can also fx choose to keep having the menu-bar, navigation-bar, tab-bar or whatever, I recall (though maybe not 'statuspanel tooltip' (read on, more about that later)).
Unlike some of those dwb, uzbl types you can also still have a vertical tab-bar with favicons using fx Tree Style Tab. Though I do remember now, with Pentadactyl there was one thing I never got around to and which also had me looking at KeySnail; I wanted to be able to keep (or at least in my "vertical minimal mode" toggle on/off) the original Firefox statuspanel tooltip in the bottom corner when hovering a link (because it doesn't take up the full horizontal width of the screen, only the length of the link. Also it jumps from left to right(/very bottom to just above bottom - I think) depending on where your cursor is (= a positive thing)), but never got around to asking about it, but also had a hunch I could maybe get that setup/layout with KeySnail (as it seems to keep more of Firefox's original GUI elements). As I recall Pentadactyl by default shows the hovered link in a second panel on top of the main status-line panel. Al the lines/panels span the whole horizontal width of the screen. This can be set so they're combined, so that when hovering a link, the url of the link that is hovered is shown in the main status-line/panel, instead of current url of the tab/page. It can also be set so there's no panels/lines (= no vertical space-taking elements) until you hover a link, in which case a panel (full width) is shown with the url of the hovered link, similar to Fx's default 'statuspanel tooltip' (except the one of Pentadactyl takes up full horizontal width of screen and not just the length of the link). All these various combinations can also be set up so that you toggle between combination settings with keyboard shortcuts (fx normal mode (with main panel + extra panel if a link is hovered) vs "vertical minimal/reading mode" (no panels, but when link is hovered a panel with url of hovered link is shown until link is not hovered anymore)).
More pentadactyl resources: 01 (plus the post after that), 02.

KeySnail screenshots: from mooz wiki: 01, 02
01 looks kinda like dorando's keyconfig.

The following screenshots of KeySnail looks pretty much like Pentadactyl/like something Pentadactyl can also achieve (again maybe minus the 'statuspanel tooltip' - which I'm not sure on though):
http://d.hatena.ne.jp/mooz/20100102/p1
http://blog.binchen.org/posts/use-firefox-in-emacs-way-3.html

@ghost
Copy link

ghost commented Oct 3, 2015

The comparison page you linked to lists 4(*) deprecated ways to write extensions and whatever will come next apparently did not fully arrive yet.

Not a good time to switch toolkits I would say.

(*) the Add-on SDK comes in two flavors

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant