uim スレッド 8
Google-CGIAPI-Jpってなんで候補が5個しかでえへんの? uim-xim で xterm について uim の入力モードを切り替えたり簡単にできませんかね。
uim-fep ではなく。
shell でコマンド実行時に直接入力にするとかしてみたい。
# echo x > /proc/xxx みたいにできればいいってちょっと思ったけど、それはないだろうな。 uim-toolbar-gtk等と同様に、uim-helper-serverが開いてるUNIX domain socketに、
prop_activateメッセージを書き込めばできます。
メッセージ形式等は、doc/HELPER-PROTOCOL参照。
anthyを直接入力に切り替える例:
printf 'prop_activate\naction_anthy_direct\n\n' | socat - UNIX-CONNECT:$HOME/.uim.d/socket/uim-helper >>579
確かに簡単です。
肝心な条件が抜けていましたね。
>>580
ありがとうございます。こんなに早く回答がくるとは。
uim-sh とかで何か実行すればできるのかなーとか、
uim-sh の用途も知らずに考えていましたが、uim-helper-server ですか。
なるほど、これいいですね。
uim 以外でもこういうのあるんですかね。
socketあんまり使った覚えなかったんですが、echo x > socket じゃだめなんですね。
まあそれはしょうがないか。zsh なら zsocket もあるし。使ったことないけど。
ちなみに im(skkとか) に対する入力モード(「ひらがな」とか)のリストを取得する message ってありますかね。
というか多分ありませんよね。doc/HELPER-PROTOCOL をざっと見た感じではないようなので。
とりあえず skk の場合は↓に書いてあるようなので、必要なわけではなく、
なさそうだけどもしかして実はあるのかなーと、ただの興味だけできいています。
http://code.google.com/p/uim-doc-ja/wiki/UimSkk >>581
(確認してないですが、uim以外だと、ibusはdbusを使ってたような気も。)
入力モードというかactionリストを調べるには、例えば以下の3種類の方法があります。
1. prop_list_getメッセージの応答のprop_list_update内のaction_skk_latin等を確認。
printf 'prop_list_get\n\n' | nc -q 1 -U ~/.uim.d/socket/uim-helper
2. uim-toolbar-gtkを操作した際にソケットに流れる内容を確認する。
nc -U ~/.uim.d/socket/uim-helper
を実行した状態で、uim-toolbar-gtk上でカタカナ等を選ぶと、
uim-toolbar-gtkが送るメッセージと、それに対する応答が流れるので、
どんなメッセージを送ればいいか調べることが可能。
3. IMのソースを確認
grep register-action /usr/local/share/uim/skk.scm >>582
ないようなのでとか書いちゃったけど、ありましたね。 1. が。
しかも ja_hiragana とか skk に依存しない名前付きで。
# とりあえず知りたいだけなら 3. が速いかな。 いやー >>581 の件で
echo "prop_activate\naction_skk_latin\n" | socat - UNIX-CONNECT:$HOME/.uim.d/socket/uim-helper
とかするとたまに(あるいはしばしば) 1秒ほど xterm が止まりますね。
どうも uim-xim を待っているようだけど…
なんか特定の条件下でそうなるもんだよとか情報ありませんか?
ちなみに uim 1.8.4 >>578
xtermのuim-ximのオンオフを切り替えるその他の方法として、
shift+spaceを送り付ける方法。
xtermのAllowSendEventsを(ctrl+左クリックのメニュー等から)有効にしておいて、
xdotool search --name xterm windowactivate key shift+space
もしくは
xdotool search --name xterm windowfocus key shift+space wxGTKにてuimを使っていると
GLib-GObject-WARNING: gsignal.c: instance ... has no handler with id ...
が出る条件がわかった。
wxGTK/src/gtk/window.cppの
gtk_im_context_set_use_preedit(m_imData->context,FALSE);
を消すと出なくなる。
消してもwxTextCtrlなどでは問題なく文字が入力できるし表示されている。
テスト不足なのでどこかうまくいかない場所があるかもしれないけど…
他のIMでは出ないみたいなので
uimの use_preedit == FALSE なときのコードに問題あるっぽい気がする。 >>587
どうも。
toggle ではなく off にしたいのでそれはやめておきます。
~/.uim.d/socket/uim-helper で状態みてればいいという話もありますが。
# ~/.uim.d/socket/uim-helper に書くときも必要なときだけの方がいいかも。まあ無条件の方が楽か。
で、原因は判りました。1秒 xterm が止まっているときはこんな状態になっています。
- xterm は XSetICValues 呼んで止まっている。uim-xim のレスポンス待ち。
- uim-xim は main_loop 内の select でブロックしている。これの timeout が 1秒。
- 通常なら XSetICValues の X イベントが来ればその処理に進むはず。
ブロックする理由は以下。
uim-xim は select の結果をみて uim-helper から何か来てればそれを処理する。
この処理内で XTranslateCoordinates を呼んでいる。
このタイミング(select - XTranslateCoordinates 間)で XSetICValues の X イベントが来ると
XTranslateCoordinates が読み込んで event queue に入れる。
既に event queue に入っているものは select では検知できないので、ブロックする。
(event queue は X イベントの処理で空になるので、通常の select 時は空になっている。)
とりあえず ↓ な patch で直りましたので、これで使ってみます。いまのところブロックしてません。
# ほとんど意味がなくなるので timeout 時の check_pending_xevent を消しているけど、
# 要るんかな。1,2秒間隔 XFlush の意味しか残らないけど。
ttp://ja.pastebin.ca/2310350
# uim-1.8.4-check-xevents-queued.patch って書いたらファイル名切れた。32文字か。
しかしコマンド実行後に l を押すくせが抜けない。 >>589
そういうのはちゃんとuimのバグトラッカーに乗っけなよ。
そのほうが中の人もマージしやすいでしょ。 >>589
トグルにしたくないなら、uim-pref-gtkで、
オフ(SKKの場合は半角英数入力モード)にするキーの方だけに
"<Control>,"等を設定しておいて、外からctrl+commaを送り付ければOK。
xdotool search --name xterm windowfocus key ctrl+comma
が、現状のuim-skkだと、半角英数入力モード時に再度<Control>,を送ると
そのまま","が入力されてしまいますね。
半角英数入力モードのキー処理(skk-proc-state-latin)で
オフにするキーだったら無視する処理を追加すればいいはず。
ただし、"l"キーの場合は無視しないでそのまま通す必要あり。
2130c2130,2133
< (skk-commit-raw sc key key-state))
---
> (if (not (and (or
> (control-key-mask key-state))
> (skk-latin-key? key key-state)))
> (skk-commit-raw sc key key-state))) >>591
遅い方なのか。
日本語環境だと起動が遅かったと思うけど。
まあ xterm にしかない機能があったりするから、かな。
他にもとりこまれたりするけどね。
使ってて遅くなかった kterm にはとりこまれそうになかったし。
xterm に移行したときは日本語環境で kterm 起動 20ms、xterm 起動 1s ぐらいで確かに遅かった。起動は。
高速をウリにしている Terminal Emulator って何があったっけ? >>594
起動だったらurxvtd + urxvtcが速い
おれが言ってるのはコンパイルや子プロセスなどの処理能力のこと
gnome-terminalが圧倒的すぎる まあ daemon 使えばねえ。
つかコンパイルや子プロセス?
uim とも元の話とも離れてるしあんまりきかない方がいいかな。 日本語入力中にシフト+文字で英字打つ方法無いっすかね
これだけが唯一の不満 ~/.uim に ↓ を追加すると ↑ に書いてあることはできるよ。
(define skk-push-key (let ((orig skk-push-key)) (lambda (sc key state) (if (ichar-upper-case? key) (im-commit-raw sc) (orig sc key state)))))
SKK で。 wwwwwwwwwwwwwwwwwwwwwwwwwwwwwww さて
echo "(im-set-key-press-handler! (retrieve-im 'anthy) (lambda (uc key state) (if (ichar-upper-case? key) (im-commit-raw uc) (anthy-press-key-handler uc key state))))" >> ~/.uim
試してないので動くかは判らんが。uim-sh は通った。
scheme よく知らんからもっといい書き方があるかもね。
というか多分求めてるものと違う気はする。 A,A,S+E,S+Eの順に入力すると「EEああ」となります
求めてるものと違いましたが、お心遣い感謝します skkfepの雑草入力と小書きかな母音入力がなかなかユニークでいい。
uim-skkでも欲しいかなw
雑草入力 (ルール設定で変更可能)
wまたはkを連打することでwやkを大量かつ高速に入力できます。こうした文字は大抵の場合、
チャットにおける語尾として使われます。そのため、チャットの確定であるENTERやCTRL+Jを押すことで
(または関係ない文字を入力することで)通常のローマ字かな変換状態に戻るようになっています。
雑草入力と送りがな変換時の挙動の共存させるため、2種類の変換ルールを動的に切り替えて
処理しています。
入力例
uhawwwskkwwwww → うはwwwskkwwwww
小書きかな母音入力 (ルール設定で変更可能)
xを押した後の小文字母音はキー連打で連続入力可能です。擬音や感動詞の入力を容易にします。
入力例
uwaxaaaaa → うわぁぁぁぁぁ
http://coexe.web.fc2.com/skkfep.html >>604
あーやっぱり?じゃあこれでどうか。
anthy がどういう状態を持っているかよくわからんから
なんかよくわからんとこでよくわからんことになりそうだけど。
(define hack
(lambda (ac key state)
(let ((alnum (anthy-context-alnum ac))
(alnum-type (anthy-context-alnum-type ac)))
(anthy-context-set-alnum! ac #t)
(anthy-context-set-alnum-type! ac anthy-type-halfwidth-alnum)
(anthy-press-key-handler ac key state)
(anthy-context-set-alnum! ac alnum)
(anthy-context-set-alnum-type! ac alnum-type))))
(im-set-key-press-handler! (retrieve-im 'anthy)
(lambda (ac key state)
(if (ichar-upper-case? key)
(hack ac key state)
(anthy-press-key-handler ac key state))))
>>606
ルールってのがどういうもんかわからんけど、こーいうんじゃだめ?
((("x" "z" "w") . ("z" "x")) ("w" "w" "w"))
((("x" "s" "a") . ("s" "x")) ("ぁ" "ァ" "ァ"))
# ("z" "x") はなんで ("x" "z") じゃないんだろう。逆になるとはなあ。 >>607
ありがとうございます。今諸事情で連続運転中なので再起動後にでもご報告に参ります
有難うございました。 >>607
動いてます!!ありがとうございました!!! ところで uim は libkkc をサポートする予定はあるのかなぁ? urxvt上でuimを使っているとき、
日本語入力中に未確定の文字列が白塗りになります。
回避する方法はありますでしょうか。
.Xresourcesには
urxvt*inputMethod: uim
urxvt*preeditType: OffTheSpot
と書いています。 >>613
perl extensions で On The Spot を試してみ >>614
urxvt*preeditType: OnTheSpot
urxvt*perl-ext: xim-onthespot
としたところ、未確定文字列が白塗りじゃなくなりました。
ただ変換候補がカーソルの近くに表示されなくなった点と、変換候補の範囲が使用中の文字色で塗り潰されてしまう点が気になります。
これらは我慢するしかないのでしょうか。 俺はそういう問題起こってないから、設定が悪いだけなんじゃね? 俺も>>615で妥協してる
>>616
参考までにurxvtは256色?
他にもなんかコンパイルオプションや設定なんかで関係ありそうな項目あったら教えてほしい >urxvtは256色?
yes
文字がどうこうは変換候補に表示する為のfontが無かったりするから
なんてーのもあるんだよー
だからどうすりゃ良いかはわかるよね。
ほかにも詳しくは
man urxvt を見てくりゃれ。 urxvt じゃないとダメなのかな
背景の問題な気もするし uim で何使ってるの?
Anthy? Mozc? あー xim 使ってるのか直接 uim 指定すれば解決じゃ? .Xresourcesで
urxvt*imFont: xft:Ricty:size=13.5:antialias=true
みたいに設定しても失敗する
>>619
Anthy
>>620
.xinitrcに
uim-xim &
って書いてるんだけど
どうしたら直接uim指定できるのか分からない uim-fepは使えないのかな。
urxvt-unicodeというのもあるらしい。 >>621
uim-doc-ja
ttps://code.google.com/p/uim-doc-ja/
~/.xinitrc
-------------------------------------------
export GTK_IM_MODULE='uim'
export QT_IM_MODULE='uim'
export XMODIFIERS='@im=uim'
uim-xim &
-------------------------------------------
さらにお好みで以下の1つのツールバー
uim-toolbar-gtk &
uim-toolbar-gtk3 &
uim-toolbar-qt4 &
uim-toolbar-gtk-systray &
uim-toolbar-gtk3-systray & >>621,623
----------------------------------------
export GTK_IM_MODULE='uim'
export QT_IM_MODULE='uim'
export XMODIFIERS='@im=uim'
----------------------------------------
でうまく動かない時は ='xim' に変更したり試す
----------------------------------------
export GTK_IM_MODULE='xim'
export QT_IM_MODULE='xim'
----------------------------------------
ツールバーから uim の設定をするか以下のコマンドで設定
$ uim-pref-gtk
( uim-pref-gtk3 / uim-pref-qt4 ) でも可能 skk の接尾辞入力を変換中以外からするとき(直前が漢字じゃないときとか)って
Q> だったような気がするんだけど uim でやると > の変換が開始される。
この場合の接尾辞入力ってどうすんだっけ?
そもそもオリジナルの skk でもそうだっけ?
と思ったけどよく考えたらこれ接頭辞入力が動いているだけか。
てことはオリジナルでもこうか?
変換中以外から接尾辞入力ってなかったかな。
ツワナ語とか接尾辞入力できないんかな。
…まあ Q>x で一応できるみたいだけど。
1回キャンセルするのがアレだけど…
s. とかで接尾辞入力開始した方が楽だけど
Q>x でできるなら、そんなに必要ないかなあ… >>626
tomoe使えばできる
でも今時はオンラインの手書き入力サービスとかの方がいいんじゃね >>628
uim用のプラグインが用意されてるの他には知らんな google-cgiapi-jpで「かな入力」を使ってるとF9で全角英数に変換できない
Google日本語入力だとできるのに残念 uimの入力メソッドの切り替えが面倒。
直接→Anthy→m17n-latn-pre→直接→………
見たいに出来ないのかな? >>632
キーバインド変更すればいいじゃない。
私はON/OFFを変換無変換キーにバインドしてる RequestUim にある
・入力モード別にカーソルの色を替えられる機能が欲しい。
・「カーソルの側に入力モードを表示」のアイコン表示と使い勝手の改善
ってずいぶん長い間実現しないけど、カーソル制御をアプリから奪うのが
無理なら、ウィンドウマネージャと通信してウィンドウの枠の色を変える
ってのはどうだろう。
scheme レベルで出来ませんか? > 詳しい方 あ、もちろんウィンドウマネージャ側も受け止めてくれないといけませんけど。 特定のWM相手に実現するサンプルがあれば、それを参考に自分の使ってる
WMで頑張れるかも知れない。できなければWMを変えるw C/C++からuimを使うのにわかりやすいドキュメントやソースはありますか?
im engine の表示ができたくらいで、その先が難しく行き詰まっています。 うーん。実際にuimを利用しているサードパーティーのソフトのソースを読むしかないのかな?
mltermみたいな。 >>638
mltermですか。読んでみます。ありがとうございます。 最近 uim (gentoo) + Anthy に乗り換えて、emacs(24) でも uim.el を使い始めました。
emacs で( ) 波線が候補に出ないようなんですが、なにか設定のミスでしょうか。
uim では出ます。 最近 uim + Anthy に戻ってきた。
mlterm で Input Method を uim にした時 ON/OFF 切り替えが Shift+space から変えられないのは
ドコを設定すればいいの?
~/.uim に (define-key anthy-on-key? '("<Control> ")) とかしても効かない…。
ちなみに firefox や mlterm + XIM は正常に [Global] on の項目見てくれて、正常に使えます。 uimってlibkkcに対応してくれないのかなあ。 書いた途端に自己解決… orz
mlterm が setuid されてインストールされているのが原因だった。
libuim では setuid されてる場合、どうやらカスタム設定を無視する仕様みたい。
とりあえず chmod 755 したけど、これは mlterm 側直すのが正しいの? mlterm使いが多い(のか?)みたいだけど
自分はurxvtで不満無くuim使ってる。 uim-skkで個人辞書ファイルが読みこまれないんだけど、
uim専用個人辞書ファイルが存在すると読みこまれない仕組み? とりあえずcrontabに@rebootで辞書をマージするようにしてるけど、
どうにかなんないのかな .skk-uim-jisyo がなければ .skk-jisyo が使われる。
skk-read-personal-dictionary がそれをしている。
単純に両方読み込みたいだけならこれを上書きすればいいんじゃないかな。 まさかまたUIMに戻ってくるとは・・・。ubuntuでIbusが豪快にこけてくれたおかげで他を探してるんだがmozcを使うと安定しないなぁ。
というか、辞書登録や設定のたぐいの部分だが。
これはUIMとmozcとどっち側が悪いの? IBusかな漢字1.5.18
こだわりないから、そのまんまこれを使っている >>649 つ ttp://ekato.wordpress.com/2012/01/30/mozc_tool/ Ubuntu(Debian)はprotobufをスタティックリンクしてないのか。
ポリシーにこだわって実用性が損なわれる悪例だな。 というか、protobufの単なる設計ミスにみえるけど。直したらダイナミックリンクでもちゃんと動くよ >>634
uim-helper-server とよろしくやる方が楽かも。というか wm 側だけで済むかも。scheme free で。 >>652
なるほど。
protobufライブラリの問題ってことですか。
さすがにコンパイルするのは難しいんでどうしようかなぁ。
とりあえずprotobufがなおるまで待つしかないのか。 ibus 評判悪いから、これを機に、
mozc に uim-mozc 取り込んでくれないかな 。
自分でパッチ当てるの、めんどうだ。 uim-gtk-prefで設定をいじって「適応」を押したら、開いているアプリケーションたちを再起動させなくても設定が反映されて
「わぁ、素敵」
と思いました
そしたら~/.uimの設定が全部取り消されていて、全部のアプリケーションを再起動させないと自分のコンフィグが使えなくなって
「わぁ非道い」
と思いました
~/.uimの設定をソフトの再起動やログアウト/ログインなしで明示的に反映させるには、どうしたらいいのでしょうか ubuntuへのuim-skkの導入法を教えてください。 >>660
sudo apt-get install uim-skk >>661
ありがとうございます。
簡単だったんですね。 なんとか
uim-mozcに逃げこんで日本語打てるw libkkcに対応しなかったらuimもレガシーになりそう? ずっと使ってるエンジンにuimが対応してないんで未だにscimなんぞ使ってるんだけど、
そろそろ移行しようかなー。
今だとuimかIBusなんだろうけど、テキストターミナルのEmacsでの使用が必須なんで、
IBusはだめらしくてuimを狙っている。
で、上で話に出たlibkkcが気になるんだけど、対応していない。
プログラミングはそこそこできるんで、できれば自分で書いてみたいんだけど、
あいにくこの分野は全くの初心者なんで。
uimのプラグインの書き方とかlibkkcの使い方とか、どっかにドキュメントはないんかな。
付属しているの見てもググっても概要しか書いてないし。
ibus-kkcでlibkkcの使い方を、uim-anthyとかでuim対応を、
それぞれソースから読み取るしかないんだろうか。 >>658
~/.uim.d/customs/*.scm に ~/.uim を読むものを置く、とか。というか ~/.uim の内容をそれに移すとか。
uim-pref-gtk に消されるかな?その前に読まないか?
よくしらないが custom-add-hook で ~/.uim を読むようにする方がいいかも。
バグかな。 uim-skkは厄介だった。
タスクバーでの表示がめっさ縮んで表示された。
しかも、変換エンジンとの関連付けが難しい。 入力システムで毎度毎度頭を抱えてしまうのは、デブ系なんだよな。
レッドハット系のフェドーラだと、標準でGUIはGnome3.Xであの手のU/I
は吹き出し形式になってて、文字入力直前まで言語バーがでないように
設計されてるのですごくいいアイデアだと思ったよ。 こんな、感じの吹き出し
http://blog.du-a.org/2013/03/02/libkkc-update-week-four/
トップバーに組み込まれる、この入力システムのしくみがすごい。
skkじゃなくてKKCだった。
動画再生してるときに、ほとんど入力システムは、言語バーが表示されるじゃん。
この点については、フェドーラ19はいいねえ。 >>669
uim-toolbar使え
変換エンジン? 関連づけ? はやくuimもUTF-8にならないかな
.uimをUTF-8で書けるようにならないかな
青空文庫もUTF-8で出してくれないかな
もう文字化けと変換とエンコーディング指定はいやだあ
おれはUTF-8原理主義者になるぞおお >>674
は?
~/.uimの中身(ローマ字変換テーブル等)をutf-8で書いてるけど問題なし
ソースもすでにutf-8になってるけど
青空文庫はしらん
iconvやnkfでも使えばいいんじゃね socketのパスが%Home/.uim.d/ から /var/run/user/ に変わってたよ。
気づくまで、1時間以上、、、、 でぶあんのしどで1.8.6のソースから--with-wnnでビルドしたけど
wnn入ってねぇ