Crafter Q&A: Emacs, Guix, and more!

Updates

Crafter Q&A!

Today I’ll be answering your burning questions about topics relevant to our community:

  • Emacs
  • Emacs Lisp
  • Guix
  • Guile Scheme
  • Linux in general
  • … and more!

Questions

Does EXWM work with Wayland?

No, but someone is working on an EXWM-like window manager for Wayland called ewx

http://perma-curious.eu/repo-ewx/

eglot or lsp-mode?

I use eglot, but I’ve used lsp-mode.

  • Eglot is more minimal and better integrated with Emacs UI, also built-in as of Emacs 29
  • lsp-mode is more featureful, more UI, also integrates with dap-mode for debugging

Learn Vim first and use Evil or learn “vanilla” Emacs?

  • Use Vim and Evil/Emacs if you know you like the Vim style of editing
  • Otherwise, try vanilla Emacs bindings and see if you like them or can live with them because your Emacs experience may be easier

What do you think about Emacs Application Framework?

I haven’t used it yet, but I can see how it’d be useful. However, I don’t personally see a need for it when most of what I need to do can either be done natively in Emacs or in a standalone web browser.

Do you feel that Emacs is slow? Thoughts on Commercial Emacs?

I don’t think Emacs is particularly slow, especially after native-comp got merged. Commercial Emacs is a good idea from a clean-slate problem solving standpoint, but probably won’t be worthwhile for the average to use unless it solves a specific problem you have.

Org Roam capture window behavior

It looks like to prevent org-roam-capture from breaking window configuration, you may have to use advice to hack delete-other-windows to not delete the windows during an org-capture (or some other dirty hack)

How to reload changed files from a OneDrive folder?

I use global-auto-revert-mode to automatically revert buffers when the file on disk has changed.

But! Some programs, like OneDrive, might edit files in a way where Emacs can’t detect that the file was changed.

Does Guix need something like Nix Flakes?

Yes! It does not exist yet, but someone should write it!

Are we headed back to old-school Lisp machines?

Probably not :) But you should check this project out:

https://tumbleweed.nu/lm-3/

Emacs is probably as good as it’s going to get for most people, in my opinion!

Mobile access to Org Files

I’ve used Termux to run Emacs in terminal mode to have full Org Mode functionality.

There’s also an official Emacs build for Android now, but it’s still a little bit rough.

https://f-droid.org/packages/org.gnu.emacs/

What was my verdict on Meow?

It’s cool! I think it’s interesting to have everything basically be “visual mode” so that you can see exactly the range of text that will be affected by the editing command you use next.

It can be hard to migrate to it from Evil because they do certain things differently.

I really did like the region selection bindings for things like paragraphs, functions, etc. Evil also can do this but I think Meow makes it more obvious that you should use it most of the time.

Can you use StumpWM, Wayland, Emacs, and Guix together?

Use Mahogany for a StumpWM-like WM in Wayland: https://github.com/stumpwm/mahogany

This does not seem to be packaged in Guix (yet!) but, this is probably what you would use.

What got you into System Crafting, Emacs, Free Software, etc

Linux was the start of everything. Started using Slackware in 1996 or 1997. Using Linux means you’re using GNU!

I didn’t start using Emacs until much later, maybe 2006 briefly, and then in 2013 I started using it much more regularly. Org Mode might have been the thing that brought me in the door, but then learning how customizable it is made me want to stay.

The thing that keeps me in Emacs is the fact that it feels dependable forever. And that’s because it’s two things: extensible with a Lisp, and also Free Software.

What’s your opinion on Racket?

It’s cool! It’s nice that it has so many useful libraries built in. It’s great that you can generate standalone executables using raco.

However, I don’t like the fact that they’re so focused on language-oriented programming. It’s also not really a Scheme, it’s built with Scheme but they have gone their own direction on certain things.

I want to use a Scheme that’s focused on writing practical applications. Guile Scheme is great for practical work, and it’s already being used in awesome projects like GNU Guix!

Do you think Guile Emacs is the future of Emacs?

I wish it was! But I think there’s a lot of inertia in making this happen. I don’t think it will ever replace GNU Emacs.

https://www.emacswiki.org/emacs/GuileEmacs https://emacsninja.com/posts/state-of-emacs-lisp-on-guile.html

Why do I prefer Qutebrowser or Nyxt to Firefox?

Keyboard-driven navigation, better customizability, easier integration with external programs, more minimal UI, etc. Also, easier to customize with plain text files.

How do you do incremental completion in Vertico

Make sure you’re using Orderless: https://github.com/oantolin/orderless

Can I watch anime or read manga from Emacs?

Any thoughts on Nix vs Guix?

Guix gives me so much more power than Nix because it’s using a real programming language (Scheme), and also it’s using a language that is really effective for creating domain-specific languages.

Guix is incredibly powerful because it’s Scheme, I don’t think I can do the things with Nix that I do with Guix.

Do you play games on Guix?

I have, but I don’t really do PC gaming very often.

I install Steam via Flatpak and it works quite well!

There’s also Steam inside of the Nonguix repo which should work fine.

There’s a Guix channel called Guix Gaming Channels with some games packaged for Guix:

https://gitlab.com/guix-gaming-channels/games

Is there a way to preview files in the file picker?

Try the consult package, it has live-preview for some selection commands:

https://github.com/minad/consult#live-previews

Does Emacs work well as a terminal emulator?

It’s ok! ansi-term is probably the best built-in terminal emulator, otherwise try vterm (can be a little harder to set up due to the native code component).

Guix ruins Emacs package management

I disagree! I actually think that managing Emacs packages with Guix makes Emacs a lot more reliable.

Does Guix violate the Filesystem Hierarchy Standard?

Yes, but you can replicate it when you need to by using

guix shell container -F

You should use Scheme to make your website!

Can I use Guix on a MacBook with NVIDIA chipset?

Probably, if it’s still Intel-based.

Check out the Nonguix repo for proprietary firmware and drivers including NVIDIA:

https://gitlab.com/nonguix/nonguix

What single piece of advice would you give someone who wants to get into System Crafting?

Install Linux, preferrably something like Ubuntu. Debian might be an option now with the latest release. Linux Mint, elementaryOS, etc.

  • OR -

Install and use Emacs and then go from there!

Subscribe to the System Crafters Newsletter!
Stay up to date with the latest System Crafters news and updates! Read the Newsletter page for more information.
Name (optional)
Email Address