<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs.git/modules/keyboard-compat.el, branch v0.7.2</title>
<subtitle>my Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs.git/atom?h=v0.7.2</id>
<link rel='self' href='https://git.cjennings.net/dotemacs.git/atom?h=v0.7.2'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/'/>
<updated>2026-02-09T22:11:42+00:00</updated>
<entry>
<title>fix(keyboard): support daemon mode for M-S- key translations</title>
<updated>2026-02-09T22:11:42+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-09T22:11:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/commit/?id=cbdd0729f75721f246de94661a6ee83505d83399'/>
<id>urn:sha1:cbdd0729f75721f246de94661a6ee83505d83399</id>
<content type='text'>
GUI key translations (M-O → M-S-o, etc.) were never installed in daemon
mode because env-gui-p returns nil at startup with no frame. Use
server-after-make-frame-hook for daemon, emacs-startup-hook otherwise.
Also adds timestamps to assemblyai-transcribe output.
</content>
</entry>
<entry>
<title>feat(keyboard): add GUI key translation for M-S- bindings</title>
<updated>2026-02-02T14:34:36+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-02T14:34:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/commit/?id=089a4313660cb8af1eca3829ffbdbae70f72333a'/>
<id>urn:sha1:089a4313660cb8af1eca3829ffbdbae70f72333a</id>
<content type='text'>
Rename terminal-compat.el to keyboard-compat.el and add GUI support.

Problem: M-S-o and other Meta+Shift bindings didn't work in GUI mode.
GUI Emacs receives M-O (uppercase) but bindings use M-S-o syntax.
Terminal can't use M-O due to arrow key escape sequence conflicts.

Solution: Use key-translation-map in GUI mode to translate M-O -&gt; M-S-o
for all 18 Meta+Shift keybindings. Terminal fixes unchanged.

Also fix two test issues:
- Remove expected-fail from expand-weekly test (timezone fix resolved it)
- Add helpful install messages to dependency-checking tests
</content>
</entry>
</feed>
