How do I keep Mac Emacs from trapping M-`?












6















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.










share|improve this question





























    6















    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.










    share|improve this question



























      6












      6








      6








      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.










      share|improve this question
















      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






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Apr 2 at 20:53









      DoMiNeLa10

      1,9941624




      1,9941624










      asked Apr 1 at 18:04









      dk.dk.

      1333




      1333






















          1 Answer
          1






          active

          oldest

          votes


















          8














          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.)






          share|improve this answer


























          • 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












          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
          });


          }
          });














          draft saved

          draft discarded


















          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









          8














          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.)






          share|improve this answer


























          • 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
















          8














          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.)






          share|improve this answer


























          • 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














          8












          8








          8







          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.)






          share|improve this answer















          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.)







          share|improve this answer














          share|improve this answer



          share|improve this answer








          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



















          • 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


















          draft saved

          draft discarded




















































          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.




          draft saved


          draft discarded














          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





















































          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







          Popular posts from this blog

          "Incorrect syntax near the keyword 'ON'. (on update cascade, on delete cascade,)

          Alcedinidae

          Origin of the phrase “under your belt”?