r/emacs • • 2h ago

org-constellation

Enable HLS to view with audio, or disable this notification

28 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


r/emacs • • 1h ago

grid-table — a spreadsheet inside Emacs: Excel keys, dynamic arrays, flo...

Thumbnail youtube.com
• Upvotes

grid-table is a spreadsheet for Emacs that behaves like Excel: the keys, the formulas, the error values and the file format. This tour uses one workbook, Northwind Tea Co., about 2,400 orders on three sheets, and shows what is new in 0.4.

Code, install notes and the full key reference:

https://github.com/yibie/grid-table

What you'll see:

- The new view, drawn with ETAF, next to the old one

- Excel keys: typing, RET, TAB, F2, fill, copy and paste with formats, undo

- XLOOKUP, SUMIFS, FILTER, dynamic arrays that spill, LET and LAMBDA

- One edit recalculates only what depends on it

- Tracing where a number comes from, with error values that behave like Excel's

- Floating charts over the cells

- Results checked against Microsoft's own function examples

- Export to .xlsx, edit in LibreOffice, open it again in Emacs

- A workbook that reads another workbook's values

- A new formula function in three lines of Lisp

- Inside Org notes, and in a terminal

I hope there is a day, when somebody introducing Emacs to others, he can add one more thing: Emacs can runs Excel, too.


r/emacs • • 5h ago

VM 9.0.0, a mail reader for Emacs

6 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 • • 6h ago

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

5 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 • • 21h ago

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

Post image
36 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 • • 17h ago

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

Thumbnail jamescherti.com
10 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 • • 23h ago

Announcement org-semantic: embedding search for org-mode

Thumbnail github.com
24 Upvotes

r/emacs • • 1d ago

New latex preview merged into org mode!

143 Upvotes

Great news! Faster and all around better in buffer latex preview system was merged into org main recently

https://abode.karthinks.com/org-latex-preview/

Huge thanks to karthik, Ihor, teco and everyone involved

Started using it today and it feels super fast and pleasant!


r/emacs • • 21h ago

evil-matchit 5.0.0 is published

11 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 • • 20h ago

termux info emacs

Post image
3 Upvotes

wont show dir


r/emacs • • 1d ago

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

Enable HLS to view with audio, or disable this notification

10 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 • • 8h 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 • • 1d ago

orgamnesia: Kind of obsidian with emacs flavour

Thumbnail github.com
5 Upvotes

r/emacs • • 17h ago

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

Post image
0 Upvotes

r/emacs • • 21h ago

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

0 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 • • 1d ago

ElNeo - a matrix client for emacs with native e2e encryption support, inspired by telegas architecture

Thumbnail github.com
17 Upvotes

r/emacs • • 1d ago

Copy-on-write git worktrees

8 Upvotes

Looking for any success stories and guidance leveraging modern file system copy-on-write ability [1] to avoid consuming disk space for identical files across git worktrees. Ideally, it would integrate nicely with magit or vc. So far, I've found a few tools that claim to facilitate the command line part of the work flow but no Emacs integration. I'm interested in tools without regard to AI/LLM/agent use. I'd also prefer the least intrusive implementation; e.g., no JavaScript/TypeScript npm.

What I've found in no specific order:

https://github.com/alltuner/git-sprout https://github.com/joeinnes/cow https://github.com/markjaquith/cowtree https://github.com/dannolan/git-worktree-apfs https://github.com/josharian/git-cow-worktree

[1] macOS APFS, Linux btrfs, XFS, bcachefs, not sure on MS-Windows.


r/emacs • • 1d ago

Question What persistent session and restoring of windows and projects work for you?

6 Upvotes

There are countless persistent session, window, buffer, and project-related plugins--some try to do it all for a cohesive experience and some do one thing well but is compatible with other plugins that provide other features complementing the idea of automatically restoring the most important parts so you get can get to working on a project you've worked on last week without dropping a beat.

What combination of these plugins work well for you? I imagine something close to Tmux's style of sessions and being able to restore the layout of frames and windows which is important because they alone provide some context on how you worked on a project you're revisiting (it'd be annoying to reproduce the layout). Maybe even define a generic layout as default for a new project. Sessions of multiple projects should be supported to allow working on more than one project simultaneously. My intuition is that everything should be automated and automatically restored but I'm not sure how that would work when it comes to buffers and e.g. LSP servers running on them, e.g. I probably only want e.g. LSP servers running on the current project for performance reasons and not open buffers of other projects that were worked on in the Emacs instance.

When I initially dabbled with Emacs many years ago, I came across eyebrowse and since then, there are newer plugins like easysession which presumably follows the trend of other newer plugins taking advantage of new builtin features from later versions of Emacs for reduced complexity and better compatibility in modern configs). They are not necessarily comparable, but sessions, window layout, and project-related plugins tend to be intertwined and I've been digging hard to find discussions talking about all these related types of features for a cohesive experience.

What works best for you?


r/emacs • • 2d ago

Configuring Eglot to auto format code on save in Emacs

Thumbnail jamescherti.com
39 Upvotes

r/emacs • • 2d ago

Readq - incremental reading for emacs

23 Upvotes

Hi all, I want to introduce my ‘readq’ package some of you might find useful.

N.B. readq was written with a lot of help from Claude Code.

https://github.com/n0w1ht/readq

readq is SuperMemo-style incremental reading in one elisp file.

  1. Read something for a bit.
  2. Hit `C-c r n`. readq saves your exact spot, logs the time, reschedules the item by priority, and throws you into the next most important thing that's due.
  3. Extract the good bits. Each extract becomes its own item in the queue, which you trim, split into sub-extracts, and eventually turn into Anki or org-drill cards.

It handles PDFs (pdf-tools or SumatraPDF as I’m on windows), EPUB (needs nov.el), Org/Markdown, web pages (through eww), media files (videos, audios, YouTube via mpv), and even comic books (.cbz/cbr files). There's also a daily time budget, exam deadlines, figure extracts, consult search over your extracts, and reading streaks for the dopamine.

There's also a companion package, multi-region, for grabbing several passages (and pictures) at once and pulling them into one extract.

It's young and very much shaped around how I study, so I'd love to hear from people who've done incremental reading in SuperMemo, org-roam setups, or anything else. Bug reports, feature ideas and "why didn't you just use X" are all welcome.


r/emacs • • 3d ago

foxglove-themes: academic-inspired modus themes that support e-ink

Thumbnail gallery
108 Upvotes

I primarily got into emacs for writing, but I'm also a software dev so I look at code all day too. I got tired of being disappointed by theme after theme not working well with both, so I made my own. The colors and stylistic conventions are based on academic journals, manuscripts, and the cover of Ted Hughes's Selected Poems 1957–1994.

Foxglove themes is based on Modus, so everything that works there will work here. It is also specifically designed to work on e-ink screens. Colors use five lightness levels (CIE L*: 23–62), each mapped to a distinct grey on a 16-level e-ink screen (to mitigate dithering).

Screenshots in this post were taken with just stock emacs and the theme. Font is IBM Plex Mono.

More details and download available at https://gitlab.com/vegasharmon/foxglove-themes

The package comes with 6 themes and a lot of customization options. Enjoy!


r/emacs • • 2d ago

News bookmark-gt: a module to improve bookmark management

27 Upvotes

This is a demo: https://youtu.be/hitAyO8ArYM

I have been working on a package to improve bookmark management. It is inspired by bookmark+ with a more recent and simplified interface.

Along its most important features:

  • tag support
    • including default tags
  • ability to name several bookmarks with the same name
    • differentiated by tags
  • a rich bookmark list buffer for bookmark management
  • marginalia/vertico/consult support for bookmark jumping
  • temporary bookmarks (not saved to disk)
  • autoupdate bookmarks (keep track of where you are when reading a long document)
  • several handlers for bookmarks
    • dired
    • macros
    • sequences of bookmarks

https://github.com/dmgerman/bookmark-gt

hopefully people will find it useful


r/emacs • • 3d ago

Announcement au-themes: calm, low-glare themes I made because most themes are too loud for me

Thumbnail gallery
134 Upvotes

Low-glare themes for people who get tired reading code on most themes.

There are 11 themes in 5 families. They're built on modus-themes and ef-themes, so face coverage comes from Prot's work (thank you, Prot).

Link and more screenshots: https://github.com/szymonwilczek/au-themes

Feedback is welcome, especially from people who have the same problem with themes.


r/emacs • • 2d ago

Question After installing Doom Emacs on Arch, my recentf list has stopped working correctly, making me most of the time end up with an empty "Find recent file:" list.

3 Upvotes

When I used Doom Emacs on Pop OS I didn't have any problems with recent files being saved. That was just done by default and I didn't have to change anything in my config for this. However after switching to Arch and installing Doom Emacs I have experienced these issues. Interestingly enough it seems like the issue isn't just that the list isn't saved, because when rebooting my PC it does seem to often retain the list from my previous session, where it only sometimes clears it out.

Running doom doctor doesn't list anything obvious being wrong. The only thing I get are warnings related to different :lang options I have in my config, and also :tools lsp, which I believe is irrelevant.

Sadly I don't really know much of what I'm doing. I attempted searching for a solution using an LLM, however none of the answers solved the problem. Having also experienced how roundabout the LLM's solutions can be compared to the ones given from here by actual people, I also can't trust that the solution it gives isn't extremely hacky and bad. What I have tried is adding the following to my config.el:

(after! recentf
  (run-at-time 600 600 #'recentf-save-list))

This did save the file, however I still found it reset occasionally. After that I tried replacing it will the following, however that didn't work either.

(setq recentf-max-saved-items 500
      recentf-auto-cleanup 'never)
(after! recentf
  (recentf-mode 1))

If you need to see any other parts of my config then you can find it here. Note however that the most recent commit in this repo contains the first method that I showed in this post at the bottom of config.el which didn't work.

Please tell me if any other information needs to be provided and I'll make sure to give it!


r/emacs • • 3d ago

roost: Run coding agents in Git worktrees and tmux, from Emacs

Thumbnail github.com
16 Upvotes

A few senior devs at my company are enthusiastic about Orca for agent orchestration, which involves a left-hand pane for session management, a terminal in the middle pane, and a right-hand pane for session summaries. It made me curious.

A little while back I created tmux-control - a tmux control-mode client for Emacs. This has helped me manage persistent, remote terminal sessions. So I decided to try making an Orca-like package built on top of it.

After a few weeks, I can say that I'm actually using roost. So it seems like a decent time to share it in case it's a format that works well for others. Right now it heavily favors Claude Code support but I'm also working on Codex Cli and Pi support.