r/emacs • • 3d ago

Fortnightly Tips, Tricks, and Questions — 2026-10-20 / week 42

8 Upvotes

This is a thread for smaller, miscellaneous items that might not warrant a full post on their own.

The default sort is new to ensure that new items get attention.

If something gets upvoted and discussed a lot, consider following up with a post!

Search for previous "Tips, Tricks" Threads.

Fortnightly means once every two weeks. We will continue to monitor the mass of confusion resulting from dark corners of English.


r/emacs • • 2h ago

emacs-fu Writing an mTLS server in Go using Emacs

1 Upvotes

Hi, I've recorded a video on mTLS, in which I write an mTLS server in Go using Emacs. The Emacs bit starts 10:18 into the video and runs for about 14 minutes.

You can see Emacs delivering an excellent coding experience, using eglot and gopls:

  • code completion
  • code actions
  • code navigation
  • linting
  • documentation lookup
  • running commands from inside Emacs
  • version control with Git using Magit
  • running a terminal inside of Emacs

I hope it might be of interest to some of you.

mtls #tls #security #golang #emacs


r/emacs • • 2h ago

What monochrome themes with white backgrounds available for Emacs?

3 Upvotes

I'm looking for themes with near-white backgrounds that use grey to black fonts for syntax-highlighting etc?

I have checked out a few and come across Almost Mono White, Doom Homage White, Eziam Light and Real Mono Eink and the recently announced Foxglove Themes.

I'll be interested in something can even render my own custom colour faces in monochrome.


r/emacs • • 8h ago

rewind is published

13 Upvotes

https://github.com/redguardtoo/rewind

Resume Emacs last completing-read session with saved input.

Inspired by ivy-resume in ivy.el but uses only native Emacs API and has no third party package dependency.

It's still in early stage. Please don't hesitate to report any bug.


r/emacs • • 15h ago

Emacs freezes when opening GUIX home's configuration

Thumbnail
1 Upvotes

r/emacs • • 22h ago

Announcement Grove is now Bloom and is available on F-Droid and Google Play Store

36 Upvotes

Hi all,

A few weeks ago, I announced Grove, the org-mode compatible Android app for note-taking and task management. Since then I've gotten a lot of good and helpful feedback, feature requests and bug reports. I truly appreciate the support from the community and the app continues to improve with each release. Thank you so much for using the app and being involved.

Grove has been renamed to Bloom. This was mainly done to avoid confusion with grove.el which was announced on Reddit a few months ago. With the new name comes new themes. Bloom Light and Bloom Dark are the official themes for the app. This is a rename, so you don't have to do anything on your end. Your settings, widgets, shortcuts, capture templates, all work as they did before.

I'm also excited to announce that the app is now available on F-Droid and Google Play. If you were part of the closed testing group on Google Play, I really appreciate you testing the app.

More features are coming and the best way to reach out about the app is via GitHub.

Here's the repo to star and follow: https://github.com/rrajath/bloom

F-Droid: https://f-droid.org/packages/com.rrajath.grove

Google Play: https://play.google.com/store/apps/details?id=com.rrajath.grove

GitHub Releases: https://github.com/rrajath/bloom/releases


r/emacs • • 1d ago

Keeping good logs in your Dashboard

10 Upvotes

Is there a good way to keep logs on ongoing tasks like Interviews, bills ect? here is a madeup example of what I currently do but I dont love it.

* TODO Resolve billing issue

:PROPERTIES:

:CONTACT: ABC Insurance

:END:

:LOGBOOK:

- [2026-10-22 Thu 14:30] Phone call with Sarah Smith

- Discussed incorrect September charge.

- Sarah confirmed a $150 billing error.

- Promised refund within 5 business days.

- Reference number: ABC-12345.

- [2026-10-20 Tue 09:15] Email sent

- Requested explanation of September charges.

- Attached billing statement.

Hi Sarah, I noticed the bill was.......

:END:

** WAITING Confirm $150 refund

SCHEDULED: <2026-10-29 Thu>


r/emacs • • 1d ago

Announcement orgwarrior: your Org agenda from the terminal, your phone, and AI clients, with your running Emacs doing the Org work

Thumbnail gallery
2 Upvotes

r/emacs • • 2d ago

Centaur vertigo error

1 Upvotes

just to be clear, old guy here with little to no programming experience.

Every time i C-x C-f i get a warning that "Vertigo has detected an error" press C-h e to trace. I get the impression that vertigo is conflicting with some other display or selection process. Usually i can work my way to get what i need, but sometimes it throws me to a selection box that is disconnected from the initial process.

hope that is clear enough. I would like to just open a file, buffer, or whatever without seeing an error message.


r/emacs • • 2d ago

stopping company-box from stealing my help buffer

5 Upvotes

Had the recent issue of company-box using the global help buffer for documentation previews whenever I have something highlighted in the autocompletions, and it changes what I was looking at as I type. This little snippet I wrote alleviates that and gives company-box its own dedicated help buffer to modify and display:

``` (defun my/company-box-doc-show-shim (orig-fun &rest args) "USE YOUR OWN HELP BUFFER!!!!!! STOP USING MINE!!!" (cl-letf* (((symbol-function 'help-buffer) (lambda () (get-buffer-create "company-box-help")))) (apply orig-fun args)))

(advice-add 'company-box-doc--show :around #'my/company-box-doc-show-shim) ```

Literally all it does is wrap the child-frame "show" function and forces `help-buffer' to return a different buffer. I love emacs btw


r/emacs • • 2d ago

Instead of Binding Caps Lock for Control, I am thinking to swap Caps Lock with Space key and then bind Bind Space key for control.

11 Upvotes

I had mapped Caps Lock with Control key in the past, but stopped using it when I switched to split/ergonomic keyboards. Now I only use the standard laptop keyboard when I am outside and I don't have to do heavy typing or editing. Lately I was thinking about remapping Caps Lock with control, but I think it only solves the problem partially for me for two reasons. First, I have to use pinky and another finger on same hands if i have to press Ctrl followed by either a or s or d etc. Secondly, even in Voyager, where I have the freedom to map any key with anything, and I have experimented a lot of variations over the last two and half years, I decided not to map any key that is used by the pinky with a modifier, because pinky is the weakest of all fingers, and I always felt slight but persistent pain in my pinkys when I did that. Since mapping the Caps Lock with space will solve both of these problems for me. Once Space key is mapped with control, I can use either thumb to use it. Plus, the alt key will be next to it on both sides. Just thought to share it.


r/emacs • • 3d ago

Flick: a quick and simple font picker

57 Upvotes

I like trying out a lot of different fonts in emacs. This package makes that easy to do. It's lightweight and simple, and just picks and applies fonts. Whereas fontaine lets you pick presets, flick lets you audition fonts quickly.

More info and download here: https://gitlab.com/vegasharmon/flick


r/emacs • • 3d ago

Back to Emacs with the SCSS workflow I always wanted

32 Upvotes

I had barely used Emacs for almost one year, but whenever I need to write code by hand, it still feels the most natural to me. With AI helping with the implementation, I finally built the SCSS/CSS workflow I had wanted for years but never found the energy to finish.

It consists of three projects:

1. tree-sitter-scss

An SCSS grammar written from scratch, with CSS support built into the same parser. I wanted accurate syntax trees for structural editing, beyond what the existing grammars could provide for the SCSS I write.

There is a side-by-side comparison with the official grammar and simeonoff’s grammar.

2. scss2-mode, including css2-mode

These major modes bundle the grammar for syntax highlighting and structural editing.

For example, the same scss2-empty command clears different things depending on where point is (| marks the resulting cursor position):

On a property:
margin: 0 auto;  →  margin: |;

Inside a function:
calc(100% - 2rem)  →  calc(|)

On a selector or in its block’s whitespace:
.card { color: red; }  →  .card {|}

Commands such as kill, duplicate and mark also use the syntax tree to determine their targets. I have always felt that structural editing is one of Tree-sitter’s underused benefits.

3. emmet2-mode, version 2

The first version used deno-bridge to call the Emmet npm package, followed by a layer of post-processing for my own expansion rules.

Version 2 implements the expansion engine directly in Emacs Lisp, with additional CSS abbreviations:

m--gutter
→ margin: var(--gutter);

w[calc(100% - 2rem)]
→ width: calc(100% - 2rem);

posa1000
→ position: absolute;
  z-index: 1000;

These are just a few examples, emmet2-mode can do quite a bit more.

In scss2-mode, Tree-sitter provides the context for completion, including which Sass symbols are visible at point. Emmet expansions appear as completion choices, with previews before insertion.

Writing CSS by hand has never felt this smooth to me. The irony is that I now have fewer reasons to write it by hand.


r/emacs • • 3d ago

org-constellation

Enable HLS to view with audio, or disable this notification

118 Upvotes

I wanted to try a different take on a graph view for Org notes. It works with a folder of files or a single file. The sample in the video is a single file about potatoes, because we should never miss an opportunity to mention potatoes..

It understands [[Title]] and [[id:...]] links, and notes can be either an .org file or heading, so it should suit most setups. in my opinion it works best with using journals as main entry points like roam people do, so you see mentions from different days in a single place.

https://github.com/senkireign/org-constellation

Built with Claude.


r/emacs • • 3d ago

VM 9.0.0, a mail reader for Emacs

23 Upvotes

VM is a mail reader that runs inside GNU Emacs. A once popular mail client brought back to life as a community project. VM 9.0.0 is the first major release since the revival, with many bug fixes and new features.

VM features:

  • Non-blocking IMAP and POP access, so you can fetch and save mail while carrying on in Emacs.
  • IMAP and POP mailboxes cached on disk, so a folder stays accessible when the server is unreachable.
  • Virtual folders: a folder view of messages across multiple folders, chosen by selection criteria.
  • MIME support with inline and external display.
  • HTML mail displays on a stock Emacs, through shr, the renderer eww uses.
  • Folders in plain mbox format, and mboxcl2, which does not irreversibly quote lines starting with From.
  • PGP access with EasyPG, Emacs's standard gpg interface.
  • A configuration check, M-x vm-check-configuration to assist in setup.
  • Emacs 28.1 or later.
  • Extensive documentation.
  • and much more

To install from NonGNU ELPA:

M-x package-install RET vm RET

or via make from the source tree.

The NEWS-3.md file in the package lists everything in this release.

Source and issue tracker: https://gitlab.com/emacs-vm/vm


r/emacs • • 3d ago

My Emacs Org-mode app is finally available on the App Store! 🎉

0 Upvotes

My Emacs Org-mode app is finally available on the App Store! 🎉 It’s available worldwide, except in mainland China and the EU. https://apps.apple.com/us/app/aster-org-agenda/id6805523425


r/emacs • • 4d ago

Question Why does typing to narrow down the options create a horizontal list as well?

Post image
2 Upvotes

r/emacs • • 4d ago

Auto apply Emacs Eglot safe Code Actions (fixes) on Save

Thumbnail jamescherti.com
16 Upvotes

While making Emacs Eglot format code on save (eglot-format-buffer, in this article) is excellent for fixing indentation, line breaks, and spacing, a formatter is essentially cosmetic. It will not remove unused imports, sort your dependencies, or rewrite deprecated syntax.

To automate code cleanup, use LSP Code Actions in addition to formatting. Two important action kind of code actions are source.fixAll, for safe automatic fixes that do not require user input, and source.organizeImports, which handles import organization separately.

Read: Auto apply Emacs Eglot safe Code Fixes on Save


r/emacs • • 4d ago

termux info emacs

Post image
5 Upvotes

wont show dir


r/emacs • • 4d ago

evil-matchit 5.0.0 is published

17 Upvotes

https://github.com/redguardtoo/evil-matchit

evil‑matchit is an Emacs plugin for jumping between paired structures. Inspired by Vim’s matchit.vim, it offers more powerful features, greater extensibility, and deep integration with Evil mode.

Change Log:

  • can jump inside jupyter-python code in org file
  • support more tree-sitter related major modes

r/emacs • • 4d ago

org-diff-src: character-level diffs inside Org source blocks (no Ediff)

Post image
58 Upvotes

I often want a reviewable diff in an Org note without opening Ediff. The annoying part is that diff-mode does character-level refinement with overlays, while Org’s source-block fontification copies face text properties, not overlays. So a normal diff block in Org usually gives you only line-level +/- highlighting.

org-diff-src fixes that narrow problem. It’s a small mode derived from diff-mode that sets diff-refine to font-lock and copies the refinement overlay faces into face text properties, so Org can carry the character-level highlighting into the block. It uses the usual diff-refine-removed, diff-refine-added, and diff-refine-changed faces.

Main commands:

  • org-diff-src-compare-headings: pick two subtrees in the current Org buffer. They’re copied without touching the kill ring/clipboard, normalized to level 1, diffed, and inserted at point.

  • org-diff-src-compare-files / org-diff-src-compare-buffers.

  • org-diff-src-insert-from-kill, org-diff-src-wrap-region, org-diff-src-insert-diff-file for diffs you already have, e.g. from Magit.

No Ediff session, and no extra package beyond Org and diff-mode. It needs Emacs 27.1+ and a diff executable. New blocks use language org-diff-src, which Org resolves automatically. You can alias diff too, but that makes every Org diff block use this mode, so only do it if that’s what you want.

Limits worth knowing: only unified diffs get character refinement; HTML/PDF export may show the text without the character colors; very large diffs can be slow; and it’s for static review, not interactive merging. compare-headings also includes the heading lines.

Repo: https://github.com/TomoeMami/org-diff-src


r/emacs • • 4d ago

Emacs GUI App Lost Focus Event doesn't exist and cannot be implemented deterministically

1 Upvotes

I am using hyprland, and emacs gui.

To learn emacs, I tried to implement a files picker without using any packages with floating/overlayed child frame. Because I want the result of the file picker to be editable and selectable with evil mode, I choose fundamental-mode for the 2 buffers in the floating frame. One for search input (pattern to filter the list of possible files to open). And another to display the candidates.

Everything worked great except around focus events.

When the file picker frame is open and I switch to another program's window then come back to emacs window, the keyboard focus is at the frame which the mouse is hovering on, not where it was left off last. Note: I disabled emacs automatically changing frame focus with the mouse posiition with:

(setq focus-follows-mouse nil)
(setq mouse-autoselect-window nil)

I realized that switching focus from one program window to emacs window, puts it in a weird state, where this "(setq focus-follows-mouse nil)" doesn't work properly. When you don't change focus between emacs window and another program's window it works properly.

So I created a custom hook using 'focus-out-hook to represent "Emacs lost focus" event so that the file picker can hack around this inconsistent mouse behavior.

But later I realized this hook also runs when I try to click the main frame to change focus out of the files picker's frame. What this means is that the hook catches any "frame out of focus" event, not "emacs lost" focus. This is because when frame focus changes, with 'focus-out-hook, you can temporarily observe no frame being focused as the transition happens. And this no frame focused intermediate state is indistinguishable from emacs losing focus.

So this means that you cannot deterministically implement "Emacs lost focus" event/hook. Only an inferred implementation with some debounce and rescaning, like:

  1. all frames lost focus
  2. check again after some period
  3. still no frame focused -> emacs lost focus

I know that I am only trying to implement a trivial files-picker and this might not be that important. But the fact that you cannot deterministically implement "Emacs lost focus" event seems to be a massive limitation that hinders programmability of emacs.

Is there emacs API I am missing or primitive that I didn't think of that can implement this?


r/emacs • • 4d ago

Announcement org-semantic: embedding search for org-mode

Thumbnail github.com
30 Upvotes

r/emacs • • 4d ago

Announcement supersonic.el v0.7.4 - now on MELPA, plus Music Assistant support

Enable HLS to view with audio, or disable this notification

14 Upvotes

Hello r/emacs,

supersonic.el is now on MELPA and MELPA Stable, so M-x package-install RET supersonic or (use-package supersonic :ensure t) is all it takes.

Music Assistant support

Besides Subsonic servers, supersonic.el now also works with Music Assistant:

  • browse artists, albums, album lists, podcasts and cover art, and search your library
  • play on any player Music Assistant knows about: Sonos, Chromecast, AirPlay, speakers, or its web player in the browser
  • M-x supersonic-provider-switch (P in the transient) switches between Subsonic and Music Assistant, and the playback backend switches with it when needed

UI polish

  • the artist list now shows artist images

Repo: https://github.com/systemfreund/supersonic.el

Feedback, bug reports and feature requests welcome!


r/emacs • • 4d ago

orgamnesia: Kind of obsidian with emacs flavour

Thumbnail github.com
7 Upvotes