On 23 May 2015 6:36 am, "Nicolai Hess" <nicolaih...@web.de> wrote: > > Hi ben, > > 2015-05-22 17:28 GMT+02:00 Ben Coman <b...@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 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). No. On a Mac the "command" key is "Cmd" -- hence why I think we should not call it "command" internally, to help maintain platform independent semantics. >> >> 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? > No. I know they both have nice icons, but they are not the same. You don't use the windows key to copy text. Cheers -ben > >> >> >> 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 >> >