help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Setting input method automatically whenever text is to be entered.


From: max . brieiev
Subject: Setting input method automatically whenever text is to be entered.
Date: Tue, 20 Apr 2021 18:10:05 +0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

Hi

I am quite new Emacs user. I prefer to type text using Dvorak
layout. Each time I visit new buffer or interact with minibuffer I have
to press C-\, which is rather inconvenient. So I added the following to
my .emacs file:

(defun set-dvp-input-method (mode-hook)
  (add-hook mode-hook
            (lambda ()
              (if (not (string= current-input-method "programmer-dvorak"))
                  (set-input-method "programmer-dvorak")))))

(mapc #'set-dvp-input-method
      '(text-mode-hook
        prog-mode-hook
        special-mode-hook
        minibuffer-setup-hook
        comint-mode-hook
        dired-mode
        info-mode-hook
        term-mode-hook
        Custom-mode-hook))


This works in most cases, however occasionally I still need to manually
switch to Dvorak input method with C-\ or add the major mode to the list
above, because too many major modes do not inherit from basic ones.

I wonder, is there a better way to automatically set input method
whenever my point is inside some editable area?

Basically what I want is to always enter text with Dvorak, however I am
too used to qwerty keybindings, so I don't want to change layout on OS
level.

There are also some more annoyances. In some minibuffer yes-no prompts I
have to press keys as they are located on qwerty layout, however in the
other seemingly same prompts the key needs to be pressed as on
Dvorak. Is there some way to fix this?

Thanks



reply via email to

[Prev in Thread] Current Thread [Next in Thread]