12

I started using Emacs and I wrote a text in Greek. The problem is that the stress that is used upon some letters (ό, ύ, ί, ύ) doesn't work!

It is usually inserted by pressing the ; (I mean by pressing the key next to L) and then the letter upon which will be inserted. That's standard for a Greek keyboard. When I press the ; it says:

<dead-acute> is undefined. 

C-h c ; says the same thing.

What can I do to be able to use this key?

It works in other applications, such as a browser. I use Ubuntu 14.04 and I installed its emacs package (Emacs 24.3.1).

6
  • I've encountered this issue myself before, but I can't remember what was the cause. Make sure your operating system isn't using a different keyboard layout for Emacs. Some OS can have application-specific keyboard layouts, so even though that key works everywhere else the problem could be in the system. If that's not it, I'm sure somebody will have your answer here. :-)
    – Malabarba
    Commented Oct 24, 2014 at 23:16
  • (Not sure if this helps.) I have this problem depending on what my OS keyboard input mode is. My default keyboard input uses 'dead keys' so I can add â©çéñtß; but I sometimes want to input (ancient) Greek in Emacs using greek-ibycus4, and the two systems clash. I work around this problem by changing my general input to a non-dead key layout (using, e.g., setxkbmap -layout us); then I switch modes in Emacs; then I switch back to the ucs input method for Emacs and run setxkbmap -layout us -variant intl to get back my dead keys. ... Not ideal!! But I don't need Greek very often either.
    – jon
    Commented Oct 25, 2014 at 3:55
  • Thank you for your comments but the problem is that stresses are basic in Greek. Almost every word needs a stress and it is obviously working everywhere else so I don't know what to do.
    – Adam
    Commented Oct 25, 2014 at 6:16
  • @Adam -- I should've also asked: what is your default keyboard layout for Ubuntu? Obviously you are not writing Greek now, so there may be a mismatch between your OS-defined keyboard layout and your input method in Emacs. In order for me to write Greek accents and breathings in Emacs, I need to first switch my "Ubuntu keyboard" to a more generic QWERTY layout. Perhaps you have a similar clash of sorts. From a terminal, setxkbmap -query will print the OS keyboard; or you can look in the unity-control-panel I think.
    – jon
    Commented Oct 26, 2014 at 17:31
  • @jon It says rules:evdev, model pc105, layout us, and when writing greek says layout: gr, us.
    – Adam
    Commented Oct 27, 2014 at 6:15

5 Answers 5

8

Try adding (require 'iso-transl) to your .emacs file.

3
  • 1
    That was the first thing that I tried and it doesn't work.
    – Adam
    Commented Dec 8, 2014 at 17:24
  • Oh, sorry about that... I had a problem similar to yours and adding that line did the fix for me, though. Commented Dec 8, 2014 at 19:36
  • Yes I know this is a common solution!
    – Adam
    Commented Dec 8, 2014 at 20:58
5

After extensive search and experimentation I found a way to succeed using the stress. Also it must be noted that is not the best way (technically it doesn't solve the problem but you get what you want). I used the following key bind command for every letter that uses a stress:

(global-set-key (kbd "<dead-acute> α") "ά")

(global-set-key (kbd "<dead-acute> ε") "έ")

etc...

Suffice to say that if anyone finds a better way is welcome to share it with us as this is obviously just a compromise.

3

Tryto launch emacs with :

env XMODIFIERS= emacs

This runs Emacs without the XMODIFIERS environment variable set, which disables input methods for just that program.

1
  • This issue just happened today on my x270 with debian 11. This solution solved it, but why?
    – RichieHH
    Commented Mar 19, 2021 at 18:11
1

Override the language switching of operating system and use MULE.

In Emacs, press C-\. It asks for an input method.

Type greek and then switch languages with C-\.

0

If your operating system or Emacs's interface to it somehow passes dead keys as such instead of processing them, you can translate the dead key combinations in Emacs itself. Use input-decode-map for that: this way, the key sequence is actually translated into a single key press, and the command loop sees a self-insert-command. This is preferable to binding the key to a macro in the global map because this breaks mechanisms that rely on text input being self-inserted, such as undo groups.

(define-key input-decode-map [dead-acute ?ο] ?ό)

You can write a loop like this:

(mapc (lambda (string)
        (define-key input-decode-map (vector dead-acute (aref string 0)) (aref string 1)))
      '("οό" "υύ" "ιί"))

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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