[HN Gopher] Neomacs: Structural Lisp IDE/browser/computing envir...
___________________________________________________________________
Neomacs: Structural Lisp IDE/browser/computing environment
Author : kscarlet
Score : 114 points
Date : 2024-11-23 11:05 UTC (7 days ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| mdaniel wrote:
| The license-less submissions have really ramped up recently :-(
|
| Also https://github.com/neomacs-
| project/neomacs#:~:text=Neomacs%2...
| kscarlet wrote:
| Thanks for noting this! I added a copy of the GPL license.
| az09mugen wrote:
| While I'm not an Emacs user I like the philosophy of it. And I
| like text editors.
|
| That said, I use orgmode on android (orgzly) and used it on
| sublime text (orgextended), that's a nice feature. I know one guy
| who uses emacs and when I heard of lem (https://github.com/lem-
| project/lem) I told him. (Lem is also in CL)
|
| He was quite enthusiastic of it, but 2 or 3 things were missing
| at the time, the first of all you guessed it, it's org-mode,
| second was magit but he could use lem without it and finally it
| was a plugin manager (but we agreed it is a lot of work).
|
| I don't know what are your plans but I hope I could give you some
| ideas.
| kscarlet wrote:
| Thanks for your input! I don't org-mode myself but I know it's
| a killer feature for many. In fact, I think if someone commit
| to it, they can likely build an even more powerful version of
| org-mode with a lot less and cleaner code, because Neomacs use
| arbitrary HTML DOM as its editing representation, and no need
| for regex/text-property hack. See https://github.com/neomacs-
| project/neomacs/issues/53 for an example.
|
| That being said, Neomacs definitely need a user base and eco-
| system for that to happen, but I hope so!
|
| As for magit, I wish one day Neomacs get one as well. For now
| one can use Neomacs's built in terminal for git.
| vindarel wrote:
| > magit
|
| Since last year we have what's a start of Magit in Lem:
| https://lem-project.github.io/usage/usage/#version-control-w...
|
| It has a status buffer, it can push/pull/commit, stage files
| and parts of hunks (no arbitrary region yet), list commits
| (with a handy pagination), manage stashes, do an interactive
| rebase (no reword yet). It's fast for big codebases (linux
| kernel) as it doesn't call the git binary a lot. We watch the
| performance and we have plans to read git blobs natively. I
| contributed it (https://lisp-journey.gitlab.io/blog/oh-no-i-
| started-a-magit-...). Working on it is a pleasure as the Lem
| codebase is very clean and introspectable (and specially so
| through Lem).
| mark_l_watson wrote:
| I like the name 'legit' for your project and I look forward
| to trying it.
|
| To be honest, I live in regular Emacs for all productivity
| things, but I have also spent a fair amount of time using Lem
| when coding in Common Lisp. Such a cool project!
| Y_Y wrote:
| This is going to be a hard sell:
|
| > Neomacs relies on Electron...
|
| Tired flamebait aside, this looks cool. I'd like to know how it's
| different from Lem and Emacs-NG.
|
| I gladly welcome "macsen" and note some other great programs in
| the tradition: Emacs (OG) Genera (OS)
| Climacs (CL) TeXmacs (DTP)
|
| Honorable mention: Plan 9, Pharo, gforth. Anything I missed?
|
| This store or using the computer is vastly more satisfying than
| rigid, compiled button-driven interfaces and makes me feel like
| my computer is much more a "bicycle for the mind" than a on-rails
| haunted house ride for the mind. I'm using Spacemacs with EXWM as
| my "desktop" in Guix these days and loving it.
| kscarlet wrote:
| > how it's different from Lem and Emacs-NG.
|
| Neomacs is not a GNU Emacs clone. It changes the fundamental
| edited model from text (with text properties) to structured
| document (i.e. trees). Things done with ASCII art hack and
| things impossible in Emacs can now be done effortlessly in
| Neomacs.
|
| > > Neomacs relies on Electron
|
| I wish not either, but it's the pragmatic option for now, to
| make things work. There's no reason someone couldn't port it
| to, say Tauri, or even build a browser engine in Lisp, given
| enough effort.
|
| > some other great programs
|
| Yes! They inspire me a lot and I learn from them!
| cmrdporcupine wrote:
| Could it not use a linked web view via dll to webkit on Linux
| (and Mac) and embedded Edge webview on Windows? Why the whole
| electron bundling?
| kscarlet wrote:
| Probably, it's just someone made a pretty good Electron
| binding for Common Lisp
| (https://github.com/cermaic/ceramic), so I used it instead
| of inventing my own wheel.
| sourcepluck wrote:
| > There's no reason someone couldn't port it to, say Tauri,
| or even build a browser engine in Lisp
|
| Have there ever been browser engines done in Lisp? Don't
| think I've seen anything like that.
|
| Nyxt springs to mind, I wonder if they're eventually planning
| to attempt one.
| lejalv wrote:
| Kudos for remembering TeXmacs, for some reason it seems to be
| seldomly know outside of math-heavy STEM circles although it is
| a Scheme-programmable structured tree editor worth checking out
| for general document authoring.
|
| TeXmacs does technical typesetting with similar or better
| quality than LaTeX (and it _does not_ use LaTeX behind the
| scenes for typesetting, unlike LyX) and keeps a live
| representation of the document as a tree that you can query and
| modify (e.g. using PEGs). It is also fully WYSIWYG (unlike,
| say, Typst).
|
| Using the graphical mode one can freely position math and
| images and text on slides with perfect typesetting. And the
| switch-and-fold environments let you build trees of visibility
| for arbitrary parts of the document (the most obvious
| application being having exercises that can be switched to show
| the solutions).
|
| What is more: in TeXmacs one can be enforce a certain degree
| (to the extent permitted by the ambiguity in mathematical
| notation) of semantics for math, so that good-looking
| expressions can be directly sent to a computer algebra system
| (CAS) for evaluation (and printed back in a way you can read).
|
| So TeXmacs can interface to CASs and in general any programming
| language.
|
| In fact, thinking about code editing, am not sure why TeXmacs
| could not, in principle, be the Scheme-based Emacs that some
| people have dreamt of (cf. the defunct Guilemacs effort,
| https://news.ycombinator.com/item?id=23304457). Maybe it will:
| a dedicated community of hackers led by Darcy is doing
| experiments in this direction in a friendly fork under the name
| "Mogan" - https://mogan.app/guide/what-is-mogan.html, although
| I have no idea what are the plans for Mogan Code.
|
| TeXmacs does not use Electron, so while it does import HTML
| reasonably, it won't render websites in their full glory. But
| there was a recent job offer for somebody to work on improving
| the rudimentary capabilities for collaborative editing, so it
| might end up offering an alternative to Overleaf.
| Y_Y wrote:
| Honestly I haven't used TeXmacs in a while. I was an avid
| user of LyX for a long time, until Overleaf enshittified its
| way into everything and became mandatory for at least the
| collaborations I was involved in.
|
| TeXmacs always appealed to me, but I couldn't manage to get
| it to tangle out source code the way I wanted and ended up
| falling back on lesser tools like Jupyter for typesetting-
| CAS-code interaction. I really should revisit it, it's
| definitely an underappreciated gem.
|
| I'm also delighted to note that Guile Emacs is scheduled to
| rise from its grave next week and I'm quite optimistic about
| its success this time round. Robin Templeton is apparently
| back working on it and they'll give a talk at Emacsconf:
| https://emacsconf.org/2024/talks/guile/
| Conscat wrote:
| > I'm also delighted to note that Guile Emacs is scheduled
| to rise from its grave next week
|
| Not to sound pessimistic, because Guile Emacs is an
| exciting project, but I'm pretty sure I've heard that
| before.
| tmtvl wrote:
| Guile Emacs already is fully usable, and has been for a
| while, but because basically nobody is using it, it
| bitrots right quick and there's nobody hyping it up;
| which results in nobody using it and it gradually withers
| away until the next push to revive it.
| fn-mote wrote:
| > until Overleaf enshittified its way into everything and
| became mandatory[...]
|
| This seems overly harsh criticism for something that could
| almost be replaced by a git repository.
|
| If everyone is using it, they're obviously getting value
| out of it.
|
| When all of the diagram-drawing libraries are locked behind
| extra subscription fees, then I'll listen to your
| enshittification talk.
| setopt wrote:
| Speaking as one of the mostly satisfied Overleaf users: I
| mainly use its Git sync feature and edit locally in
| Emacs.
|
| But many collaborators were not using version control in
| the first place, which meant that Overleaf was a huge
| step up from our previous workflow of emailing
| manuscript_v12.tex around and waiting to receive edits.
|
| Not to mention the issues we previously had trying to get
| it to compile equally on every machine, where coauthors
| use different TeX distributions with different packages
| available and different versions installed on different
| operating systems.
|
| Overall, I think Overleaf struck a pretty good trade-off
| between being usable by both techies and non-techies. My
| main pain point now is having to open the web browser to
| create or clone new projects, which I don't do that
| often, but I wish they had a command line interface or
| something for that.
| sourcepluck wrote:
| Downloading and trying TeXmacs after this comment. It was on
| the todo list, but got ripped to the top reading this. Cheers
| for describing the lay of the land!
| sourcepluck wrote:
| https://project-mage.org/ deserves a mention, but it's at the
| prototypical idea stage for now as far as I know, although the
| guy seems serious and sincere.
| a1o wrote:
| I get that the name is similar to neovim but for a second I
| thought it was the nomacs image viewer
| stevekemp wrote:
| This is a hard sell: sudo chown root
| electron/chrome-sandbox sudo chmod 4755
| electron/chrome-sandbox
|
| Installing a new setuid root binary? I guess that the sandbox
| process is small, and not really electron, but just hearing
| "electron" and "setuid" in the same sentence is enough to make me
| run away!
| kscarlet wrote:
| It's known issue for any application that uses Electron but
| don't have enough money to get Ubuntu to whitelist it (I
| believe?)
|
| I heard that this can be worked around if someone submit a
| package to the distro. I have no experience in packaging for
| distros, and help is welcomed!
| nine_k wrote:
| What happens uf you don't setuid it?
| kscarlet wrote:
| Electron won't start. Or it could start with --no-sandbox
| flag but that is even more insecure.
| nine_k wrote:
| Won't it be more reasonable to run it inside bubblewrap
| then?
| mdaniel wrote:
| > I have no experience in packaging for distros, and help is
| welcomed!
|
| Do you have an issue tracking what is currently happening and
| what you want to happen instead?
|
| I'm really perplexed by your talk about "having enough money
| for allowlisting" because I have never heard of anyone paying
| a distro any amount of money for any purpose, and that's not
| even getting into the obvious fact that Ubuntu isn't the only
| distro out there
| joshcho wrote:
| What does neomacs offer that emacs + lispy can't?
|
| https://github.com/abo-abo/lispy
| kscarlet wrote:
| They're not the same level things. Neomacs has an Emacs-y
| browser inside it, for example. It is also possible to embed
| arbitrary content in buffer (multiple modes, real tables,
| canvas, etc) while Emacs is restricted to plain text plus some
| display property hack to support image. It's possible to have a
| much more powerful org-mode in Neomacs, although we definitely
| need a user base and contributors to make that happen...
| Currently, the API and the model is there, so is the
| possibility.
| TacticalCoder wrote:
| > Neomacs relies on Electron which has known permission issues on
| some Linux distros. Try the following workaround: > sudo sysctl
| -w kernel.apparmor_restrict_unprivileged_userns=0 > sudo sysctl
| kernel.unprivileged_userns_clone=1
|
| WTF? What in the world is wrong with Electron? Why is this needed
| and why is it only needed on some distro? Is that for all
| Electron apps?
| kscarlet wrote:
| I think so unless the Electron app is rich enough to get them
| whitelisted. Or running with sandbox disabled, but that is even
| more insecure and I don't feel like to make it default.
| torwag2 wrote:
| Nowadays I'm a normal Emacs user. Was a heavy emacs and org-mode
| user some years ago, with hundred of lines of customized lisp
| code to tweak Emacs. That said, looking at the repro, I still
| didn't get exactly what Neomacs is actually doing.
|
| I would really appreciate some short Screencast, a bit more
| introduction, some examples, to get an idea what we are looking
| at. Maybe it is just me, but I feel that Neomacs is great and
| might get a user base, if potential users been able to understand
| within a few seconds what they are looking at.
|
| You know, our attention span went downhill since YouTube shorts
| and TikTok videos
| kscarlet wrote:
| Sure! Screencast sounds like a good idea. Are you able to get
| Neomacs running? If so, the prebuilt one will start up with a
| _intro_ buffer which is a good place to start (locally built
| one will need `M-x manual` to build the manual). There 's also
| an online version at https://neomacs-
| project.github.io/doc/intro.html
___________________________________________________________________
(page generated 2024-11-30 23:01 UTC)