起きたら午後もいい時間。寝すぎ。
東京都コロナ感染者。新規は215人。
テスト版ですが更新したw32-imeを含んだEmacs-27.1のパッチを
放流してみます(emacs-w32_27.1_20201030_test.patch.xz)。
ファイル名は昨日付けです。ビルド方法やインストール方法は
こちらのページ
の手順に準拠します。w32-imeに関係する箇所以外のパッチは emacs-w32_27.1_20200901.patch.xz と
同じです。御興味ありましたら遊んでみてください。
変更点は主にw32-imeに関連する機能で、設定によってW32-IME以外の
input-method(以下IM)に切り替える事ができないバグを直したりしています。
(set-language-environment "Japanese") (load "international/w32-ime" t) (when (eq 'w32 (window-system)) (when (featurep 'w32-ime) (setq w32-ime-buffer-switch-p nil) ; 全バッファでW32-IME状態同期 (setq default-input-method "W32-IME") (setq w32-ime-mode-line-state-indicator-list '("[-]" (format "[%s]" current-input-method-title) "[-]")) (setq w32-ime-input-method-title "あ") (setq-default mode-line-mule-info `("" ,(propertize "%z" 'help-echo 'mode-line-mule-info-help-echo 'mouse-face 'mode-line-highlight 'local-map mode-line-coding-system-map) (:eval (mode-line-eol-desc))) ) (w32-ime-initialize) (defun w32-isearch-update () (interactive) (isearch-update)) (define-key isearch-mode-map [compend] 'w32-isearch-update) (define-key isearch-mode-map [kanji] 'isearch-toggle-input-method) (define-key isearch-mode-map "\C-o" 'isearch-toggle-input-method) (add-hook 'isearch-mode-hook (lambda () (setq w32-ime-composition-window (minibuffer-window)))) (add-hook 'isearch-mode-end-hook (lambda () (setq w32-ime-composition-window nil))) ))
$ grep dpiA nt/emacs-*.manifest nt/emacs-x64.manifest: <dpiAware>true</dpiAware> nt/emacs-x86.manifest: <dpiAware>true</dpiAware>2020/10/30
テレワーク。遅めに終了。
東京都コロナ感染者。新規は204人。
w32-imeのテスト。普段使いでテストしてみる事に。
てか、W32-IME以外のinput-methodを使わなければ、これまでと動きも違わないので
あまりテストになりませんが(^^;
テレワーク。遅めに終了。
東京都コロナ感染者。新規は221人。減らないねぇ。
w32-imeのテスト。なんかイケた気がする。
テレワーク。遅めに終了。
東京都コロナ感染者。新規は171人。
全国的にこの2か月ほど新規感染者数の推移は横ばいになっていますが、
これはどういう状況なのだろうと思ったりも。
理論上は防止対策による現象率が感染率よりも高ければ、かかる時間は
ともかく減少するハズです。多少人が動いたところで、
感染防止対策が出来ていれば増加する事にはなりません。
今日時点で全国の累計感染者数は98,259人のようですが
割合としては約1300人に一人の割合なので、かなり稀な確率だと感じます。
これだけ稀な確率で感染した人が、感染予防のできている状況に置かれたと
してもそれ以上感染が広がる事にはなりません。
結局、減らないという結果から言える事は、稀な確率でしか感染しない
人の周りでは感染予防ができていない、と考えないと辻褄が合いません。
今やクラスターを起こさないように対策もあれこれ試されていて、
今のところスポーツ観戦などでクラスターの発生は無い
(ただし選手は何故かクラスターで感染したりして、なんなん?と
思う所はありますが)ところを見ると、何故感染したの?の方が謎に思えます。
北海道の対策要請。北海道は5月
頃から十人くらいをずっと維持しててなんなの?と思う所はありました。
ちょっと力を入れればすぐにゼロに向かうと
以前にも思ったのですが、
そもそもどういう感染の仕方をしているのか分析できているのだろうか?
とは思ったりも。
w32-imeのテスト。w32-ime-buffer-switch-pがtの場合、今のままだと
原理的に対応不可能に思えてきたりも。
唯一アクティブなフレームを取得できないかと探してみるも今あるものでは出来なさそう。
src/w32fns.cを実験的に弄って、ime-get-modeの中で動きを観察してみるも
複数のフレームから実行されている感じになっていました。
Win32APIでフォーカスを得ているウインドウハンドラを取得してみると、
意図したウインドウハンドラが得られる模様。で、思った訳ですが、
フレームが切り替わる事自体は問題ではなくて フォーカスの無いフレーム
からimeのステートをon/offしたときに 操作できてしまうのが問題なのだから、
フォーカスの無いフレーム内のバッファから ime-force-on や ime-force-off
を実行しても、関数の中でフォーカスの有無を検査して無視すれば良いんじゃね?
と思ったり。試しに書き換えてみたところ良好な反応になった気が。
テレワーク。遅めに終了。
東京都コロナ感染者。新規は158人。
文化功労者にすぎやまこういち氏。以前ドラクエXIの発表会の
時にも随分なお爺ちゃんだった訳ですが
現在89歳ですか。
w32-imeのテスト。マルチフレームで動きが不穏になるのを調べては直したり(壊したり(^^;)。
でもまだダメ。てかずっと前からダメだったのが、周りを変えた事で露見したのでは?
という気がしてきたりも。
テレワーク。遅めに終了。
東京都コロナ感染者。新規は102人。月曜だしな。ただいつもの月曜よりは多い気も。
あまりの眠さに急速停止。
AM中に起床。
掃除したり洗濯したり。
東京都コロナ感染者。新規は124人。
w32-imeのテスト。マルチフレームにしたときの動作が不穏に。うーむ?
どうやら、二つあるframe(便宜上frame1とframe2と呼びます)の中にそれぞれ
異なるバッファが表示されている状態で、frame1のバッファでは変数をon
にしてるけどframe2のバッファでは変数をoffにしているという状況が起こって
ました。そこでフォーカスされていないframeでは変数の操作を行わないように
したいと思った訳ですが、Windows上の見かけ上はアクティブではない
frame(Windows上のウインドウ)が選択されている事があり
、関数 selected-frame で調べても二つのframeを交互に選択しているような
動きになってました。
なので、このframeのこのwindowならば操作する...のように操作を行うケース
を一つに絞りたいのですがそれができなくて困ってみたり。
昼過ぎ起床。寝すぎ。
東京都コロナ感染者。新規は203人。今週は数の変化にイズが無かったな?
Emacsのmode-line-format。
今まで興味が無さ過ぎてどういう仕組みで表示しているのか全く知らなかった
のですが、
こちら
のドキュメントでどのように記せば良いのかなんとなく判ってみたり。
mode-line-format のリストに含まれる変数は「("" ...」で始めて
いるのが多くあり、なんの事だかよく判らなかったのですが
「リストの最初の要素が文字列またはリストであるような....」を
強制している感じなのかというのが判ったりも
でも、やっぱり :propertize や :eval シンボルを含むリストは自分で
弄っていると機能していない気がしたり。
その後、:propertize や :eval を反応させるには、変数のプロパティ(?)
を追加する必要があった模様。
例えば「(put 'w32-ime-mode-line-state-indicator 'risky-local-variable t)」
という感じでrisky-local-variableてシンボルをtにする必要があるようです。
というのを踏まえて前述のドキュメントを見てみるとなんとなく記されている
のですが、読み返しても何を言っているのかはサッパリ判りません(^^;
なんやかんやとありましたが、どうにかw32-imeのインジケータを
W32-IME以外の input-methodに対応して、ついでに
mode-line-mule-info と同じようにマウスでトグルしたりヘルプを出すように
してみたり。
見た目は mode-line-mule-info と何が違うのか判らない感じですけど(^^;
テレワーク。遅めに終了。
東京都コロナ感染者。新規は186人。明日急に来るパターンか。
Emacsのmode-line-formatを弄っているのですがどうにもよく判らず。
例えば lisp/bindings.el の mode-line-client を参考に
反応を見てみたのですが、:propertize や :eval といったシンボルが
何も機能していない気も。でも、定義済の 変数mode-line-clientを
弄ると変更が反映されるのでちゃんと機能しているのだよなぁ?なんだこれ?
テレワーク。遅めに終了。
東京都コロナ感染者。新規は185人。今週の木曜は抑えられているな。
と思わせて明日が多いパターンだったりして?
変数名が違うだけで中身を同じに設定しているつもりなのに
何故か同じように動かない。
テレワーク。遅めに終了。
東京都コロナ感染者。新規は150人。
Webを検索していて
こちらの記事
の存在を知ったり。フランスの事情について述べられています。
これによると
「少なくとも筆者は公共の交通機関内で、マスクをしていない人は今まで三人しか見たことがない。そのうち二人は、明らかに外国人旅行者に見えた。全員マスクをしていると言ってもいいと思う。店などの入り口にも、滅菌ジェルが置いてあることは普通である。日本と等しく、ほとんどの人が使っている。」と
記されています。う~~~ん?? 検査数の話とか色々述べられているのですが、
事実として感染予防の日常的な習慣(対策)の効果が感染者数の結果に反映されていないのはなんで?
と思えます。「感染しないように行動してるにも関わらず感染した」
のであれば、そのメカニズムを説明して欲しいように思えます。
ここでは何度も書いていますが「やってるつもりができていない」
んじゃないの? そうでなければ色々と説明が付かないように思えます。
もそもそとコーディング。うまくいかず。
テレワーク。遅めに終了。
東京都コロナ感染者。新規は139人。
そういやフランスでは夜間外出禁止にするようですが、
確かにヨーロッパ諸国のここ1か月くらいの新規感染者数の増え方は
異常に思います。まぁ、感染防止対策ができていないからでしょうけど。
EmacsでのW32-IMEとその他のinput-methodの切り替え。
デフォルトで起動するIMを設定する 変数default-input-methodと
バッファでIMがONかOFFかを保持する変数current-input-methodが
あるのですが、関数 set-input-method でIMを切り替えると
default-input-method も切り替わりそうな感じになってて、
バッファ毎にIMを切り替える事ってできなくね?と思ったり。
でも、よく見てみると 変数input-method-history というのがあって、
これが直近起動したIMを保持しているらしい。事実上
input-method-historyの最新の履歴が現在のバッファが
選択しているIMを示す感じになっているみたい。
というのを踏まえて、W32-IMEの全バッファ同期モードとの
同居を試みたり。流石にいくつか弄らないとうまい感じには
なりませんが、所望の感じになったようなそうでもないような。
もう少し色々試してみないとダメかも。
テレワーク。遅めに終了。
東京都コロナ感染者。新規は78人。月曜だしな。
あまりの眠さに急速停止。
AM中に起床。
掃除したり洗濯したり。
東京都コロナ感染者。新規は132人。
先日のEmacsでの日本語以外の入力の話。
今使っている設定だと 他言語のIM(input-method)に切り替えた
(M-x set-input-method)つもりが切り替わらない感じになってました。
どうやら「(setq w32-ime-buffer-switch-p nil) ; 全バッファでIME状態同期」
にすると、Emacs本体の組み込み関数(ime-get-mode)で得られた内部のW32-IMEの
状態に、ELISP上のIMの状態を合わせる仕組みが働くのですが、他言語の
IMの時にもそれが機能していて、例えば中国語input-method(の一つ)
chinese-py に設定しても、直ぐにEmacs本体の W32-IMEの状態(IMがOFFの状態)
に合わせられて、見かけ上 chinese-pyを有効な状態にできないという感じになっているようです。
使用するinput-methodがどれかというのと、今現在 ONなのかOFFなのか
という二つの状態から 使用するinput-methodが W32-IMEならば同期
するけどW32-IMEじゃなければ同期しない みたいな事をしなくては
ダメかも?
ちょろっと試しに書き換えてみたのですが思った感じにならず。
もそもそとコーディング。Per-Monitor DPI対応の一環で、ツールバーのアイコンのサイズをDPIに
応じて切り替えたいと思い弄っているのですがうまく行かず。
CreateToolbarEx()でシステム定義のボタンを使用しているのですが、
例えばIDB_STD_LARGE_COLORのサイズにしてしまうと、
TB_ADDBITMAPメッセージを送ってIDB_STD_SMALL_COLORを指定したり、
ボタンを一旦削除して再追加したりと試してみたのですが
IDB_STD_SMALL_COLORのサイズに変更できず。
ただ、例えばIDB_STD_LARGE_COLORからIDB_VIEW_LARGE_COLORの
ようにアイコンサイズが同じ場合の変更はうまくできるので、
変え方は合っているんじゃないか?と思う訳ですが謎。
昼過ぎ起床。寝すぎ。
東京都コロナ感染者。新規は235人。相変わらず数しか判らず。
家庭内感染は二次的感染と考えられますが、そこではなくて
どういう行動を取って感染した人が最初に家庭に入れたのか?
の部分が判らないとなんの参考にもなりません。
tr-emacs-ime-module
の細田さんより w32-ime.el の単独モジュールが
MELPAに登録された
との御連絡をいただいていました。すげぇ。
そして、大変遅ればせながら tr-emacs-ime-module を試してみました。
勿論ソースからのビルドで。
(load "international/w32-ime" t) (when (eq 'w32 (window-system)) (when (and (not (fboundp 'ime-get-mode)) (string= module-file-suffix ".dll") (locate-library "tr-ime-module2-helper")) (require 'tr-ime-module2-helper) (require 'w32-ime "w32-ime-for-tr-ime-module")) (when (featurep 'w32-ime) (setq w32-ime-buffer-switch-p nil) ; 全バッファでIME状態同期 (setq default-input-method "W32-IME") (setq-default w32-ime-mode-line-state-indicator "[-]") (setq w32-ime-mode-line-state-indicator-list '("[-]" "[あ]" "[-]")) (setq w32-ime-input-method-title "あ") (setq-default mode-line-mule-info `("" ,(propertize "%z" 'help-echo 'mode-line-mule-info-help-echo 'mouse-face 'mode-line-highlight 'local-map mode-line-coding-system-map) (:eval (mode-line-eol-desc))) ) (w32-ime-initialize) (defun w32-isearch-update () (interactive) (isearch-update)) (define-key isearch-mode-map [compend] 'w32-isearch-update) (define-key isearch-mode-map [kanji] 'isearch-toggle-input-method) (define-key isearch-mode-map "\C-o" 'isearch-toggle-input-method) (add-hook 'isearch-mode-hook (lambda () (setq w32-ime-composition-window (minibuffer-window)))) (add-hook 'isearch-mode-end-hook (lambda () (setq w32-ime-composition-window nil))) ) ) (unless (featurep 'w32-ime) (load-library "anthy") (setq default-input-method 'japanese-anthy) )
テレワーク。遅めに終了。
東京都コロナ感染者。新規は184人。
昨日は緊急提言とかされたようですが、新たに気を付ける点が判明したとかは無く。
もそもそとコーディング。判らん。
テレワーク。遅めに終了。
東京都コロナ感染者。新規は284人。確かに木曜だけれども。なんなんすかね?この揺らぎ。
もそもそとコーディング。なんか思った反応にならず。
テレワーク。遅めに終了。
東京都コロナ感染者。新規は177人。それにしても累積で見ると
傾きは維持されたままになっているように思います。
何かしら対策の穴があって、塞がない限りずっとこのままという
感じなのでしょうか。沢山の穴があるという感じではないような
気がするのですが、それなら一発塞げば直ぐに結果に出るように
は思うのですが。
ちょろりコーディング。
テレワーク。遅めに終了。
東京都コロナ感染者。新規は166人。
もそもそとコーディング。うーむ、やっぱダメか。
テレワーク。遅めに終了。
東京都コロナ感染者。新規は78人。月曜だしな。
そういえば、我が家のCygwin emacs-w32 を -Q オプションを付けて
起動すると、日本語文字が個人的に入れた手書き系のフォントになります。
そもそも-Qで立ち上げるとフォントは何になるんだ?と思い、
「Options→Set Default Font...」で見てみると
「Courier New」フォントになってました。ふーん、そういうフォントが
あるんだね....と思ったのですが、何故か既に起動しているEmacsで
同じように選ぼうとすると「Courier New」ってフォントが見当たらず。
フォント名を入力してもそんなフォント知らんという感じで選択
する事ができませんでした。フォント自体は欧文文字セット
みたいなので、日本語文字は他のフォントで補う必要がありそうなのですが、
我が家では何故だか手書き系フォントが選ばれているみたい。
そして選べない場合があるのが何故かはよく判らず。
昼過ぎ起床。寝すぎ。
掃除したり洗濯したり。
東京都コロナ感染者。新規は146人。ダメそう。
もそもそとコーディング。Per-Monitor DPI対応を行ってました。
それとなく動くようになった気がするものの、一部のケースで特別なコードで
スケール変換をしなくてはならなくて、一貫性が無いのがなんで?って感じに
なってます。
Farming Simulator 19(以後FS19)。林業チュートリアルの終わり方が判らなかったのですが、
木材を下ろしたら「!」マークの所に近づくとメニューに「売る」って項目が
現れるので、L3で売ればクリアとなりました。言いつけられているのですが、
操作しているうちに何やれって言われてたのか忘れてしまうという(^^;
チュートリアルではやる事をずっと表示してて欲しい気はしたりも。
昼前起床。
東京都コロナ感染者。新規は249人。まだダメか。
鬼滅の刃のアニメ。作品自体が初見。面白かったです。
もそもそとコーディング。
PS Plusに来ていた
Farming Simulator 19
をポチってみたり。
このシリーズ、ずっと気にはなってましたが今回初プレイです。
PC版の2008ってのが第一作で、気づくと結構長く出てるシリーズになってたようです。
で、やってみるのですが、木を切るチュートリアルがクリアできない(^^;
という訳で本編はまだ始めてません(^^;;
テレワーク。遅めに終了。
東京都コロナ感染者。新規は203人。横ばいか。
ちょろりコーディング。
テレワーク。遅めに終了。
東京都コロナ感染者。新規は248人。減少と思ったのは気のせいか。
たまたまリモコンのボタンを押し間違えて見た日テレのあれは放送事故だったのか。
ちょろり調べ事。
テレワーク。遅めに終了。
東京都コロナ感染者。新規は142人。減少傾向になってる?
Per-Monitor DPIに対応するのに、スケール倍率によりウインドウサイズを
変える事を考えたとき、倍率が変わる境目でウインドウサイズを
どのように変更するか?という問題があるそうな
(参考)。
でも、こちら
の
サンプル
によると、WM_DPICHANGEDメッセージに付属するLPARAM
はRECT*にキャストするとDPIが変わる際の「こうすれば良い」というウインドウ領域が
示されているそうで、SetWindowPos()にそのまま使用してウインドウサイズを
変更すれば良い模様。試してみたところ、dpiAwareがTrueとかと同じ感じになる
みたい。
テレワーク。遅めに終了。
東京都コロナ感染者。新規は177人。まだ横ばいか。
ちょろり調べ事。
テレワーク。遅めに終了。
東京都コロナ感染者。新規は66人。月曜だしな。
あまりの眠さに急速停止。
AM中に起床。
掃除したり洗濯したり。
東京都コロナ感染者。新規は108人。今の所まだ微増という感じか。来週以降どうなるか。
随分長い事ほったらかしにしていたDPIスケーリングについて。
以前Per-Monitor DPIについて
少し試したのですが、コモンコントロールやメニューバーがどうやれば
反応するかもスケールさせる方法があるのかも判りませんでした。
当時調べた時はマニフェストに
「<dpiAware>True/PM</dpiAware>」てなのを足すと
Per-Monitor DPIのモードになってWM_DPICHANGEDメッセージが
出るようになるという所までしか判らなかったのですが、
どうやらPerMonitorV2なるものがあるらしい(Windows 10 Creators Updateから?)
のが判り、以下のように足せば
メニューやコモンコントロールなどはスケーリングに合わせて
自動的にサイズが変更されるようです。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"> <asmv3:application> <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"> <!-- <dpiAware>False</dpiAware> --> <!-- <dpiAware>True</dpiAware> --> <dpiAware>True/PM</dpiAware> <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness> </asmv3:windowsSettings> </asmv3:application> <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="CompanyName.ProductName.YourApplication" type="win32" /> <description>アプリケーションの詳細情報をここに記述</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> </assembly>
昼前起床。寝すぎ。
冬物をクリーニングに出したり。
東京都コロナ感染者。新規は207人。今週は耐えたという感じか。
ところで、北海道では5月頃からずっとうっすら新規感染者が出ている
のですが、この薄く長く続くってのはどういう状況なのだろう?と思ったりも。
ガードができていれば減少傾向になるだろうし、ガードが甘ければ増加傾向に
なるとは思うのですが、状態を維持するってのは結構難しいのではないかと
思うのです。どういう状況で感染しているのか傾向があるのだろうか。
数日前からPS4だけネットワークが切れる現象があったり。LANハブの電源抜き挿しで
も復帰せずハブのポートを変えてみたり。大丈夫っぽくなった気もしますが
当面様子見。
テレワーク。遅めに終了。
東京都コロナ感染者。新規は196人。耐えてるなぁ。
トランプ大統領コロナ感染。アメリカ人でも「マスクをしないからだ」
なんて言う人が居るんだとは思ったりも。
眠くて死亡。
テレワーク。遅めに終了。
東京都コロナ感染者。新規は235人。微増で耐えているか。
「浦沢直樹の漫勉neo」。
無印のシーズン4から3年半ぶり。第1回は「ちばてつや」氏。
81歳てマジでか。面白かったです。
因みに、
シーズン3の第1回目に登場した「池上遼一」氏は放送時点(2016年9月15日)で72歳(現在76歳)、
シーズン1の第4回に登場した「さいとう・たかを」氏は放送時点(2015年9月25日)で78歳(現在83歳)
でした。続けられるってスゴいよね。