cd /news/developer-tools/canvas-patch-we-need-testers · home topics developer-tools article
[ARTICLE · art-43104] src=monadicsheep.org ↗ pub= topic=developer-tools verified=true sentiment=· neutral

Canvas patch: we need testers

The MonadicSheep Emacs Fork project is seeking testers for its Canvas patch, especially on MS Windows, as developers lack Windows machines to verify the code. Testers are asked to build GNU Emacs from source using MSYS2 and run a provided Elisp test to ensure the canvas rendering works correctly.

read1 min views1 publishedJun 29, 2026

The Canvas patch is almost done. Except that we need more testing, specifically for its MS Windows port. (Though testers on other operating systems like GNU/Linux and MacOS are also welcome.)

Since we don't have any computers running MS Windows, we are not sure if the code is actually correct.

Please follow the following instructions for testing it on MS Windows. You can discuss the results or ask us questions at MonadicSheep Emacs Fork's Issue tracker, #phi-mu-lambda on Libera IRC (open webchat in browser), or on the fediverse (tag the post with #emacs).

1. Building GNU Emacs on MS Windows #

  • Install MSYS2by following the official instructions mentioned there. - Open a MSYS2 UCRT64 session terminal. In the bash prompt, run the following command to get the canvas patch source code.
git clone https://codeberg.org/MonadicSheep/emacs

Now, change directory to emacs source checkout, by running the following command.

cd emacs/

Now, run the following command to build Emacs.

make

This may take a while depending on your hardware.

Once that is done, you should be able to start emacs with the following command.

./src/emacs

2. Testing #

Evaluate the following in *scratch*

(Using C-c C-c

keybinding).

(defun make-rect (width height pixel)
  (make-vector (* width height) pixel))

(setq rect-canvas-vec (make-rect 250 250 #xFFFF0000))
(setq rect-canvas `(image :type canvas
                          :data-width 250
                          :data-height 250
                          :data ,rect-canvas-vec))
(insert (propertize "#" 'display rect-canvas))

(defvar rect-canvas-timer nil)
(let ((i 0))
  (setq rect-canvas-timer
        (run-with-timer
         0 0.016
         (lambda ()
           (if (< i (* 20 250))
               (progn
                 (aset rect-canvas-vec (+ (* 115 250) i) #xFF0000FF)
                 (canvas-refresh rect-canvas t)
                 (setq i (1+ i)))
             (cancel-timer rect-canvas-timer))))))

You should be able to see something like this.

── more in #developer-tools 4 stories · sorted by recency
── more on @monadicsheep 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/canvas-patch-we-need…] indexed:0 read:1min 2026-06-29 ·