Hi ben, 2015-05-22 17:28 GMT+02:00 Ben Coman <btc@openinworld.com>:
Not sure what past history we inherited, but I am questioning the semantics of our key modifiers. My understanding is that the following is industry standard... OSX Windows Linux option alt alt cmd ctrl ctrl
Yes, this is what I expected too. And I thought this is for what KMCommandModifier is used for. With that, I would expect "Character arrowLeft command" maps to Ctrl+Left for windows/linux Meta+Left for Mac (If Meta is the Command-Key on a Mac keyboard).
with Copy being the simplest example of this... cmd-c ctrl-c ctrl-c
Supporting this view: * "option" and "alternative" are synonyms * "command" and "control" have similar meaning (e.g. in the army if you command someone, you control them) * Microsoft say so (https://support.microsoft.com/en-us/kb/970299) * Apple say so (https://support.apple.com/kb/PH18812?locale=en_US) and indeed marks its keyboards with "alt" and "option" on the same key ( http://www.apple.com/au/keyboard/)
So examining this with KMLog setDebug.Transcript open.
On OSX Pharo 50044 I get... option+arrowLeft --> [keystroke '<Opt-left>'] cmd+arrowLeft --> [keystroke '<Cmd-left>'] ctrl+arrowLeft --> OS changes screens
but I am told that Windows gives... alt+arrowLeft --> [keystroke '<Cmd-left>'] ctrl+arrowLeft --> [keystroke '<Ctrl-left>']
when I believe Windows should be... alt+arrowLeft --> [keystroke '<Opt-left>'] ctrl+arrowLeft --> [keystroke '<Cmd-left>']
Part of the issue I think is that our keystroke mapping should be more abstract.
When I was using Pharo on Windows, sometimes it felt like a second class citizen wrt key mappings, mapping ctrl-c to an apple-named <cmd-c>. Perhaps what we should see is:
OSX... option+arrowLeft --> [keystroke '<Meta-left>'] cmd+arrowLeft --> [keystroke '<Hotkey-left>']
Windows... alt+arrowLeft --> [keystroke '<Meta-left>'] ctrl+arrowLeft --> [keystroke '<Hotkey-left>']
Otherwise there will always be the tension on windows that ctrl-c should generate [<keystroke '<Ctrl-c>] and we end up with definitions repetitively formed like... PharoShortcuts>>acceptShortcut ^ $s ctrl win | $s ctrl unix | $s command mac
which opens the door for inconsistencies. We should only need to do something like... PharoShortcuts>>acceptShortcut ^ $s hotkey
Isn't OSXs Command-key like MS-Windows "Window" or Linux "Meta" -key?
and leave it to the platform default or user preference the define what the hotkey actually is. A status line in the Keymap Browser could display which actual real keys map to <Hotkey> and <Meta>.
What are you thoughts? cheers -ben