Closed Ambrevar closed 8 months ago
This is a good idea!
@Ambrevar os-package-manager.lisp
is, in my humble opinion, beyond the scope of Nyxt. I believe it's a good extension though.
Furthermore, users may wish to compile Nyxt without certain modes (for whatever reason).
Yes, it's technically possible and you might argue that that's why it doesn't hurt to keep it in our sources.
Regardless, I don't think any of this matters much for 3.0.
Yup, OSPM could be extracted out for 3.0.
Plus it's a good idea to report the list of Nyxt packages in system-information
. This is a very easy fix that can land in 3.0.
Things that I'd like to extract from Nyxt core to make it less of a redundant kitchen sink:
no-procrastinate-mode
(optional thing, based on blocker-mode
and some heuristics, might as well be an extension),tts-mode
(terribly incomplete),bookmark-frequent-visits-mode
(a smart, yet a rare use-case, which feels like rather a browser feature—think auto-rules—or like an extension),expedition-mode
(feels more like an extension to me, but I might be wrong),macro-edit-mode
(due to incompleteness, #2127),record-input-fields
(unles we make it much smarter and intuitive),spell-check
(because WebKit has it already, and it works just fine).And maybe diff-mode
, watch-mode
, preview-mode
, cruise-control-mode
sue to them being derivative modes.
From those you mention I will argue about those that should NOT be extracted.
expedition-mode
is simple and dumb enough to build stuff on top of it. macro-edit-mode
: if it's basic and works, please keep it.spell-check
: people who use aspell
or hunspell
have these programs configured to their liking so using the webkit alternative is not a choice, keep it.watch-mode
, cruise-control-mode
and preview-mode
: they're derivatives but the functionality they provide is basic enough in my opinion. I can imagine lots of extensions depending on those. And if we can avoid extensions depending on extensions (as opposed to extensions depending on core), we should do that.diff-mode
is not a derivative of anything so I don't understand the rationale.I'm leaning on Artyom's side.
Suggestion: release 3.0 without these, then re-add them progressively to the core as we mature them. Can happy within the 3.* lifecycle.
If we go down that road, then it's minus one big thing we need to fix - diff-mode
. The issue is not the mode itself by the way, since it's trivial and working. The issue is massaging it with Nyxt's core internals.
I'm surprised you two are so eager to offload modes from our ship... I remember a time when I was singing that song and you were set on letting the boat roam heavy and slow.
Regardless, I'm absolutely with you!
I don't think this is extremely important to be done for 3.0. The change the trivial, but agreeing on what we should offload might not be!
Yes.
We can vote on what to offload post 3.0 then :)
Hmmm... Don't know, still feel like os-package-mode and lisp-system should be removed.
@ambrevar, with respect to those 2, I think there's consensus!
Is anyone violently against it? CC @jmercouris @aartaka
fine with me!
Off with their heads!
So I still think that some of the modes can be safely removed, on these conditions:
watch-mode
: if we mention that it's perfectly reproducible with C-space repeat-every 300 return reload-current-buffer return
.no-procrastinate-mode
: if we add commands appending/deleting hosts to blocker-mode
—we should be covered.tts-mode
: unconditionally.bookmark-frequent-visits
: maybe merge it into bookmark-mode
, reusing most of its code and making it prompting instead of automatic, so that we don't clutter the bookmarks.watch-mode: if we mention that it's perfectly reproducible with C-space repeat-every 300 return reload-current-buffer return.
I'd suggest having a watch command (in repeat
mode) that curries repeat-every
with reload-current-buffer
and prompts for a time internal.
With respect to the others, nothing to add from my side.
Agreed.
Currently OSPM only works on Guix (os-package-manager-mode.lisp commands do nothing on systems without Guix) and
lisp-system.lisp
is not available when Nyxt is compiled without Quicklisp.Furthermore, users may wish to compile Nyxt without certain modes (for whatever reason).
So what about moving
lisp-system
to a mode, then as part of #1327 report which modes are compiled-in insystem-information
?