[HN Gopher] Emacs is my new window manager
___________________________________________________________________
Emacs is my new window manager
Author : Paul-Craft
Score : 123 points
Date : 2023-08-01 18:31 UTC (4 hours ago)
(HTM) web link (howardism.org)
(TXT) w3m dump (howardism.org)
| emersion wrote:
| (2015)
| krylon wrote:
| As much as I love emacs, that is too spartan for me. I would _at
| least_ run OpenBox, it is lightweight and unobtrusive. That way I
| could still run emacs in full screen mode, and escape to a web
| browser gracefully if needed. I am not that much of a minimalist.
|
| But I won't criticize other people's desktop environments, if it
| works for them, I wish them hours and hours of joy.
| matrix12 wrote:
| Until GNUs is hit with the g command.
| pjmlp wrote:
| An idea tried multiple times, that always fails short of using a
| proper Lisp Machine.
| [deleted]
| pxc wrote:
| This is the blog of Howard Abrams, who also has a great YouTube
| channel full of Emacs demos and tutorials.
|
| His video on literate programming for DevOps via Emacs' Org-mode
| was very impressive and inspiring to me. It's my favorite. :)
|
| https://youtu.be/dljNabciEGg
| [deleted]
| Y_Y wrote:
| The only thing missing from emacs taking over my life like this
| is a simple to connect to remote emacs server. I want to have my
| perfect config live on some server somewhere and then connect to
| the with my local emacs client, and then maybe tramp back if I
| need to deal with something local. Seems like it should be simple
| enough but I still haven't managed it.
| cutler wrote:
| What's wrong with Github?
| ranger207 wrote:
| Now you just need a good text editor...
| ParetoOptimal wrote:
| https://github.com/meow-edit/meow
|
| Modal editing with seamless emacs integration avoiding the need
| for evil-collection type packages.
| whalesalad wrote:
| I wish I had the enthusiasm, grit and dare I say "sisu" that lisp
| developers possess. I worked with a guy - very skilled Clojure
| developer - who was an absolute wizard in Emacs. If a car company
| sold a vehicle that was powered by emacs, he would have bought
| it. He will probably construct his own casket out of elisp to be
| buried in.
| dmvdoug wrote:
| "And death i think is no parenthesis"
|
| (e.e. cummings)
| gumby wrote:
| Emacs was not originally written in Lisp and is a great
| programmer's (and general) editor even if you never touch or
| think of Lisp. You can even write (and save and edit) keyboard
| macros knowing no programming at all.
| sdfghswe wrote:
| Didn't emacs give Stallman RSI? No thank you, I'll still with
| vim.
| mksybr wrote:
| Scary stuff!
|
| http://xahlee.info/emacs/emacs/emacs_hand_pain_celebrity.ht
| m...
| krylon wrote:
| zile is an attempt to create an equivalent to GNU Emacs using
| Lua instead of Lisp. There was an attempt to merge the GNU
| Guile engine into emacs to replace the elisp bytecode VM; Guile
| would have supported, in addition to elisp, Scheme and
| Javascript. But last I heard the project had stagnated or
| fizzled out entirely.
|
| One might argue that VS Code is using Javascript in a similar
| manner to Emacs using elisp, but ... it just doesn't feel the
| same to me. I have very little experience with VS Code, though,
| so I might be mistaken.
| whalesalad wrote:
| my problem with emacs is not lisp, lol. lisp is great.
| shadowgovt wrote:
| > Whenever a page doesn't render well (can you say JavaScript)
|
| I mean, yeah, emacs doesn't have a modern browser engine in it. I
| wouldn't recommend it for that use case and of _course_ you 'll
| have to "shell out" to a modern browser engine to handle that.
| Now, if emacs could somehow provide an X render target and let
| the browser process bind to it as the window, that would be kind
| of awesome and I could totally see kicking my window manager
| overboard and just switching to emacs. But the web just "looks
| wrong" text-only these days.
|
| Apart from that, great experiment and fun idea.
| jaccarmac wrote:
| I'm not familiar with X internals and am not sure if it's the
| same thing, but EXWM basically allows that (browsers run in
| buffers).
| lvncelot wrote:
| See also EXWM[1]
|
| [1] https://github.com/ch11ng/exwm
| zvmaz wrote:
| The developer has been missing on GitHub since 2020 [1]
|
| [1] https://github.com/ch11ng/exwm/issues/845
| dustfinger wrote:
| There have been some releases since then though [1] and
| recent commits [2]
|
| [1]: https://github.com/ch11ng/exwm/releases
|
| [2]: https://github.com/ch11ng/exwm/commits/master
| ycombinete wrote:
| I have always enjoyed Howard's posts about eMacs and orgmode.
| Great to see the two at the limits.
| jll29 wrote:
| RMS uses Emacs as its window manager, too, but without X11 (his
| ThinkPad runs in text mode).
| thewanderer1983 wrote:
| While reading this article i was hearing this guys voice.
| https://youtu.be/urcL86UpqZc
| blackpill0w wrote:
| >and since Emacs is in its graphical mode, I can use my favorite
| fonts, decorate the fringe, etc.
|
| Except when you want to use stylistic sets, is Emacs planning to
| support them in future releases or are they out of the
| discussion?
| nathants wrote:
| emacs is a good manager for terminals. i use it instead of tmux.
| matrix12 wrote:
| I tell coworkers who ask "It's Emux... tmux but graphical!"
| nathants wrote:
| i run emacs in a terminal. graphics emacs is too fancy for
| me.
|
| i've got firefox and webkit2gtk if i'm feeling fancy.
| pxc wrote:
| I decided to finally give tmux a break and experiment with
| other terminal emulators lately, after enjoying living in tmux
| for a long time. I started playing with kitty first, which I'm
| still using. But more recently I've decided to try making more
| use of vterm, and so far I like it a lot!
| noman-land wrote:
| I love tmux and have been wanting to dip my toes into emacs. Is
| there a tutorial or migration guide you could recommend?
| nathants wrote:
| plenty of emacs resources around. i would suggest multi-term
| for terminals. text file and terminal management is very
| similar.
| ParetoOptimal wrote:
| https://www.masteringemacs.org/book
|
| There are good free ones too, but this one is still best IMO.
| bitwize wrote:
| Lisp is life, Emacs is hometown.
| pjmlp wrote:
| Nah, that belongs to Genera, TI and Xerox PARC.
| ttyprintk wrote:
| Feels like an X-Windows emulator for your corporate OS with extra
| overhead.
| gumby wrote:
| On the original gnu machine (a Vax 750 that had been lying around
| unused) I made emacs my shell in /etc/passwd. The machine had BSD
| Unix on it and that was so unpleasant I preferred to go straight
| into emacs.
|
| Nowadays of course, SVr4 Unix/Linux is the _best_ you can get.
| How the mighty have fallen.
|
| The /etc/passwd entry was actually a one-page trampoline that
| exec'ed emacs (as -emacs of course) or, if invoked under anything
| other than init, /bin/sh for the subprocess of emacs case -- bash
| hadn't been written yet.
| eichin wrote:
| Around the same decade I did a similar thing with an athena
| vaxstation under X; I noticed recently I still had the same
| hacks in my emacs startup to keep M-x shell from starting
| another emacs (I didn't use the trampoline trick, just
| literally chsh /bin/athena/emacs.)
| Y_Y wrote:
| "Hey dude, how come you're using emacs as your login shell, are
| you stupid?"
|
| "Nah, it's cool, bash doesn't exist yet."
|
| "Cool."
| tetris11 wrote:
| Dont. Emacs is there to be tinkered with, and your cat will break
| it by simply looking at your keyboard.
|
| I love Emacs. I develop for it, financially support it, live it
| everyday. The last thing you want is to be stuck debugging your
| failed desktop session on Tuesday morning at the airport as your
| wife waits for you to find the tickets.
|
| If you love Lisp, give StumpWM a try. Simplicity, DWM. Simplicity
| with modularity? AwesomeWM just works.
|
| Keep your Emacs config away from your system packages. The latter
| should prop up the former, not vice versa
| sharts wrote:
| That shouldn't be a problem because in that case your wife's
| boyfriend will keep her company while you tinker with your
| configs.
| glouwbug wrote:
| We should keep reddit on reddit
| ssivark wrote:
| Is there a Wayland compatible WM analogue of Awesome?
| Elv13 wrote:
| (AwesomeWM co-maintainer here)
|
| From the point of view of tiling, Sway is an i3 clone for
| wayland.
|
| For AwesomeWM as a programming sandbox WM, it is much tougher
| to get something identical. A lot of AwesomeWM work goes into
| APIs, CI and documentation. Making a scriptable WM using
| wlroot isn't the end of the world. Making one with mature
| APIs, backward compatibility, high test coverage, an active
| userbase large enough to sustain a plugin ecosystem and
| extensive documentation is much harder.
|
| Making AwesomeWM 100% wayland compatible has been attempted a
| bunch of time, getting 80% working has been done a few time
| too, but the last 20% is like 95% of the effort or something
| and those projects keep stalling. From my side, I put the
| little free time I have for this into actually realistic
| features and maintenance work, at least until there's an
| actual reason to move away from X11. Most users at this point
| have been using it for years or even over a decade. They want
| their setup to keep working the next morning over #newshiny.
| pxc wrote:
| Read the article! This instance of Emacs runs in a VM he uses
| for accessing and editing his personal tech notes at work, to
| provide better separation from his work system. He's not
| risking much. :)
| kehrin wrote:
| > and your cat will break it by simply looking at your
| keyboard.
|
| Being off by one column of keys on your keyboard can really be
| a death sentence to your buffer (and maybe even codebase).
| ParetoOptimal wrote:
| That would be your fault for not writing prompts for
| dangerous actions in your elisp automation though.
| kehrin wrote:
| Most of the danger (for me) comes from evil-mode. Adding
| prompts wouldn't make sense there ;P
| aldanor wrote:
| ... and maybe even your hard drive
| noman-land wrote:
| This sounds like running heavy machinery with no safety
| equipment. Is it really desirable to have a system that would
| behave this way?
| donio wrote:
| The parent is just being ridiculous, Emacs of course has
| undo, auto-save and version control. And unlike in certain
| modal editors it's pretty hard to do any real damage
| without touching Control or Meta.
| kehrin wrote:
| Eh, there is plenty of safety equipment. Mainly undo-tree
| and magit.
| RcouF1uZ4gsC wrote:
| > your failed desktop session on Tuesday morning at the airport
| as your wife waits for you to find the tickets.
|
| Does Richard M Stallman look someone who cares about your wife
| getting upset for missing the plane while you fiddle with
| Emacs? That use case of Emacs enabling you to browse the web
| (accessing the airline's website which runs non-free software)
| and check-in so you can ride on an airplane(which also uses
| non-free software) is not something that in his goals for
| Emacs.
| tomcam wrote:
| Actually your wife might be happy to know that I have developed
| some nearly stable Emacs packages that interface with the Sabre
| system for airline reservations. The only drawback other than
| stability is that they require a SPARC workstation running a
| special variant of FreeBSD.
|
| /s
| UniverseHacker wrote:
| That's why I have a SparcStation LX. Fits in the carryon for
| travel much better than a pizza box. Even easier to travel
| with now that I can use an LCD and don't need to lug around
| the 'ol Trinitron.
|
| With an inverter and a car battery in my backpack I can even
| show a digital/ on screen boarding pass with a full 8 bits of
| color.
| neilv wrote:
| The Sun god, Scott McNealy, has heard our prayers, and
| answered us with the V'ger:
|
| https://ifdesign.com/en/winner-
| ranking/project/sparcstation-...
| tomcam wrote:
| No matter how good I think I am, I always know there's
| someone better on this board!
| datalus wrote:
| The username definitely checks out.
| ParetoOptimal wrote:
| > Dont. Emacs is there to be tinkered with, and your cat will
| break it by simply looking at your keyboard.
|
| Then you simply roll back to the working git commit of your
| emacs configuration or NixOS generation!
| blackpill0w wrote:
| >or NixOS generation
|
| Yes! NixOS is perfect for the author's situation. But maybe
| his setup is so simple that a little bash script could work
| just fine.
| hollerith wrote:
| I'm good enough at remembering to test my changes that I only
| need to resort to my backup of my emacs customizations 4 or 5
| times a year.
|
| (I test by starting a second emacs, so I can used the still-
| running first instance of emacs to fix the regressions.)
| Paul-Craft wrote:
| Same(-ish) here. Between git and emacs auto-save, I don't
| recall the last time my init file failed to load without
| being able to revert to a previous working version almost
| immediately.
| lvncelot wrote:
| When I got cachix set up in Github CI with my custom emacs
| package that pre-builds and compiles my configuration
| including packges, I was as giddy as when I started
| programming. It's over-the-top, unnecessary, overkill, and an
| absolute blast. Stuff like this is the reason why I've gotten
| into this whole thing.
|
| (Also, I think overengineering stuff like this is almost an
| outlet, which helps me stay pragmatic and goal-oriented at
| work)
| cbsmith wrote:
| Everyone remember ol' GWM?
|
| https://tronche.com/gui/x/gwm/html-manual/overview.html
| bachmeier wrote:
| > The last thing you want is to be stuck debugging your failed
| desktop session on Tuesday morning at the airport as your wife
| waits for you to find the tickets.
|
| They should be on your phone or you should use your credit card
| to print them at the airport. I'm sure there are other examples
| that make your point though. Yours reminded me of the furniture
| salesman selling a warranty on a couch by saying it'd cover the
| cost of getting the blood out, or even give you a replacement,
| should you sit on a scissors and cut your legs up.
| femiagbabiaka wrote:
| The problem here isn't Emacs, it's the imperative style of
| package management. Use Nix and then it is very hard to
| irredeemably bork your stuff
| peterhil wrote:
| I came here to recommend AwesomeWM also.
|
| Here is my setup, written in Fennel Lisp: peterhil/awesome-
| ultraviolet: Awesome WM theme with dark violet colours
| https://github.com/peterhil/awesome-ultraviolet
|
| Peter Pan on Twitter: "@app4soft @probonopd @MX_Linux
| Screenshot of my #AwesomeWM setup. https://t.co/2XMnDEdJfN" / X
| https://twitter.com/peterhil/status/1463914949491761164/phot...
| cutler wrote:
| The ultimate Awesome setup has to be that used by Daniel Berg
| and Julian Assange in The Fifth Estate. Plenty of Lua and
| Python scrolling frantically but I don't remember seeing any
| Emacs.
| donio wrote:
| I've been using EXWM since 2016 and this hasn't been a problem
| for me. Emacs doesn't just magically break on its own. And even
| if I managed to break my config without noticing it the fix is
| just a git revert away.
|
| I used StumpWM for many years before EXWM and I don't see how
| the config situation is any different.
| actionfromafar wrote:
| The solution is obviously to run the Emacs window manager in
| Docker.
| bexsella wrote:
| Without Kubernetes? I'd like to read about the details of
| how you manage that load.
| actionfromafar wrote:
| All keypresses are inspected by Serverless llamas in
| Azure. Quite trivial.
| dustfinger wrote:
| I have been using it since 2017 and I have no problems to
| report that were specific to EXWM. I also use EXWM on my work
| dev machhine and have set EXWM as the windows manager for my
| kids computers.I absolutely love it. If you want the best
| experience, I recommend compiling emacs >=29 and configure it
| for native lisp + tree-itter so that you can get the most
| from eglot.
|
| I have run into issues with the odd package, but nothing that
| has ruined my day.
| TacticalCoder wrote:
| > AwesomeWM just works
|
| I use AwesomeWM since forever, with about 12 virtual
| desktops/workspaces. Nice thing is: it's a tiling WM but I can
| still put some of the workspace in "floating" mode and they
| then behave not unlike windows on a regular desktop (which
| makes some programs happy).
|
| FWIW I'm also a big Emacs user.
| BaculumMeumEst wrote:
| you can do this in stumpWM as well
| markstos wrote:
| Sway allows toggling floating and tiled as well.
| natrys wrote:
| The feature that keeps me is that same client can be tagged
| in multiple workspaces, and it just exists in different
| layouts. It's a little buggy in the 4.3 tree, but fixing
| focus issue in my config was easy enough, that's the cool
| thing about hackable software.
|
| This feature is the one of the biggest reasons I haven't
| tried something like EXWM or StumpWM yet. I really like
| AwesomeWM but can't say the same about Lua.
| Elv13 wrote:
| > It's a little buggy in the 4.3 tree
|
| I was working on fixing some of those bugs last weekend.
| Can you clarify which annoys you the most so I can add unit
| test later this evening? tl;dr; The main problem is that
| the z-index stack and client list are global and this cause
| changes to one tag to affect another. I am moving those
| structure into per-tag trees rather than global stacks.
| taeric wrote:
| I'm curious why you would be fumbling in your computer trying
| to find tickets.
|
| I do find the plethora of window managers interesting. Is that
| same level of exploration going to exist in wayland? My
| understanding was that the job of a window manager is very
| different in that world.
| shadowgovt wrote:
| > I'm curious why you would be fumbling in your computer
| trying to find tickets.
|
| I mean, it's certainly a joke, but because jokes are always
| better explained (/s) it's because most airlines offer the
| option of paperless ticket emails these days, and if you
| don't have a smartphone, you'll have to bring up the image on
| a desktop so they can scan it at the gate.
| taeric wrote:
| Right, I mostly get that. I have literally never seen
| anyone use a computer at airport security. As such, the
| joke falls rather flat. Would be better on a story about
| using emacs on your phone?
| Name_Chawps wrote:
| Some people print their tickets at home. That's what I
| assumed they meant.
| taeric wrote:
| I should have also said I meant my quip mostly in jest,
| as well. I don't actually question why they would be
| doing something I know they aren't actually ever doing.
| :D
| zvmaz wrote:
| > AwesomeWM just works.
|
| I used tiling window managers for years (I started with wmii,
| and I even used ESXM), but now I'm settled on Gnome: Everything
| works out of the box, and it's mostly keyboard driven. I don't
| know if there's a good argument for me now to return to tiling
| window managers.
| adiM wrote:
| A bit attraction of _tiling_ WMs is ... automatic tiling of
| windows. Does Gnome do that (haven't used it seriously in
| about 2 decades)?
| zvmaz wrote:
| No, it does not natively, but there's discussion to do that
| [1].
|
| There was a discussion here about it a few days ago [2].
|
| [1] https://blogs.gnome.org/tbernard/2023/07/26/rethinking-
| windo...
|
| [2] https://news.ycombinator.com/item?id=36880235
| Phelinofist wrote:
| You can have both with the Forge extension:
| https://extensions.gnome.org/extension/4481/forge/
|
| Add Space Bar and you are close to e.g. i3.
| scrame wrote:
| I'm sure his wife has the tickets on her phone.
|
| also, this is specifically for a personal vm on a work machine,
| right?
| filereaper wrote:
| Emacs Enthusiasts unite https://youtu.be/urcL86UpqZc
| quux wrote:
| "But it's all lisp based... and astonishingly slow"
| dmvdoug wrote:
| Honestly, my comment was going to be that this is the most
| emacs thing I've seen today, especially with other users,
| chiming in with 17 different options he could try.
|
| "I spend more time customizing my computer than using it."
| bandyaboot wrote:
| Don't stop there. emacs as pid 1, or bust.
| dustfinger wrote:
| This was posted by someone else in the thread, but SystemE is
| close to that dream [1]. There is also this HN thread [2] with
| more interesting links:
|
| > Using the tooling in this repo, I am able to boot from linux
| to sinit as PID1, and from there to Emacs acting as PID2 using
| --script mode, performing all typical rc.boot system
| initialization using Emacs lisp until we hit the getty.
|
| [1]: https://github.com/a-schaefers/systemE
|
| [2]: https://news.ycombinator.com/item?id=33849963
| kykeonaut wrote:
| If this isn't the most, "Emacs is a great operating system..."
| moment, I don't know what is.
| yellowapple wrote:
| Maybe SystemE? https://github.com/a-schaefers/systemE
| actionfromafar wrote:
| Makes more sense than systemd, honestly.
| WhereIsTheTruth wrote:
| That's, to me, the best form of an OS, linux gives me the ability
| to shrink my desktop resource usage to a _strict_ minimum,
| removing all the distractions, so I can focus on the task
___________________________________________________________________
(page generated 2023-08-01 23:00 UTC)