Посвящается тем, кто как я (до того как составил таблицу) мучается со вводом русских букв из виндового vncclient'а при работе на юниксовом vncserver'е.
Самое простое решение, что я нашел, без всяких извратов и прочего - это:
1-х. Нужно составить таблицу соответствия виндовых keysym'ов к keysym'ам linux'a и запускать vnc4 с аргументом -RemapKeys, так у меня получилось вот что:
0xb8->0x6a3,0xe9->0x6ca,0xf6->0x6c3,0xf3->0x6d5,
0xea->0x6cb,0xe5->0x6c5,0xed->0x6ce,0xe3->0x6c7,0xf8->0x6db,
0xf9->0x6dd,0xe7->0x6da,0xf5->0x6c8,0xfa->0x6df,
0xf4->0x6c6,0xfb->0x6d9,0xe2->0x6d7,0xe0->0x6c1,
0xef->0x6d0,0xf0->0x6d2,0xee->0x6cf,0xeb->0x6cc,
0xe4->0x6c4,0xe6->0x6d6,0xfd->0x6dc,0xff->0x6d1,
0xf7->0x6de,0xf1->0x6d3,0xec->0x6cd,0xe8->0x6c9,
0xf2->0x6d4,0xfc->0x6d8,0xe1->0x6c2,0xfe->0x6c0,
0xa8->0x6b3,0xc9->0x6ea,0xd6->0x6e3,0xd3->0x6f5,
0xca->0x6eb,0xc5->0x6e5,0xcd->0x6ee,0xc3->0x6e7,
0xd8->0x6fb,0xd9->0x6fd,0xc7->0x6fa,0xd5->0x6e8,
0xda->0x6ff,0xd4->0x6e6,0xdb->0x6f9,0xc2->0x6f7,
0xc0->0x6e1,0xcf->0x6f0,0xd0->0x6f2,0xce->0x6ef,
0xcb->0x6ec,0xc4->0x6e4,0xc6->0x6f6,0xdd->0x6fc,
0xdf->0x6f1,0xd7->0x6fe,0xd1->0x6f3,0xcc->0x6ed,
0xc8->0x6e9,0xd2->0x6f4,0xdc->0x6f8,0xc1->0x6e2,
0xde->0x6e0
2-х. Нужно сообщить xmodmap'у о том, какие символы он должен знать аутофбокс так сказать. vncserver конечно и сам их добавить может, но он сопровождает это сообщениями да и заглавные литеры при этом себя ведут не очень хорошо. Так что лучше все-таки заранее добавить. Я поместил в ~/.vnc/xstartup вот такие строки:
xmodmap -e "keycode 252 = Cyrillic_shorti Cyrillic_SHORTI"
xmodmap -e "keycode 251 = Cyrillic_tse Cyrillic_TSE"
xmodmap -e "keycode 250 = Cyrillic_u Cyrillic_U"
xmodmap -e "keycode 249 = Cyrillic_ka Cyrillic_KA"
xmodmap -e "keycode 248 = Cyrillic_ie Cyrillic_IE"
xmodmap -e "keycode 247 = Cyrillic_en Cyrillic_EN"
xmodmap -e "keycode 246 = Cyrillic_ghe Cyrillic_GHE"
xmodmap -e "keycode 245 = Cyrillic_sha Cyrillic_SHA"
xmodmap -e "keycode 244 = Cyrillic_shcha Cyrillic_SHCHA"
xmodmap -e "keycode 243 = Cyrillic_ze Cyrillic_ZE"
xmodmap -e "keycode 242 = Cyrillic_ha Cyrillic_HA"
xmodmap -e "keycode 241 = Cyrillic_hardsign Cyrillic_HARDSIGN"
xmodmap -e "keycode 240 = Cyrillic_ef Cyrillic_EF"
xmodmap -e "keycode 239 = Cyrillic_yeru Cyrillic_YERU"
xmodmap -e "keycode 238 = Cyrillic_ve Cyrillic_VE"
xmodmap -e "keycode 237 = Cyrillic_a Cyrillic_A"
xmodmap -e "keycode 236 = Cyrillic_pe Cyrillic_PE"
xmodmap -e "keycode 235 = Cyrillic_er Cyrillic_ER"
xmodmap -e "keycode 234 = Cyrillic_o Cyrillic_O"
xmodmap -e "keycode 233 = Cyrillic_el Cyrillic_EL"
xmodmap -e "keycode 232 = Cyrillic_de Cyrillic_DE"
xmodmap -e "keycode 231 = Cyrillic_zhe Cyrillic_ZHE"
xmodmap -e "keycode 230 = Cyrillic_e Cyrillic_E"
xmodmap -e "keycode 229 = Cyrillic_io Cyrillic_IO"
xmodmap -e "keycode 228 = Cyrillic_ya Cyrillic_YA"
xmodmap -e "keycode 227 = Cyrillic_che Cyrillic_CHE"
xmodmap -e "keycode 226 = Cyrillic_es Cyrillic_ES"
xmodmap -e "keycode 225 = Cyrillic_em Cyrillic_EM"
xmodmap -e "keycode 224 = Cyrillic_i Cyrillic_I"
xmodmap -e "keycode 223 = Cyrillic_te Cyrillic_TE"
xmodmap -e "keycode 222 = Cyrillic_softsign Cyrillic_SOFTSIGN"
xmodmap -e "keycode 221 = Cyrillic_be Cyrillic_BE"
xmodmap -e "keycode 220 = Cyrillic_yu Cyrillic_YU"