Asahi and GNOME teams, please take this as an guide to implement ”Mac input compatibility mode”!
Dual booting between a MacOS and Linux is a painful process of manual keyboard and shorcut overrides to get the linux side somewhat to the (better) mac way of doing this.
The delete key thing comes from how Windows descends from DOS which always had the cursor ON a character (blinking box kind of thing) whereas the Mac had the cursor as a thin line BETWEEN characters.
Technically DOS could have had "backspace" (delete the character BEFORE the cursor), "delete" (delete the character on/under the cursor), and "forward delete" (delete the next character AFTER the cursor).
That's how it is by default but doesn't approximately everyone, when they first plug a non-Mac external keyboard into their Mac, immediately go to System Settings -> Keyboard -> Modifier keys and switch Command with Option?
Otherwise it would be really confusing when you switch from your external keyboard to the laptop keyboard.
Most newer keyboards I know have a toggle so the CMD and ALT switch in software. I had to switch from Mac to Win and Linux so often that I simply kept my CMD key where Super or Win is located and got used to it. Still sometimes weird when I use an actual Mac keyboard.
I do this as well as swap command/option on the built in keyboards. It works great for me switching between my own computers/OSes but always a second of re-calibration when I touch someone else's Macbook.
Logitech in particular do this. Their keyboards adapt to the OS so the keys are in the right place, not sure if this needs their drivers or not though.
I recently got a Linux desktop after being Mac-only for a long time and using Linux only as a deploy target, and holy shit: the modifier key situation on PCs is so bad.
Control specifically is just a terrible modifier key for common things like edit commands. First, it sits near your pinky instead of your thumb, making chording it with Z, X, C, V, etc., really difficult.
But then... who decided that ctrl-c should be used for both copy and abort??? That's diabolical levels of messed up. In a terminal app ctrl-c aborts, so you need to use shift-ctrl-c to copy, and now you have two shortcuts for the same operation you need to remember based on context, except that in a web-based terminal in Chrome shift-ctrl-c opens "Inspect Element Mode" and now you have no way to copy!
Am I the only one who finds this astoundingly frustrating?
You're right, but it's fixable: remap Ctrl and Alt permanently with sharpkeys then do a few rebinding fixes in something lik. Autohotkey. Your main modifier should indeed be a thumbs key just like on a Mac
Ctrl-C dumb double function can also be fixed, use it to copy everywhere universally (use a better terminal with an override) and rebind cancel
> who decided that ctrl-c should be used for both copy and abort???
As usual in most of these cases, there wasn't really a single decision, just some historical artifact no one had the care to think about and fix, so it lingers in defaults
Historically, of course, copy and paste on a Unix machine was a mouse thing and followed X11 conventions. You selected text with the left mouse button — automatically be saved to the primary clipboard just by virtue of being selected, no key press needed — and the middle mouse button pasted it at the location you clicked.
This is somewhat different to having the two part motion/action of select/control-C and click/control-V. It’s boiled down to just select and middle-click. Separately, you can often use shift-Insert to paste the primary buffer.
Nope, it is a crying shame the early Linux/Unix desktop environments copied the Windows/IBM CUA shortcuts and now we have to fight every app and every different method there is for setting keyboard shortcuts to fix it. The Ctrl key was already claimed for use in the terminal for signals and line navigation.
> First, it sits near your pinky instead of your thumb
It's not bad if you have a keyboard (e.g. topre) with control in the caps-lock position (or remap it, which I usually do).
And I also agree that the Lisa/Mac-style command-[zxcv] works really well (particularly if you use a mouse with your right hand.)
MacOS has no problem with both control-c (break) and command-c (copy) - why isn't this common in Linux as well (at least for keyboards with a command or windows key, which seems to be many, many keyboards.)
I entirely agree. At $NEWJOB, I had a Linux laptop for a bit while a Mac was on backorder.
Not being able to cut/paste easily because every tool used the Control key for something different, especially in the terminal, was infuriating.
Having the command key handle these kinds of GUI-focused interactions, and Control for most of the terminal-centric and text manipulation (Ctrl-A/E for beginning/end of line, from Emacs) makes the system great to work with.
I didn't mind anything else about my foray into Linux as a desktop OS. If we could get a Linux GUI distro that all it did was match the Mac command key paradigm, I think it would make a lot of people happy.
Of (home,end,pgup,pgdown,delete,backspace) the mac has just backspace. And they have just a single control key and such. Clearly the mac keyboard is designed by people that have no idea how to type. There's no "standard windows keyboard" anymore, but even the worst is still worlds better than whatever apple puts out.
I significantly prefer the Mac way of chording Option or Command with arrow keys to achieve those functions. One of the main reasons I can't get used to Linux desktops is that I can't use Opt-arrow to navigate by word and Cmd-arrow to navigate by line. Cmd-arrow makes much more sense than a dedicated Home and End button imho.
As a sibling comment notes, Caps Lock as Control helps a lot but it's still not as nice as Command-based shortcuts, both in hand positioning and in terms of shortcut overlap.
The most [1] annoying difference to me is the Alt/Cmd vs Win/Alt key swaps. In this case, Mac has precedence, and Microsoft decided they would place their new Windows key to the left of Alt.
Also, 10 whippings for whomever at Apple decided to put the Fn/Globe key to the bottom left of laptop keyboards, and move Ctrl over. It's the first thing I swap on a Mac (used to use Karabiner, until macOS finally, years later, decided to implement the setting), and I always trip when using a colleague's laptop. These kids don't respect no traditions!
.. that rant over, I must recognize that Ctrl isn't used as much in GUI apps which prefer Cmd, and only us relatively few terminal junkies care.
[1] second most, perhaps, after swapping Delete & Backspace.
Tapping modifiers keys is something you might want to do.
I know many people on smaller keyboards map a single Control tap as ESC.
The only thing special about windows, is that the OS gets to own the Win key completely, which is something not too crazy and I sort of like the idea of ensuring their global shortcuts are always available.
Dual booting between a MacOS and Linux is a painful process of manual keyboard and shorcut overrides to get the linux side somewhat to the (better) mac way of doing this.
https://en.wikipedia.org/wiki/Command_key
Technically DOS could have had "backspace" (delete the character BEFORE the cursor), "delete" (delete the character on/under the cursor), and "forward delete" (delete the next character AFTER the cursor).
The "Start" or Windows key is the same as the "Command" key
"Alt" is the same key as "Option"
This is how every keyboard I've ever used has worked. This is usually how they work when you plug a PC keyboard into a Mac or vice-versa.
Otherwise it would be really confusing when you switch from your external keyboard to the laptop keyboard.
Control specifically is just a terrible modifier key for common things like edit commands. First, it sits near your pinky instead of your thumb, making chording it with Z, X, C, V, etc., really difficult.
But then... who decided that ctrl-c should be used for both copy and abort??? That's diabolical levels of messed up. In a terminal app ctrl-c aborts, so you need to use shift-ctrl-c to copy, and now you have two shortcuts for the same operation you need to remember based on context, except that in a web-based terminal in Chrome shift-ctrl-c opens "Inspect Element Mode" and now you have no way to copy!
Am I the only one who finds this astoundingly frustrating?
Ctrl-C dumb double function can also be fixed, use it to copy everywhere universally (use a better terminal with an override) and rebind cancel
> who decided that ctrl-c should be used for both copy and abort???
As usual in most of these cases, there wasn't really a single decision, just some historical artifact no one had the care to think about and fix, so it lingers in defaults
Historically, of course, copy and paste on a Unix machine was a mouse thing and followed X11 conventions. You selected text with the left mouse button — automatically be saved to the primary clipboard just by virtue of being selected, no key press needed — and the middle mouse button pasted it at the location you clicked.
This is somewhat different to having the two part motion/action of select/control-C and click/control-V. It’s boiled down to just select and middle-click. Separately, you can often use shift-Insert to paste the primary buffer.
Toshy can help but it's still not a perfect fix.
First claim has no priority over better claim. Designs can and should improve
Ctrl-C doing different things come from different os/software lineages
It's not bad if you have a keyboard (e.g. topre) with control in the caps-lock position (or remap it, which I usually do).
And I also agree that the Lisa/Mac-style command-[zxcv] works really well (particularly if you use a mouse with your right hand.)
MacOS has no problem with both control-c (break) and command-c (copy) - why isn't this common in Linux as well (at least for keyboards with a command or windows key, which seems to be many, many keyboards.)
Not being able to cut/paste easily because every tool used the Control key for something different, especially in the terminal, was infuriating.
Having the command key handle these kinds of GUI-focused interactions, and Control for most of the terminal-centric and text manipulation (Ctrl-A/E for beginning/end of line, from Emacs) makes the system great to work with.
I didn't mind anything else about my foray into Linux as a desktop OS. If we could get a Linux GUI distro that all it did was match the Mac command key paradigm, I think it would make a lot of people happy.
https://www.apple.com/shop/product/mxcj3ll/a/magic-keyboard-...
I see on that Apple keyboard:
• two control keys
• two option keys
• two command keys
• delete (aka backspace)
• forward delete (aka delete)
• home
• end
• page up
• page down
As a sibling comment notes, Caps Lock as Control helps a lot but it's still not as nice as Command-based shortcuts, both in hand positioning and in terms of shortcut overlap.
Also, 10 whippings for whomever at Apple decided to put the Fn/Globe key to the bottom left of laptop keyboards, and move Ctrl over. It's the first thing I swap on a Mac (used to use Karabiner, until macOS finally, years later, decided to implement the setting), and I always trip when using a colleague's laptop. These kids don't respect no traditions!
.. that rant over, I must recognize that Ctrl isn't used as much in GUI apps which prefer Cmd, and only us relatively few terminal junkies care.
[1] second most, perhaps, after swapping Delete & Backspace.
I know many people on smaller keyboards map a single Control tap as ESC.
The only thing special about windows, is that the OS gets to own the Win key completely, which is something not too crazy and I sort of like the idea of ensuring their global shortcuts are always available.
That's me! readline everywhere by default is fantastic and should be immediately copied by every Linux DE!