atlas-engineer / nyxt

Nyxt - the hacker's browser.
https://nyxt-browser.com/
9.8k stars 409 forks source link

Cleanly separate optional components and report them with `system-information` | Remove some modes #1633

Closed Ambrevar closed 8 months ago

Ambrevar commented 3 years ago

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 in system-information?

jmercouris commented 3 years ago

This is a good idea!

aadcg commented 1 year ago

@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.

Ambrevar commented 1 year ago

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.

aartaka commented 1 year ago

Things that I'd like to extract from Nyxt core to make it less of a redundant kitchen sink:

And maybe diff-mode, watch-mode, preview-mode, cruise-control-mode sue to them being derivative modes.

aadcg commented 1 year ago

From those you mention I will argue about those that should NOT be extracted.

Ambrevar commented 1 year ago

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.

aadcg commented 1 year ago

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.

aadcg commented 1 year ago

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!

aadcg commented 1 year ago

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!

aartaka commented 1 year ago

Yes.

aadcg commented 1 year ago

We can vote on what to offload post 3.0 then :)

Ambrevar commented 1 year ago

Hmmm... Don't know, still feel like os-package-mode and lisp-system should be removed.

aadcg commented 1 year ago

@ambrevar, with respect to those 2, I think there's consensus!

Is anyone violently against it? CC @jmercouris @aartaka

jmercouris commented 1 year ago

fine with me!

aartaka commented 1 year ago

Off with their heads!

aartaka commented 1 year ago

So I still think that some of the modes can be safely removed, on these conditions:

aadcg commented 1 year ago

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.

Ambrevar commented 1 year ago

Agreed.