private KeyBindingData checkForFallbackKeybindingCondition(KeyBindingData keyBindingData) {

		if (keyBindingData != null) {
			KeyStroke newKeyStroke = keyBindingData.getKeyBinding();
			if (newKeyStroke != null) {
				// we have a valid value; the current keybinding data is what we want
				return keyBindingData;
			}
		}

		// check to see if we have a fallback value         
		ScriptInfo info = infoManager.getExistingScriptInfo(script);
		KeyStroke metadataKeyStroke = info.getKeyBinding();
		if (metadataKeyStroke == null) {
			// there is no fallback value; the current keybinding data is what we want
			return keyBindingData;
		}

		// there is a fallback metadata value, we want to make that the current keybinding
		return new KeyBindingData(metadataKeyStroke, keyBindingData.getKeyBindingPrecedence());
	}
Signals that the keybinding value has been set by the user from the GUI (used for persistence)
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/script/ScriptAction.java