HI
I have very similar issue with my custom defined keyboard layout. Here it is
;;========================================================
(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" ?Ь)
("<" ?Б)
(">" ?Ю)
("?" ??)
("§" ?<)
("±" ?>)
)
(global-set-key (kbd "M-2") '(lambda() (interactive) (insert "@")))
(global-set-key (kbd "M-3") '(lambda() (interactive) (insert "#")))
(global-set-key (kbd "M-4") '(lambda() (interactive) (insert "$")))
(global-set-key (kbd "M-5") '(lambda() (interactive) (insert "%")))
(global-set-key (kbd "M-6") '(lambda() (interactive) (insert "^")))
(global-set-key (kbd "M-7") '(lambda() (interactive) (insert "&")))
(global-set-key (kbd "M-8") '(lambda() (interactive) (insert "*")))
(global-set-key (kbd "M--") '(lambda() (interactive) (insert "—")))
;; Local Variables:
;; coding: utf-8
;; End:
;;; russian-nowinkeys.el ends here
(provide 'russian-no-windows)
;;========================================================
Here is my flyspell rules:
(add-to-list
'ispell-local-dictionary-alist
'("russian" ; combo english+russian
"[a-zA-ZАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯабвгдеёжзийклмнопрстуфхцчшщьыъэюя]"
"[^a-zA-ZАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯабвгдеёжзийклмнопрстуфхцчшщьыъэюя]"
"[-']"
nil
("-d" "en_US,ru_RU")
nil utf-8))
When flyspell mode is turned off everything works OK, but with flyspell turned on I get strange behavior of "," and "." symbols which are mapped to "^" and "&" (which are Shift+6 and shift+7. Usually I want type "," at the end of the word and it doesn't work. "б" typed instead. But when I type shift+6 in the beginning of the word, I am getting ",", but any subsequent shift+6 gives me "б" again.
What I want:
Здравствуйте, товарищ!
What I got:
I believe it related to fact that I have rules "^" -> "," and "," -> "б", but on emacs 24.3 everything worked just fine and still working without flyspell.
Thanks in advance,
Sergei