How do I keep Mac Emacs from trapping M-`?
I want to use the command key on my Mac as the meta key, so I customize ns-command-modifier
. But I also want to still use ⌘-` to cycle through all the windows in Emacs - just like in all other Mac apps.
If I unbind ⌘-`, then I just get an error that there is no binding for that key. I want to somehow tell Emacs not to trap that key at all.
There must be a solution because ⌘-TAB works whether or not the ⌘ key is set to be meta. But ⌘-` does not.
key-bindings osx keymap
add a comment |
I want to use the command key on my Mac as the meta key, so I customize ns-command-modifier
. But I also want to still use ⌘-` to cycle through all the windows in Emacs - just like in all other Mac apps.
If I unbind ⌘-`, then I just get an error that there is no binding for that key. I want to somehow tell Emacs not to trap that key at all.
There must be a solution because ⌘-TAB works whether or not the ⌘ key is set to be meta. But ⌘-` does not.
key-bindings osx keymap
add a comment |
I want to use the command key on my Mac as the meta key, so I customize ns-command-modifier
. But I also want to still use ⌘-` to cycle through all the windows in Emacs - just like in all other Mac apps.
If I unbind ⌘-`, then I just get an error that there is no binding for that key. I want to somehow tell Emacs not to trap that key at all.
There must be a solution because ⌘-TAB works whether or not the ⌘ key is set to be meta. But ⌘-` does not.
key-bindings osx keymap
I want to use the command key on my Mac as the meta key, so I customize ns-command-modifier
. But I also want to still use ⌘-` to cycle through all the windows in Emacs - just like in all other Mac apps.
If I unbind ⌘-`, then I just get an error that there is no binding for that key. I want to somehow tell Emacs not to trap that key at all.
There must be a solution because ⌘-TAB works whether or not the ⌘ key is set to be meta. But ⌘-` does not.
key-bindings osx keymap
key-bindings osx keymap
edited Apr 2 at 20:53
DoMiNeLa10♦
1,9941624
1,9941624
asked Apr 1 at 18:04
dk.dk.
1333
1333
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
What's going on here is that ⌘-⇥ is a low-level hotkey that can't be intercepted (a good thing, too, since it may be one of your only escape hatches if a full-screen game hangs, along with the force-quit ⌥-⌘-⎋ keystroke which is also immutable and uninterceptible).
⌘-`, on the other hand, is a command that macOS provides ordinary apps by default, but that can be reassigned or ignored completely. The way the Cocoa Emacs integration work is largely (though not entirely) by disabling Cocoa's free features (because they don't interact well with a lot of Emacs concepts) and then reintroducing the ones that made sense to the developers.
In some Mac-specific Emacs distributions, this includes window-cycling via ⌘-`, but not in the stock version.
The good news is that, having already set up your modifier keys as you like, you can now just bind a key in the normal Emacs way to the frame-cycling (Mac "windows" are Emacs "frames" while Emacs "windows" don't correspond to anything on the Mac exactly) command other-frame
, ordinarily bound to C-x 5 o.
So try M-x global-set-key
RET ⌘-` other-frame
RET. If that works, you can set up this keybind permanently in your init file(s), or whatever method you use (I don't presume to know since there are many takes on managing keybinds in Emacs, but if you don't know how, I can edit this to suggest one, just drop a comment).
(Incidentally, I may have presumed when I took your use of "windows" to mean Mac windows/Emacs frames. If I did, and you want ⌘-` to really cycle the active point through Emacs windows, including within the same frame, then instead of other-frame
, you want next-multiframe-window
, which cycles between windows regardless of frame. Note its cycling behavior is... unusual, and perhaps a bit unintuitive, though it's the only consistent way for it to work.)
Perfect answer. I use C-x 5 all the time, but didn't think to bind Cmd-` to C-x 5 o.
– dk.
Apr 4 at 0:56
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "583"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2femacs.stackexchange.com%2fquestions%2f48698%2fhow-do-i-keep-mac-emacs-from-trapping-m%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
What's going on here is that ⌘-⇥ is a low-level hotkey that can't be intercepted (a good thing, too, since it may be one of your only escape hatches if a full-screen game hangs, along with the force-quit ⌥-⌘-⎋ keystroke which is also immutable and uninterceptible).
⌘-`, on the other hand, is a command that macOS provides ordinary apps by default, but that can be reassigned or ignored completely. The way the Cocoa Emacs integration work is largely (though not entirely) by disabling Cocoa's free features (because they don't interact well with a lot of Emacs concepts) and then reintroducing the ones that made sense to the developers.
In some Mac-specific Emacs distributions, this includes window-cycling via ⌘-`, but not in the stock version.
The good news is that, having already set up your modifier keys as you like, you can now just bind a key in the normal Emacs way to the frame-cycling (Mac "windows" are Emacs "frames" while Emacs "windows" don't correspond to anything on the Mac exactly) command other-frame
, ordinarily bound to C-x 5 o.
So try M-x global-set-key
RET ⌘-` other-frame
RET. If that works, you can set up this keybind permanently in your init file(s), or whatever method you use (I don't presume to know since there are many takes on managing keybinds in Emacs, but if you don't know how, I can edit this to suggest one, just drop a comment).
(Incidentally, I may have presumed when I took your use of "windows" to mean Mac windows/Emacs frames. If I did, and you want ⌘-` to really cycle the active point through Emacs windows, including within the same frame, then instead of other-frame
, you want next-multiframe-window
, which cycles between windows regardless of frame. Note its cycling behavior is... unusual, and perhaps a bit unintuitive, though it's the only consistent way for it to work.)
Perfect answer. I use C-x 5 all the time, but didn't think to bind Cmd-` to C-x 5 o.
– dk.
Apr 4 at 0:56
add a comment |
What's going on here is that ⌘-⇥ is a low-level hotkey that can't be intercepted (a good thing, too, since it may be one of your only escape hatches if a full-screen game hangs, along with the force-quit ⌥-⌘-⎋ keystroke which is also immutable and uninterceptible).
⌘-`, on the other hand, is a command that macOS provides ordinary apps by default, but that can be reassigned or ignored completely. The way the Cocoa Emacs integration work is largely (though not entirely) by disabling Cocoa's free features (because they don't interact well with a lot of Emacs concepts) and then reintroducing the ones that made sense to the developers.
In some Mac-specific Emacs distributions, this includes window-cycling via ⌘-`, but not in the stock version.
The good news is that, having already set up your modifier keys as you like, you can now just bind a key in the normal Emacs way to the frame-cycling (Mac "windows" are Emacs "frames" while Emacs "windows" don't correspond to anything on the Mac exactly) command other-frame
, ordinarily bound to C-x 5 o.
So try M-x global-set-key
RET ⌘-` other-frame
RET. If that works, you can set up this keybind permanently in your init file(s), or whatever method you use (I don't presume to know since there are many takes on managing keybinds in Emacs, but if you don't know how, I can edit this to suggest one, just drop a comment).
(Incidentally, I may have presumed when I took your use of "windows" to mean Mac windows/Emacs frames. If I did, and you want ⌘-` to really cycle the active point through Emacs windows, including within the same frame, then instead of other-frame
, you want next-multiframe-window
, which cycles between windows regardless of frame. Note its cycling behavior is... unusual, and perhaps a bit unintuitive, though it's the only consistent way for it to work.)
Perfect answer. I use C-x 5 all the time, but didn't think to bind Cmd-` to C-x 5 o.
– dk.
Apr 4 at 0:56
add a comment |
What's going on here is that ⌘-⇥ is a low-level hotkey that can't be intercepted (a good thing, too, since it may be one of your only escape hatches if a full-screen game hangs, along with the force-quit ⌥-⌘-⎋ keystroke which is also immutable and uninterceptible).
⌘-`, on the other hand, is a command that macOS provides ordinary apps by default, but that can be reassigned or ignored completely. The way the Cocoa Emacs integration work is largely (though not entirely) by disabling Cocoa's free features (because they don't interact well with a lot of Emacs concepts) and then reintroducing the ones that made sense to the developers.
In some Mac-specific Emacs distributions, this includes window-cycling via ⌘-`, but not in the stock version.
The good news is that, having already set up your modifier keys as you like, you can now just bind a key in the normal Emacs way to the frame-cycling (Mac "windows" are Emacs "frames" while Emacs "windows" don't correspond to anything on the Mac exactly) command other-frame
, ordinarily bound to C-x 5 o.
So try M-x global-set-key
RET ⌘-` other-frame
RET. If that works, you can set up this keybind permanently in your init file(s), or whatever method you use (I don't presume to know since there are many takes on managing keybinds in Emacs, but if you don't know how, I can edit this to suggest one, just drop a comment).
(Incidentally, I may have presumed when I took your use of "windows" to mean Mac windows/Emacs frames. If I did, and you want ⌘-` to really cycle the active point through Emacs windows, including within the same frame, then instead of other-frame
, you want next-multiframe-window
, which cycles between windows regardless of frame. Note its cycling behavior is... unusual, and perhaps a bit unintuitive, though it's the only consistent way for it to work.)
What's going on here is that ⌘-⇥ is a low-level hotkey that can't be intercepted (a good thing, too, since it may be one of your only escape hatches if a full-screen game hangs, along with the force-quit ⌥-⌘-⎋ keystroke which is also immutable and uninterceptible).
⌘-`, on the other hand, is a command that macOS provides ordinary apps by default, but that can be reassigned or ignored completely. The way the Cocoa Emacs integration work is largely (though not entirely) by disabling Cocoa's free features (because they don't interact well with a lot of Emacs concepts) and then reintroducing the ones that made sense to the developers.
In some Mac-specific Emacs distributions, this includes window-cycling via ⌘-`, but not in the stock version.
The good news is that, having already set up your modifier keys as you like, you can now just bind a key in the normal Emacs way to the frame-cycling (Mac "windows" are Emacs "frames" while Emacs "windows" don't correspond to anything on the Mac exactly) command other-frame
, ordinarily bound to C-x 5 o.
So try M-x global-set-key
RET ⌘-` other-frame
RET. If that works, you can set up this keybind permanently in your init file(s), or whatever method you use (I don't presume to know since there are many takes on managing keybinds in Emacs, but if you don't know how, I can edit this to suggest one, just drop a comment).
(Incidentally, I may have presumed when I took your use of "windows" to mean Mac windows/Emacs frames. If I did, and you want ⌘-` to really cycle the active point through Emacs windows, including within the same frame, then instead of other-frame
, you want next-multiframe-window
, which cycles between windows regardless of frame. Note its cycling behavior is... unusual, and perhaps a bit unintuitive, though it's the only consistent way for it to work.)
edited Apr 2 at 20:59
DoMiNeLa10♦
1,9941624
1,9941624
answered Apr 1 at 19:02
TreyTrey
362112
362112
Perfect answer. I use C-x 5 all the time, but didn't think to bind Cmd-` to C-x 5 o.
– dk.
Apr 4 at 0:56
add a comment |
Perfect answer. I use C-x 5 all the time, but didn't think to bind Cmd-` to C-x 5 o.
– dk.
Apr 4 at 0:56
Perfect answer. I use C-x 5 all the time, but didn't think to bind Cmd-` to C-x 5 o.
– dk.
Apr 4 at 0:56
Perfect answer. I use C-x 5 all the time, but didn't think to bind Cmd-` to C-x 5 o.
– dk.
Apr 4 at 0:56
add a comment |
Thanks for contributing an answer to Emacs Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2femacs.stackexchange.com%2fquestions%2f48698%2fhow-do-i-keep-mac-emacs-from-trapping-m%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown