Skip to content

Instantly share code, notes, and snippets.

@bravosierrasierra
Created May 26, 2017 07:02
Show Gist options
  • Save bravosierrasierra/e6b220fa5073762cd31ce1c89035a511 to your computer and use it in GitHub Desktop.
Save bravosierrasierra/e6b220fa5073762cd31ce1c89035a511 to your computer and use it in GitHub Desktop.
;; add missing ; on mac layout via H-8
(define-key key-translation-map (kbd "H-8") (kbd ";"))
(quail-define-package
"russian-no-windows" "Russian" "RU" nil
"ЙЦУКЕН Russian computer layout"
nil t t t t nil nil nil nil nil t)
;; 1! 2" 3№ 4% 5: 6, 7. 8; 9( 0) -_ =+ \/ ёЁ
;; Й Ц У К Е Н Г Ш Щ З Х Ъ
;; Ф Ы В А П Р О Л Д Ж Э
;; Я Ч С М И Т Ь Б Ю /?
(quail-define-rules
("±" ?<)
("§" ?>)
("1" ?1)
("2" ?2)
("3" ?3)
("4" ?4)
("5" ?5)
("6" ?6)
("7" ?7)
("8" ?8)
("9" ?9)
("0" ?0)
("-" ?-)
("=" ?=)
("|" ?Ё)
("`" ?`)
("q" ?й)
("w" ?ц)
("e" ?у)
("r" ?к)
("t" ?е)
("y" ?н)
("u" ?г)
("i" ?ш)
("o" ?щ)
("p" ?з)
("[" ?х)
("]" ?ъ)
("a" ?ф)
("s" ?ы)
("d" ?в)
("f" ?а)
("g" ?п)
("h" ?р)
("j" ?о)
("k" ?л)
("l" ?д)
(";" ?ж)
("'" ?э)
("\\" ?\ё)
("z" ?я)
("x" ?ч)
("c" ?с)
("v" ?м)
("b" ?и)
("n" ?т)
("m" ?ь)
("," ?б)
("." ?ю)
("/" ?/)
("!" ?!)
("@" ?\")
("#" ?№)
("$" ?\%)
("%" ?:)
("^" ?,)
("&" ?.)
;; ("*" ?\;)
("*" ?*)
("(" ?()
(")" ?))
("_" ?_)
("+" ?+)
("~" ?~)
("Q" ?Й)
("W" ?Ц)
("E" ?У)
("R" ?К)
("T" ?Е)
("Y" ?Н)
("U" ?Г)
("I" ?Ш)
("O" ?Щ)
("P" ?З)
("{" ?Х)
("}" ?Ъ)
("A" ?Ф)
("S" ?Ы)
("D" ?В)
("F" ?А)
("G" ?П)
("H" ?Р)
("J" ?О)
("K" ?Л)
("L" ?Д)
(":" ?Ж)
("\"" ?Э)
("|" ?Ё)
("Z" ?Я)
("X" ?Ч)
("C" ?С)
("V" ?М)
("B" ?И)
("N" ?Т)
("M" ?Ь)
("<" ?Б)
(">" ?Ю)
("?" ??))
;; Local Variables:
;; coding: utf-8
;; End:
;;; russian-nowinkeys.el ends here
(provide 'russian-no-windows)
@bravosierrasierra
Copy link
Author

bravosierrasierra commented Oct 3, 2017

я переключаюсь встроенной по Alt-Space при включенном punto switcher, который умеет игнорировать Emacs. Таким образом у меня во всей системе единая клавиша переключения раскладки и при этом в emacs & evil-mode русский язык работает прозрачно и без каких-либо побочных эффектов. Без этого русский и vim-режимы просто боль.

Punto у меня и под mac и под windows работает. Везде Meta-space (винда alt-space, mac cmd-space). Переключалка настроена в punto switcher. Также в punto switcher Emacs добавлен в список программ-исключений, для которых punto switcher ничего не делает. В самом emacs у меня вот такое:

; russian-no-windows: раскладка на маке, кладётся в ~/.emacs.d/manual-addons, берётся тут:   https://gist.github.com/bravosierrasierra/e6b220fa5073762cd31ce1c89035a511
(add-to-list 'load-path "~/.emacs.d/manual-addons")

;; !!! это надо делать в конце файла, иначе модули перетирают настройки метода ввода
(if (eq system-type 'darwin)
    (setq russian-input-method "russian-no-windows")
  (setq russian-input-method "russian-computer"))
(setq-default default-input-method russian-input-method)
(setq default-input-method russian-input-method)
(set-input-method russian-input-method)

(global-set-key (kbd "M-SPC") 'toggle-input-method)
(define-key isearch-mode-map (kbd "M-SPC") 'toggle-input-method)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment