13

I'm using a Macintosh-style keyboard with Loki and would like my modifier keys to work as they do in OS X. That is, I would like:

  • to copy, paste, new window with Super (Cmd) by default and not Ctrl
  • option/alt and the arrow keys to jump whole words
  • essentially the shortcuts as the OS X column says here

I thought that by choosing the "English (Macintosh)" keyboard layout that this would happen automaticallyโ€”would that be a bug or a feature request? Is there any elementary OS-internal way to activate this? If not, what is the easiest external tool that already has a profile/config set up for this use case?

7

So I futzed around with this for a day (gsettings, built-in shortcuts, xkb, xmodmap) and no turnkey solution is forthcoming, though I filed a feature request that might lead somewhere.

In the meantime and short of rewriting the actual system shortcuts (which is the longterm solution), I'll try to list what I felt was the best way to approximate the OS X experience in elementary OS. Remember the idea is not to simply make the Super/Command key a clone of the Control key (the Control key has its own specific uses in Terminal and elsewhere).

Repurpose existing shortcuts

When a shortcut already is in use but just needs to be mapped to the familiar shortcut, AutoKey is the fastest solution for now. I suggest the following remaps (install directions follow the list):

<ctrl>+C ๐Ÿ † โŒ˜+C     copy
<ctrl>+V ๐Ÿ † โŒ˜+V     paste
<ctrl>+N ๐Ÿ † โŒ˜+N     new window
<ctrl>+T ๐Ÿ † โŒ˜+T     new tab
<ctrl>+W ๐Ÿ † โŒ˜+W     close window

<ctrl>+Z ๐Ÿ † โŒ˜+Z     undo
<ctrl>+F ๐Ÿ † โŒ˜+F     find
<ctrl>+A ๐Ÿ † โŒ˜+A     select all text

skip between... (for each, remember to add both left/right up/down pairs and to add highlight versions by adding <shift> as a separate entry)

<ctrl>+<left> ๐Ÿ † <alt>+<left>   words
<ctrl>+<up> ๐Ÿ † <alt>+<up>       paragraphs
<home> ๐Ÿ † <super>+<left>        go to beginning of line
<end> ๐Ÿ † <super>+<right>        go to end of line
<ctrl>+<home> ๐Ÿ † <super>+<up>   go to top of text
<ctrl>+<end> ๐Ÿ † <super>+<down>  go to bottom of text

To install:

  1. sudo apt-get install autokey-gtk
  2. Open AutoKey from the Applications drawer
  3. Add "New" item and put the existing shortcut in the text field (e.g., <ctrl>+T)
  4. Set the hotkey (e.g., press Cmd+T, which will show as <super>+T)
  5. Keep the rest of the defaults and repeat

You'll need to deactivate the shortcut conflicts with the Keyboard preference pane, or use these:

gsettings set org.pantheon.desktop.gala.keybindings expose-windows "['<Super><Alt>w']"
gsettings set org.pantheon.desktop.gala.keybindings expose-all-windows "['<Super><Alt>A']"
gsettings set org.gnome.settings-daemon.plugins.media-keys screensaver ''
gsettings set org.gnome.settings-daemon.plugins.media-keys terminal "['<Alt><Super>t']"
gsettings set org.gnome.desktop.wm.keybindings show-desktop "['<Alt><Super>Down']"

This solution might not behave as expected in all applications, but this is only jury-rigged until someone fills the feature request on Launchpad.

| improve this answer | |
  • I understand that it is impossible to assign Cmd+Space to switching layouts. – png2378 Sep 25 '16 at 19:41
  • @MaximTaranov, do you mean switching keyboard layouts? Or turning all of the above settings on/off? You can unmap Cmd+Space with Keyboard > Applications > Applications Launcher and reassign it as you please – wolf Sep 25 '16 at 19:55
  • 1
    @MaximTaranov, medium.com/@andv/… – wolf Sep 28 '16 at 3:17
  • 1
    @ElleryFamilia yep! "new phrase" is for simple text insertion, and "new script" is for when you want to trigger code – wolf Jun 13 '17 at 23:38
  • 1
    @ElleryFamilia Please see my blog post for a complete set of Autokey hotkeys: yimd.net/in-the-quest-of-finding-an-open-macos – danyim Sep 26 '17 at 8:46
2

I wanted to switch the Left Alt and Left Ctrl locations. I was able to accomplish this by installing the Gnome Tweak tool and adjust it under the typing settings. I think so longs as your not adjusting anything else in the gnome tweak tool you should be fine.

| improve this answer | |

Your Answer

By clicking โ€œPost Your Answerโ€, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.