[PR #94] [MERGED] Fixes non-QWERTY layout issues #306

Closed
opened 2026-05-05 05:12:30 -06:00 by gitea-mirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/keycastr/keycastr/pull/94
Author: @akitchen
Created: 7/31/2017
Status: Merged
Merged: 8/12/2017
Merged by: @akitchen

Base: masterHead: master


📝 Commits (9)

  • 38987f6 Fixes display of shifted characters on non-QWERTY keyboard layouts
  • 7d68b54 Shift-tab is handled as a special case
  • 0b442c7 dead code removal
  • 9956852 Improve typesafety of KCKeyboardTap's delegate
  • 4c291ed Remove event tap upon deallocation if not already removed
  • 38eec47 Clarify error message contexts
  • 5120f9f Remove event tap eagerly when app is terminating
  • 596aac9 Adjust naming for readability
  • a0e6bcb Offer clearer instructions when the app fails to create an event tap

📊 Changes

7 files changed (+80 additions, -264 deletions)

View changed files

📝 keycastr/KCAppController.m (+14 -23)
📝 keycastr/KCKeyboardTap.h (+3 -9)
📝 keycastr/KCKeyboardTap.m (+21 -142)
📝 keycastr/KCKeystroke.h (+7 -7)
📝 keycastr/KCKeystroke.m (+8 -16)
📝 keycastr/KCKeystrokeTransformer.m (+26 -62)
📝 keycastr/KeyCastr.xcodeproj/project.pbxproj (+1 -5)

📄 Description

With these fixes, the only keys handled with special casing are the keys which don't have a glyph associated with them automatically (like the arrows, space bar, tab, etc.). This addresses #56 etc.

This change removes the dependency on Carbon APIs, relying instead on NSEvent which may use a bit more memory. I haven't inspected this impact yet, but I'm not too worried about it... I may continue to update this PR before merging, but anyone can go ahead and try out the build in the keycastr/bin/ folder.

Feedback is especially welcome from non-QWERTY and non-US users -- in fact it would be greatly appreciated! I tested Dvorak and Colemak using the input sources menu in macOS, not an actual hardware keyboard.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/keycastr/keycastr/pull/94 **Author:** [@akitchen](https://github.com/akitchen) **Created:** 7/31/2017 **Status:** ✅ Merged **Merged:** 8/12/2017 **Merged by:** [@akitchen](https://github.com/akitchen) **Base:** `master` ← **Head:** `master` --- ### 📝 Commits (9) - [`38987f6`](https://github.com/keycastr/keycastr/commit/38987f6df19665aa868675d543be4962932b4e7d) Fixes display of shifted characters on non-QWERTY keyboard layouts - [`7d68b54`](https://github.com/keycastr/keycastr/commit/7d68b543821e03c1cb6b3d235f7d09557234527a) Shift-tab is handled as a special case - [`0b442c7`](https://github.com/keycastr/keycastr/commit/0b442c79335d987673f01d56dbf33655c6227343) dead code removal - [`9956852`](https://github.com/keycastr/keycastr/commit/9956852aa491a433298adec4d1c5add2d129d3e1) Improve typesafety of KCKeyboardTap's delegate - [`4c291ed`](https://github.com/keycastr/keycastr/commit/4c291ed6f9f2c23909524fe1c1b7cecea37a7373) Remove event tap upon deallocation if not already removed - [`38eec47`](https://github.com/keycastr/keycastr/commit/38eec4770a3effa2249423a05ce0177fe67ec989) Clarify error message contexts - [`5120f9f`](https://github.com/keycastr/keycastr/commit/5120f9fbe90e743a2b428ff6c26adabd91aadf55) Remove event tap eagerly when app is terminating - [`596aac9`](https://github.com/keycastr/keycastr/commit/596aac99104c94c37fd0eef292008f75165a131a) Adjust naming for readability - [`a0e6bcb`](https://github.com/keycastr/keycastr/commit/a0e6bcbf415c86b9f2da29c7938806b7a63158c8) Offer clearer instructions when the app fails to create an event tap ### 📊 Changes **7 files changed** (+80 additions, -264 deletions) <details> <summary>View changed files</summary> 📝 `keycastr/KCAppController.m` (+14 -23) 📝 `keycastr/KCKeyboardTap.h` (+3 -9) 📝 `keycastr/KCKeyboardTap.m` (+21 -142) 📝 `keycastr/KCKeystroke.h` (+7 -7) 📝 `keycastr/KCKeystroke.m` (+8 -16) 📝 `keycastr/KCKeystrokeTransformer.m` (+26 -62) 📝 `keycastr/KeyCastr.xcodeproj/project.pbxproj` (+1 -5) </details> ### 📄 Description With these fixes, the only keys handled with special casing are the keys which don't have a glyph associated with them automatically (like the arrows, space bar, tab, etc.). This addresses #56 etc. This change removes the dependency on Carbon APIs, relying instead on NSEvent which may use a bit more memory. I haven't inspected this impact yet, but I'm not too worried about it... I may continue to update this PR before merging, but anyone can go ahead and try out the build in the ```keycastr/bin/``` folder. Feedback is especially welcome from non-QWERTY and non-US users -- in fact it would be greatly appreciated! I tested Dvorak and Colemak using the input sources menu in macOS, not an actual hardware keyboard. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
gitea-mirror 2026-05-05 05:12:30 -06:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/keycastr#306
No description provided.