Daniel Mendler
Daniel Mendlerminad@mastodon.world
2026-02-15

@benleis @divyaranjan
But maybe you're looking for Pale instead?

codeberg.org/MonadicSheep/pale

Daniel Mendlerminad@mastodon.world
2026-02-15

@hmelman I am not sure if a theme is sufficient for that. Enabling modes and setting variables is possible, but key bindings? I haven't used themes like this before, to configure various presets of Emacs.

Daniel Mendlerminad@mastodon.world
2026-02-15

@pkal Indeed. For the older builtin themes these properties are set in the autoload file. But unfortunately not for Prot's themes (Modus, Ef and Doric), when installed from ELPA, since they don't have deftheme autoloads.

Daniel Mendlerminad@mastodon.world
2026-02-15

@pkal In the autoloads.el file of a theme package I see that the theme registers itself:

(when load-file-name
(let ((dir (file-name-directory load-file-name)))
(unless (equal dir (expand-file-name "themes/" data-directory))
(add-to-list 'custom-theme-load-path dir))))

Instead of modifying the custom-theme-load-path, the themes could be added directly to a list of available themes with some meta information (:kind, :background-mode, main colors, ...)?

Daniel Mendlerminad@mastodon.world
2026-02-15

@pkal Thanks. That's it. Iirc I had tried this a already. I just tried it again. Unfortunately the :kind property is not available for themes when they appear in the (custom-available-themes) list. For this to work the custom-declare-theme call would have to be autoloaded.

Daniel Mendlerminad@mastodon.world
2026-02-15

@pkal It is a good idea. I like that themes can be used to change arbitrary variables. However in my experience this creates problems when switching color themes. For example my consult-theme command incorrectly assumes that only a single theme is active at a time, since mixing multiple color themes leads to, well, mixed results. So I need a way to distinguish themes by "flavor", to figure out which themes can be enabled together and which are mutually exclusive.

Daniel Mendler boosted:
2026-02-15

For #Emacs users: I am proposing a "beginners" theme* for Emacs, that would automatically enable features that wouldn't be enabled by default. It might come with a checkbox on the splash screen! The idea is to have a OOTB replacement for (basic) starter kits.

You can review the list of options that the theme would enable in this thread: mail.gnu.org/archive/html/emac. I am interested in more ideas.

(* IYDK: Emacs "themes" don't just change the color-scheme, but as seen here can set options.)

A screenshot of a Emacs window started with "emacs -q".  A line is highlighted that includes a checkbox to enable "beginner friendly" options.
Daniel Mendlerminad@mastodon.world
2026-02-15

Hypnomacs

Daniel Mendlerminad@mastodon.world
2026-02-15

Another fun example #emacs #org

Emacs displaying an Org mode buffer with an Org babel block generating an animated graphic
Daniel Mendlerminad@mastodon.world
2026-02-14

I have implemented a new version of the Emacs canvas patch. Refreshing avoids redrawing or even checking the entire buffer. Only the single glyph where the canvas is attached as display property is redrawn.

I welcome help with testing or porting to other platforms than Cairo/Pgtk or X. @divyaranjan ported his Pale library to the new version of the canvas API, with good results.

Canvas patch and test program:
github.com/minad/emacs-canvas-

Discussion on the bug tracker:
debbugs.gnu.org/cgi/bugreport.

Daniel Mendler boosted:
Divya Ranjan :hilbert:divyaranjan@mathstodon.xyz
2026-02-14

I finished wiring @minad 's Canvas API to Pale. And now we can render 1080p 60FPS video inside an #Emacs buffer without having to do tiling and other such nasty hacks. Enjoy this view of the universe inside your favorite operating system:

codeberg.org/attachments/6e87f

Can't wait for this patch to get merged into Emacs!

Daniel Mendlerminad@mastodon.world
2026-02-04

Emacs doom scaling

The canvas has an original size of 320x200 and is scaled up by Cairo or XRENDER. Works better than expected.

A large Emacs window running the classical Doom gameFour small Emacs windows running the classical Doom game
Daniel Mendlerminad@mastodon.world
2026-02-04

@428 Actually there is debbugs.gnu.org/cgi/bugreport. for low level key events. I also need this for github.com/minad/doom-on-emacs.

Daniel Mendlerminad@mastodon.world
2026-02-04

@me @tusharhero I think Emacs makes it quite easy to write packages which work nicely both on TUI and GUI, which is actually pretty amazing. Most of my packages should work equally well on both displays. Some terminals support image protocols, but Emacs does not take advantage of that yet.

Daniel Mendlerminad@mastodon.world
2026-02-04

@mekeor @tusharhero @divyaranjan As long as Gtk depends on Cairo, Emacs can continue to use it. But of course it is possible to replace it if necessary. The canvas intentionally only gives access to a simple pixel buffer. Right now it works with and without Cairo on X. I did not test other platforms.

Daniel Mendlerminad@mastodon.world
2026-02-04

@jameshowell @tusharhero @divyaranjan Thank you! I had wanted such a canvas-like feature for years. Emacs reader gave me the push to work on this.

Daniel Mendlerminad@mastodon.world
2026-02-03

@oantolin Hi Omar!

This is missing in my description. The canvas has to be inserted as image display property:

(insert (propertize "#" 'display `(image :type canvas :data ,canvas)))

In order to refresh, call canvas-refresh with the correct position.

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst