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

Write the GUI in CL #3346

Closed
3 tasks
daninus14 opened this issue Feb 22, 2024 · 5 comments
Closed
3 tasks

Write the GUI in CL #3346

daninus14 opened this issue Feb 22, 2024 · 5 comments
Labels
ui/ux Nyxt User Interface: themes, appearance and usability.

Comments

@daninus14
Copy link

DISCLAIMER: I am not associated with McCLIM in any way, nor am I writing any GUIs in CL. I just think this would be for the best both of Nyxt, lem, and the CL ecosystem.

Purpose of request:

  • This will avoid tons of issues dealing with FFIs
  • Performance should be much better if it's native CL than running in electron
  • This will also contribute tremendously to the CL ecosystem
  • I read that there are security vulnerabilities associated with running a browser on electron since it could give access to foreign javascript executing in the computer and accessing local resources

Describe your proposed change:

  • Collaborate with the McCLIM https://mcclim.common-lisp.dev/involve development
  • Develop a way to provide themes for the widgets to make it easy to change the look of an application by simply selecting another theme
  • I am suggesting this as well to the lem developers

Why do you believe this to be an improvement?

While McCLIM is not perfect and not finished, in the end, it will probably be much easier to continue development in any project based on it than having to deal with FFIs. Even if it's not electron because of the security vulnerabilities and slowness and other issues, and you decide to go with another toolkit, there will be technical costs in dealing with FFIs.

Whatever other issues exist with McCLIM, by Nyxt and lem developers contributing, the improvement will probably be tremendous for the CL community.

Additional context/User story:

I am not associated with McCLIM in any way, nor am I writing any GUIs in CL. I just think this would be for the best both of Nyxt, lem, and the CL ecosystem.

Contact McCLIM #clim @ libera.chat jackdaniel is currently in charge of the project and it is actively maintained.

I am sure there are tons of people that know more about this than I do. I know there will be a lot of people reading this who will think "I've used whatever CL GUI libraries and they #&!%", but that's the point. They may not be great, but they are advanced enough that with a serious contribution from active lispers involved in GUI development, they will not longer be bad. Furthermore, the McCLIM project is not only actively being developed, but it's open to contributions, so this would be a collaboration project rather than Nyxt simply being a client of some third party library. This will give you say and power in how to improve the library so that it suits your needs and is convenient to use.

Screenshots/Mock ups:


Pre-Build Checklist:

  • Discussion has occurred.
  • One or more developers have signed off on this change.
  • One or more user researchers have signed off on this change.
@daninus14 daninus14 added the ui/ux Nyxt User Interface: themes, appearance and usability. label Feb 22, 2024
@daninus14
Copy link
Author

Link to the same proposal for lem: lem-project/lem#1310

@daninus14
Copy link
Author

Just a clarification

The Goal of this proposal is to write the GUI using McCLIM.

The collaboration with McCLIM would probably be in terms of contributing bug fixes, posting issues, and making requests as you develop your application.

That in itself will probably benefit McCLIM greatly, and maybe if there are features missing that you discover you need as you are developing, you can probably also code them and push them as PR. This seems much easier than writing the FFIs for electron and dealing with the FFIs to begin with.

@aadcg
Copy link
Member

aadcg commented Feb 22, 2024

Nyxt's goal is to be a platform on top of any web renderer. Since McCLIM isn't a web renderer, I don't see the relevance of this suggestion.

Would it be nice to have a web renderer in CL? Sure, see https://github.com/atlas-engineer/closure. Estimate the kind of resources needed to achieve such a goal, and the conclusion follows.

@aadcg aadcg closed this as not planned Won't fix, can't repro, duplicate, stale Feb 22, 2024
@aadcg
Copy link
Member

aadcg commented Feb 22, 2024

Regarding lem, note it than runs on top of ncurses (TUI) and sdl-2 (GUI). I think it would be interesting to run lem on top of a web renderer and, in particular, in Nyxt. See lem-project/lem#543 and lem-project/lem#415.

@daninus14
Copy link
Author

Ok, thanks for replying and giving this some thoughts!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ui/ux Nyxt User Interface: themes, appearance and usability.
Development

No branches or pull requests

2 participants