Swordfish90 / cool-retro-term

A good looking terminal emulator which mimics the old cathode display...
21.76k stars 836 forks source link

Control keys are broken on MacOS when I build it myself. #846

Open j3pic opened 2 weeks ago

j3pic commented 2 weeks ago

I made a few small changes to one of the shaders (see https://github.com/Swordfish90/cool-retro-term/pull/845), and successfully built cool-retro-term on Linux. Then I wanted to have the same effect on MacOS, so I tried building my changes.

The resulting binary behaves much differently from the pre-built one from the Releases page. I'm on MacOS 13, and I had to build Qt 5.15.2 from source before building cool-retro-term. Qt needed to be patched to add an #include directive to get it to compile.

I used Xcode 14.1, and the SDK for macOS 13.0.

The most crippling problem is that ^D does not send 0x4. Instead, it sends the 3-byte sequence 0x18, 0x40, 0x73. This means I cannot type an EOF. ^V sends this same sequence.

Some control characters send the right bytes. For example ^C still works. Backspace sends ^H (0x8) like it's supposed to. However, the actual key combination Ctrl+H (^H) sends the byte sequence 0x18, 0x40.

Enter sends ^M (0xd), but ^M sends 0x18, 0x40, 0x73. 0xd.