Home > Apple > Mac

How to Turn off Caps Lock Icon on macOS Sonoma [Video]

In this guide, we will show you the steps to turn off the Caps Lock Indicator icon on macOS Sonoma. While the fourteenth iteration of the OS does behold a slew of intriguing feature, there are a few that doesn’t really add up. In this regard, one of the most non-sensical features released by the Cupertino giant is the new caps lock indicator. When you have this key enabled, it will show you its indicator in the text field.

Turn off Caps Lock Icon on macOS Sonoma

Apart from being intrusive and annoying, we really fail to understand the motive behind adding this functionality. If you are a user who prefers to type while looking at the keyboard instead of the screen, then you will be easily notified whether the Caps Lock is enabled or not by the LED light present on that button. On the other hand, if you prefer to view the screen while typing, then you’ll be able to clearly see the alphabets being typed in the uppercase.

Turn off Caps Lock Icon on macOS Sonoma

What is making the matter even worse is the fact that Apple decided to force this feature onto us. It could have treated this as an accessibility feature and given us the option to disable and re-enable it as and when required. But while that isn’t the case, a bunch of developers did manage to find out a nifty workaround using which you could turn off the Caps Lock Indicator icon on macOS Sonoma. So without further ado, let’s check it out.

How to Turn off Caps Lock Icon on macOS Sonoma

There exist two different methods of getting this job done, either via Terminal or using a Java Script. We have listed both these methods below, you may try out the which is in sync with your requirements:

Via Terminal

  1. Head over to Launchpad > Others > Terminal.
  2. Then type in the below command in Terminal:
    sudo mkdir -p /Library/Preferences/FeatureFlags/Domain
    sudo /usr/libexec/PlistBuddy -c "Add 'redesigned_text_cursor:Enabled' bool false" /Library/Preferences/FeatureFlags/Domain/UIKit.plist
  3. Finally, restart your Mac and the task stands complete.

Via Java Script

You can use the JXA script below to create the PLIST with the required values. Just copy everything into Script Editor, change the language to JavaScript, and press play [more information given below this code]. Once you have executed this code, make sure to restart your Mac for the changes to take effect.

#!/usr/bin/env osascript -l JavaScript

const App = Application.currentApplication();
App.includeStandardAdditions = true;

const kCFPrefsFeatureFlagsDir = '/Library/Preferences/FeatureFlags/Domain';
const kCFPrefsFeatureEnabledKey = 'Enabled';

const kUIKitDomainPrefsTemporaryPath = '/tmp/UIKit.plist';
const kUIKitRedesignedTextCursorKey = 'redesigned_text_cursor';

function run(_) {
  const dict = $.NSMutableDictionary.new;

  const enabled = $.NSMutableDictionary.new;
  enabled.setValueForKey(false, kCFPrefsFeatureEnabledKey);

  dict.setValueForKey(enabled, kUIKitRedesignedTextCursorKey);

  const error = $();
  dict.writeToURLError(
    $.NSURL.fileURLWithPath(kUIKitDomainPrefsTemporaryPath),
    error,
  );

  if (typeof error.js != 'undefined') {
    return `🫤: ${error.localizedDescription}`;
  }

  return App.doShellScript(
    [
      `mkdir -p '${kCFPrefsFeatureFlagsDir}'`,
      `mv '${kUIKitDomainPrefsTemporaryPath}' '${kCFPrefsFeatureFlagsDir}'`,
    ].join(' && '),
    {
      administratorPrivileges: true,
    },
  ).length == 0 ? '😃' : '🫤';
}

True to my knowledge, it creates the folder: /Library/Preferences/FeatureFlags/Domain and then a file UIKit.plist with this content:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>redesigned_text_cursor</key>
    <dict>
        <key>Enabled</key>
        <false/>
    </dict>
</dict>
</plist>

That’s it. These are the two different methods that should help you turn off the Caps Lock Indicator icon on macOS Sonoma. If you have any queries concerning the aforementioned steps, do let us know in the comments. We will get back to you with a solution at the earliest.


Share:
  • mr. screwed over

    did this. restarted and now locked out! NO Users found, so recovery doesn’t work either. Nice. this blows.

  • Thanks for posting this! I appreciate the help…

    CS

  • That’s not JavaScript where you defined the plist file. Also, you didn’t instruct as where the plist file is supposed to reside on the filesystem.

    • I meant “…didn’t instruct as to where…”

      • Sadique Hassan

        Hi Briggs, I have updated the content and made the necessary code changes for further clarification.