Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
meta key switch
;; Keybonds
(global-set-key [(hyper a)] 'mark-whole-buffer)
(global-set-key [(hyper v)] 'yank)
(global-set-key [(hyper c)] 'kill-ring-save)
(global-set-key [(hyper s)] 'save-buffer)
(global-set-key [(hyper l)] 'goto-line)
(global-set-key [(hyper w)]
(lambda () (interactive) (delete-window)))
(global-set-key [(hyper z)] 'undo)
;; mac switch meta key
(defun mac-switch-meta nil
"switch meta between Option and Command"
(if (eq mac-option-modifier nil)
(setq mac-option-modifier 'meta)
(setq mac-command-modifier 'hyper)
(setq mac-option-modifier nil)
(setq mac-command-modifier 'meta)

samspo commented Jan 16, 2013

Thanks. Very useful.

Is there any possibility to avoid modifying the behavior of the right option key so that I can enter "[]{}" when writing in emacs ?
I tried (setq ns-right-alternate-modifier nil), but it doesn't function

@samspo this mac port doesn't use the ns-* variables and the mac-* variables don't include a right option at the moment. I'm working on a patch for that.

samspo commented Feb 6, 2013

@bartebee Thank you for your answer.

pitkali commented Feb 7, 2013

@bartlebee I'd also love to see the ability to have left option work as meta, while right being good old option. I have so many keybindings using super...

meeiw commented Feb 26, 2013

+1 for (setq ns-right-alternate-modifier nil)

meeiw commented Feb 26, 2013

@samspo In the meantime I hard-wire those keys see

FeiSun commented Mar 4, 2013

I wanna use command+s to save file or command+q to quit emacs
Then how can I set the command key to its default role?
I set (setq mac-command-modifier nil)
It has no effect

jkd00 commented Nov 4, 2013

@bartlebee tried this out and found it to be snappy. also like how text is rendered. only thing keeping me from switching full-time is the lack of right-left modifier keys... too many hypers and super keybindings with stubborn muscle memory.

nice work though a+

I've been using this for a while, so much that I forgot about the setting of mac-option-modifier and was wondering why a Service that I have enabled would not work. Would it be possible that when a Hyper key combination is not matched by emacs that it could be passed up?

yyz1989 commented Jul 12, 2016

@FeiSun have you found a solution? I am looking for something similar...

@FeiSun @yyz1989 AFAICT there's no way to fully enable the default command-key behaviors, but you can add the ones you need to the snippet above. For example, (global-set-key [(hyper q)] 'save-buffers-kill-emacs) will make cmd-q quit emacs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment