Skip to content

Add an opt-in setting to hide the Caps Lock indicator - #89

Open
manovotny wants to merge 2 commits into
fuji-mak:mainfrom
manovotny:feature/hide-caps-lock-indicator
Open

Add an opt-in setting to hide the Caps Lock indicator#89
manovotny wants to merge 2 commits into
fuji-mak:mainfrom
manovotny:feature/hide-caps-lock-indicator

Conversation

@manovotny

@manovotny manovotny commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Summary

macOS shows a Caps Lock indicator in text fields whenever Caps Lock is on. For Capsomnia users that's constant noise — Caps Lock stays on for hours, and the indicator appears even with "Prevent all-caps typing" enabled.

CleanShot 2026-08-18 at 07 57 39@2x

This adds an opt-in "Hide the Caps Lock indicator" toggle to Advanced Settings that suppresses it through the system redesigned_text_cursor feature-flag override.

The override only takes effect after a restart, so the toggle shows a localized reminder until the current boot reflects the on-disk state. Toggling back before restarting clears the reminder, and the state survives app relaunches by comparing against a kern.boottime snapshot.

Changes

  • The privileged helper gains argument-restricted indicator-hide and indicator-show modes. They edit only /Library/Preferences/FeatureFlags/Domain/UIKit.plist, preserve unrelated flags in that file, and delete it when nothing else remains. The sudoers rules in install.sh and the pkg postinstall stay argument-exact, now five commands instead of three.
  • New toggle in Advanced Settings → System Behavior, localized in all four languages. Its state reads from the on-disk plist rather than UserDefaults, so a failed helper call (for example an install that predates the new sudoers entries) reverts the toggle on reload instead of showing a state that isn't real.
  • The uninstaller restores the macOS indicator default before removing the helper.
  • Tests cover the plist parsing, the restart-pending policy (including boot-time drift and toggling back), and the new settings row; SECURITY.md and all four READMEs document the new helper modes.

Notes

  • Existing installs need ./scripts/install.sh or the next pkg to pick up the new sudoers entries; until then the toggle reverts and logs the denied helper call.
  • This overlaps with Add an opt-in Keep display awake setting #88 in the settings window, strings, and tests. Happy to rebase whichever lands second.

manovotny and others added 2 commits August 18, 2026 14:45
macOS shows a Caps Lock indicator in text fields whenever Caps Lock is
on, which is constant noise for Capsomnia users who keep Caps Lock on
for hours. The new Advanced Settings toggle suppresses it through the
system redesigned_text_cursor feature-flag override, shows a reminder
until the required restart happens, and clears the reminder if the
setting is toggled back first.

The privileged helper gains argument-restricted indicator-hide and
indicator-show modes that edit only
/Library/Preferences/FeatureFlags/Domain/UIKit.plist, preserve
unrelated flags, and delete the file when nothing else remains. The
uninstaller restores the macOS default.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ndicator-toggle-8775ee

# Conflicts:
#	CHANGELOG.md
#	README.ja.md
#	README.ko.md
#	README.md
#	README.zh-Hans.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant