DocsSecure keyboard input

Fig and Secure Keyboard Input

Secure Keyboard Input is a feature on MacOS that prevents apps from intercepting key events sent to other apps when typing in private information, like passwords.

When Secure Keyboard Input is enabled, Fig cannot provide autocomplete suggestions.

Apple published a technical note providing guidance for when it is appropriate to enable Secure Keyboard Input:

Use EnableSecureEventInput only when needed, that is when the keyboard focus moves to a private data entry field. When the keyboard focus changes to a non-secure text field, or when your process detects that it is losing keyboard focus, call DisableSecureEventInput.

In most cases, apps will enable it temporarily — when sensitive information is being entered. However, certain apps like iTerm and Terminal allow the user to choose whether to keep it enabled all the time. Fig will never be able to provide suggestions when this option is selected.

Disable in Terminal

Secure Keyboard Entry in Terminal

In the menu bar, go to Terminal > Secure Keyboard Entry and make sure that the setting is disabled.

Disable in iTerm

Secure Keyboard Entry in iTerm

In the menu bar, go to iTerm > Secure Keyboard Entry and make sure that the setting is disabled.

If the checkbox cannot be unselected, iTerm has detected that Secure Input is enabled but it is not the responsible application.

To figure out how to disable it, continue to the troubleshooting section.

Conflicts with Password Managers (1Password, BitWarden)

Certain password managers enable secure keyboard entry when entering your master password, but then occasionally will fail to disable it afterwards.

If you use 1Password, Bitwarden or another password manager, quit the application and then check Fig's debugger to see if Secure Keyboard Entry is still enabled.

Note: if you are quitting 1Password, please make sure you completely quit it, not just normal cmd+q quit

Quit 1password

If your password manager was responsible, simply restarting it will resolve the issue. Otherwise, continue to the troubleshooting section.

Troubleshooting

Sometimes other applications enable Secure Input but then fail to turn it off when it is not longer needed.

Secure Keyboard Entry in Debugger

Clicking the Fig icon in the menubar > Debugger will display the app that is responsible for enabling Secure Keyboard Input.

If this information doesn't appear in the Debugger or the steps above haven't resolved the issue, then run the following command:

ioreg -l -w 0 |  tr ',' '\n' 2&> /dev/null | grep kCGSSessionSecureInputPID | cut -f 2 -d = | uniq | xargs ps -o command= -p

Secure Input is enabled by Loginwindow Console

There appears to be a bug with MacOS, where sometimes the login window doesn't terminate (and disable Secure Input) once the user has logged in. (Source)

To fix this, you need to return to the lock screen and then log back in.

Tip: You can use the `⌃ Control` `⌘ Command` `Q` hotkey to quickly go to the login screen.

If logging in does not resolve the issue, try restarting your machine.

Another app is responsible

If the app that shows up isn't a terminal or the loginwindow, TextExpander has helpfully complied a list of apps that trigger Secure Keyboard Input and how to resolve the issue.