1. 23
  1. 5

    I have Caps lock set to compose key, and then à is Caps lock, a, backtick (`). Need to memorize a bunch of compose short cuts though, but it’s also available everywhere on my Linux desktop, not just emacs.

    1. 2

      Yes, compose is much more powerful. I love how it makes very easy to remember to type characters for most Scandinavian and Latin languages. Even typing ™ is just Compose+T, M.

      Long time ago, I contributed some patches to an Emacs fork for macOS similar to what the OP posted, but I still prefer compose.

    2. 3

      Nice! Back in 2015 I too wanted this behaviour, but I didn’t know enough about Emacs to get to where you did. Somebody pointed me to M-x toggle-input-method (or C-\ for short) and who knows – it might be useful to you too.

      With input-method set to “latin-postfix” you get “à” by typing “a`”. It works for all sorts of accents, and more. For example I can get the last three letters of the Norwegian alphabet, “æøå”, by typing “e/o/a/”.

      1. 2

        I also like the TeX input method; if you’re already familiar with (La)TeX, most common special characters can be entered simply by typing the TeX sequence, for example \'a gives you á and \alpha gives you α.

        Sometimes I “need” to enter some emoji; in those situations I just use M-x insert-char and then type in the Unicode name. With swiper’s autocompletion I can type any part of the name without having to know the exact full name and it shortens the list to something manageable.

      2. 1

        This looks great! Seems to hang when I undo, though. (Using Doom Emacs.)

        1. 3

          This looks great!

          Thank you.

          Seems to hang when I undo, though. (Using Doom Emacs.)

          Experiment kind of quality for sure =P

          ok, threw in a (not undo-in-progress) in there and seems to do the job. Patched the post, but may take a few minutes to show up. Here’s the snippet.

          (when (and (> end beginning)
                     (eq length 0)
                     last-edit-time
                     (not undo-in-progress) ;; <------- new
                     ;; 0.27 seems to work for my macOS keyboard settings.
                     ;; Key Repeat: Fast | Delay Until Repeat: Short.
                     (< (- edit-time last-edit-time) 0.27)
                     (float-time (time-subtract (current-time) edit-time))
                     (accent-menu-monitor--buffer-char-string (1- beginning))
                     (seq-contains-p (mapcar (lambda (item)
                                               (symbol-name (car item)))
                                             accent-diacritics)
                                     (accent-menu-monitor--buffer-char-string beginning))
                     (string-equal (accent-menu-monitor--buffer-char-string (1- beginning))
                                   (accent-menu-monitor--buffer-char-string beginning)))
            (delete-backward-char 1)
            (ignore-error quit
              (accent-menu)))
          
          1. 1

            Nice! That worked. Thanks! :)

        2. 1

          On the macOS side, I disabled this a long time ago:

          defaults write -g ApplePressAndHoldEnabled -bool false

          … because I use “hold down key to repeat”, and the accent popup drove me nuts.

          1. 1

            I’ve never bothered to disable it. But I also use Emacs for almost all text editing, so when I need to repeat a character a bunch of times I’m not doing it by holding down the key – I do it with C-u.