13

I've just upgraded to 13.10 and noticed that dead keys are not working anymore in emacs (a keystroke to ' leads emacs to display <dead-acute> is undefined instead of waiting to the next key. In addition, use of the compose key leads to <Multi_key> is undefined and it is impossible to use keybindings such as <M-^>. Other applications work fine as far as I can tell.

A brief search on the internet suggested to (require 'iso-transl) to .emacs. This solves the first issue, but not the other ones.

Another possible workaround seen on the web is to launch emacs with an empty XMODIFIERS variable, as XMODIFIERS='' emacs, instead of XMODIFIERS= @im=ibus which seems to be the default in 13.10. Then everything works fine, but it looks like a kludge. Is there a way to make emacs work with ibus on this subject?

Update: I observe the same behavior in 14.04.

Update: content of .dmrc as asked for in comments:

[Desktop]
Session=xubuntu
Language=fr_FR
Layout=us       intl
Langlist=fr_FR:en
LCMess=fr_FR.UTF-8
8
  • The correct name of the package is iso-transl (note the dash.) Commented Oct 28, 2013 at 13:15
  • @LarsHaugseth well spotted, thanks. I've edited the question accordingly.
    – Virgile
    Commented Oct 28, 2013 at 16:36
  • I use emacs with AltGr Dead keys and it works fine.
    – Charo
    Commented Jun 28, 2014 at 14:53
  • Which version of emacs do you have?
    – Charo
    Commented Jul 2, 2014 at 15:40
  • @Charo GNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.10.7) of 2014-03-07 on lamiak, modified by Debian. I still have this issue in 14.04, I'll update the question accordingly
    – Virgile
    Commented Jul 2, 2014 at 16:12

1 Answer 1

2

Here are the things you can try.

Edit the file ~/.dmrc and make sure to set these lines on it:

Language=en_US.utf8
Langlist=en_US:en
LCMess=en_US.UTF-8

Edit the file ~/.emacs and add these lines to it instead of (require 'iso-transl):

(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(setq default-input-method "latin-1-prefix")
(defun my-set-default-input-method ()
  (set-input-method 'latin-1-prefix))
(add-hook 'text-mode-hook 'my-set-default-input-method)

You will have to add similar lines to the last one if you use dead keys with other modes in emacs (for instance, latex-mode, tex-mode, html-mode...).

Log out and then log in again.

Even so, if it ever happens to you that dead keys don't work within emacs, try to type C-\ and see if they work.

Update:

If that doesn't work, the only thing that comes to my mind, is that you define two keyboard layouts in your system settings

  • English US international dead keys (the one that you have)
  • English US

and add a keyboard layout selector in the way explained here:

How to switch language keyboard combination?

When you work with emacs, choose the "English US" layout. If you have added to your .emacs file the lines that I mentioned above, this will force your keyboard to behave as a "dead keys keyboard" within emacs. I know this can be annoying, but it's the only solution to your problem that comes to my mind.

6
  • I have added the lines in question, but this does not change anything. Neither does `C-`. Thanks for the suggestions anyway.
    – Virgile
    Commented Jul 3, 2014 at 6:55
  • Try to change some lines in your ~/.dmrc file as indicated in my answer.
    – Charo
    Commented Jul 3, 2014 at 8:06
  • But doesn't this mean that my session's language will be English?
    – Virgile
    Commented Jul 3, 2014 at 14:08
  • @Virgile: But let's see if in that way the problem disappears. After trying that, you can always come back to your french locale by modifying your ~/.dmrc file again. I have read that here.
    – Charo
    Commented Jul 3, 2014 at 16:41
  • @Virgile: See the "Update" to my answer.
    – Charo
    Commented Jul 3, 2014 at 17:55

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .