昔の最近の出来事(2026.06)

2026/06/30

テレワーク。遅めに終了。

攻殻機動隊のアニメが始まるのか。ほぅ....

Web巡回して終了。

2026/06/29

テレワーク。早くもなく遅くもなく終了。

Emacs上で Copilot Keyboardで長い文章を入力していると、先頭の方から自動的に変換確定がされますが、 その時に入力した文字が大量に失われる場合があります。 これってメモ帳とかでも起こるのだろうか?と思い試してみたところ、入力した文字が失われることは無さそうですが、 先頭が自動的に変換確定されると同時に、入力した文字がひらがなのまま確定されてしまうようです。 いずれにしても、MS-IMEの場合は自動確定した変換結果の品質はともかく、入力した文字が失われたり ひらがなのまま確定したりはしないので、Copilot Keyboard側でなんとかしてほしいところかも。 そういや今月はCopilot Keyboardの更新は無いのかな?

2026/06/28

AM中に起床。

掃除したり洗濯したり。

EdgeでCopilotを起動すると、そのページの要約などができますが、ページのサイズの上限とかあるのか? と聞いてみたところ、自動的にチャンク分割するので大きくても大丈夫だといった感じの回答が返ってきました。 以前、Emacsのマニュアルをプレーンテキストにして 適当に分割してOllama+qwen3.6:35bに食わせて、所望の内容が含まれているかを探してみた事がありましたが、 分割せずにテキストファイル(約59400行)をブラウザ表示した状態で、意味検索できるか試してみたところ、 イマイチうまく探すことはできませんでした。というか、あまりちゃんと読んでないような回答という感じがします。 まぁ、無料でできる範囲では期待はできないというのはあるかもしれませんが。

2026/06/27

昼頃起床。

以前、「C-u」で数値を入れたのち、C-y(yank)を 実行すると、想像するような動作にはならないなぁ?と思ったことがありました。 で、何気に以下のような定義を行なってみていました。

(defun my-yank (&optional arg)
  "Wrapper function to enable repeated yanking based on the numeric prefix argument (C-u N)."
  (interactive "p")
  (if (and arg (numberp arg) (< 0 arg))
      (dotimes (n arg)
        (yank))
    (yank))
  )
(global-set-key "\C-y" 'my-yank)

定義してみたら、ほとんど使う場面は無いので、忘れてしまっていたのですが、 忘れたころに一瞬使うことがあって、そういや定義したなぁ?と思い出したり。 因みに、矩形領域を貼り付ける場合、恐らく多くの人が「そうなるのか....🥺」 という残念な振る舞いに思うかも知れませんが、よしなに。

2026/06/26

テレワーク。早くもなく遅くもなく終了。

Web巡回して終了。

2026/06/25

テレワーク。早めに終了。

調べごとをして終了。

2026/06/24

テレワーク。早くもなく遅くもなく終了。

眠くて死亡。

2026/06/23

テレワーク。早めに終了。

調べごとをして終了。

2026/06/22

テレワーク。早めに終了。

Web巡回して終了。

2026/06/21

AM中に起床。

掃除したり洗濯したり。

「これ描いて死ね(9)」。10巻は7月10日に出るらしい。アニメは7月3日からと渋滞してます。

2026/06/20

AM中に起床。

そういえば、minttyではsixelでも、独自のフルカラー表示シーケンスでも、画像を表示する事が可能です (以前のメモ)。 しかし、screenコマンドを挟んでいると表示されません。sixelの場合、img2sixelやchafaは、 パススルーのオプションを付ける事で、screenコマンドを挟んでいても パススルーシーケンス を検知すると その後の内容をそのままターミナルに送る事で、ターミナルの機能でsixelとして表示されます。 で、フルカラー表示の場合でも、同じように screenコマンドでパススルーできれば、 sixelと同じようにminttyでは表示できるんじゃないか?と思い、GoogleAIに尋ねてみたり。 結果から言うとうまくいきませんでした🥺。 ただ、「ESC P」と「ESC \」で包めばその間のシーケンスはscreenでは解釈しないとか、 .screenrcに 特定のシーケンスを解釈しないように設定する事ができるとか、 言っている事はどれも納得できる感じには思ったり。

一旦話を整理し直して、もう一度GoogleAIに順に問い合わせ、何度か状況をやりとりして、 最終的に「Windowsの仮想端末レイヤー(ConPTY)がシーケンスを無効化していて、minttyにはどうやっても伝わらない」 という結論に達しました。以下、原文。

なぜこれでも動かないのか?(現象の裏側)
1. screen 自体は \eP 〜 \e\\ を正しく解釈し、中の4連エスケープを半分(2連エスケープ 1b 1b 5d)
   にして Windows(ConPTY)へ出力しています。
2. しかし、Windows の ConPTY は「1b 1b 5d」という未知のシーケンス(壊れたOSCシーケンス)を受け
   取った際、エスケープ文字をすべて剥ぎ取ってプレーンテキストに直してしまうか、あるいはシーケンス
   全体を不正とみなして破棄しています。
つまり、ConPTY は「エスケープが何重になっていようが、自分に理解できない制御コード(1337;File)の
気配を察知した時点で一律で無効化する」という、非常に強固な検閲(パース)を行っています。

screen の内側にいる限り、標準出力(echo)をどう工夫しても、この 「screenの解釈」→「ConPTYの検閲」
のコンボを同時に突破するのは不可能であることが分かりました。

一旦話がそれますが、AI回答の文章ってときどきスラングを含んでいるなぁ?と思うことがあります。 前述の例だと「...のコンボ」とか。「コマンドを実行する」みたいなのも「コマンドを叩く」とか、 しれっと使ってるなぁと思うことがあります。
話を戻して、screenが実際に開いている /dev/ptyX に直接リダイレクトするという荒業が提示されました😅。 実際に試してみたら表示されました。いや、確かにそうかもだけど。

直接 /dev/ptyXに流し込んで minttyで画像表示

原理的には可能なのに、途中で阻まれているというのは、本当にやりよう無いんだっけ?とは思ったりも。

ところで、AIの回答は「確かに、普通に考えればそれでイケそうだけどなぁ?」と思う事が多いのですが、 実際にやってみるとそうはならない事があります。 例えば、以前遭遇したD言語での多次元配列の割り当て方とか。 今回のscreenをバイパスできればminttyの機能で画像表示できるハズというのもその一例に思います。 AIって何気に「普通に考えた結果」と合っているように思えます。

以前作成した、標準入力を指定できるようにしたshowimgexという スクリプトを、screenが挟まっているか否かを判定する条件を加えて、 ptyXへのリダイレクトを使うか否かを切り替えるようにしてみました (showimgex_20260621a.tar.xz)。 Cygwinの psコマンドはフォーマットやオプションが一般的なpsコマンドと違っているようなので、 Cygwin専用になっているかも知れませんが、mintty+screenの環境で画像をちょろっと確認したいときにお役に立つかも 知れません。御参考まで。

「あかね噺」のアニメ最終回。2期は2027年1月らしい。

2026/06/19

テレワーク。早めに終了。

調べごとをして終了。

2026/06/18

テレワーク。早めに終了。

Web巡回して終了。

2026/06/17

テレワーク。早めに終了。

調べごとをして終了。

2026/06/16

テレワーク。早めに終了。

そういえば、GUIのEmacsだと「\C-0..9」という「Ctrl+数字」のキーバインドが行えます。 いくつかの割り当てを自分の都合に合わせて使用しているのですが、元々何が割り当たっているのか知らないなぁ? と思って調べてみたところ「C-u 0..9」と同じというのを知りました。 個人的には「もったいない」とは思ったりも。ところで、「C-u 0」って意味あるのか? さておき、偶然、「C-u C-s」は「M-C-s」と同じ isearch-forward-regexp だというのに気づいたり。 「M-C-s」は「ALT+Ctrl+s」にしても「ESC Ctrl+s」にしてもイマイチ押しにくいので、 用事のある時にしか使わない感じがあったのですが、「C-u C-s」(我が家の設定では「C-; C-s」なのですが) なら手癖で押せる感じなので、もっと頻繁に使用する場面があるかも?と思ったりも。

2026/06/15

テレワーク。早めに終了。

Web巡回して終了。

2026/06/14

AM中に起床。

掃除したり洗濯したり。

何気にEmacsのInfoでiimage-modeについて調べてみたところドキュメントは無いみたい。 手元にあったemacs-24.3のinfoにも見当たらなかったので、もともと説明書は無かったみたい。 でもGoogleAIやOllama+qwen3.6:35bで聞くとどういうモードか説明が返ってくるんですよね。不思議。
iimage-modeの歴史についてGoogleAIに尋ねたところ、 Meadow のコミュニティなどで活動されていた小関氏(Koseki Yoshinori)により開発されたこと、 非常にシンプルな機能であるため独立されたマニュアル(info)を起こすほどではないと判断された(らしい) ことなどが分かりました。ほぅ....

2026/06/13

AM中に起床。

先日の改造したiimage-modeを使って表示や文書作成のテストを行なってみたり。 スナップショット画像を撮りながらメモ書きするようなユースケースを想定しています。

iimage-mode(改)テスト

オリジナルのiimage-modeではウインドウサイズに画像サイズを合わせて表示するのですが、 元の画像サイズが大きいとウインドウが画像表示で埋まってしまうため、 テキストファイル表示としては非常に見づらくなってしまいます。 かといって元画像をリサイズしてしまうと解像度が損なわれてスナップショット画像としての意味が無くなってしまいます。 という訳で、元の画像ファイルはそのままに、ほんのり内容を識別できるサムネイルくらいのサイズで表示して、 関連するテキストメモを取るといった用途に使用するには丁度良い感じになった気がします。
因みに、以前作成した拙作のclipsaveとELISP設定を使えば、 CygwinのEmacs上でクリップボードの画像を保存してリンクを挿入するまでの操作を行なう事はできます。 また、Emacs-31では yank-media というクリップボード画像の保存機能が使えるようになる予定ですが、 今のところorg-modeでしか機能しないようです。iimage-modeでも連携できるようになっていれば、 用途の選択肢は広がるかもなぁ?とは思います。

2026/06/12

テレワーク。早めに終了。

Emacsでテキストファイルに画像へのパスを記すとインライン表示するiimage-modeというマイナーモードがあります。 画像の表示サイズをコントロールできないのだっけ?と思い、Ollama+qwen3.6:35bで何気に聞いてみたら iimage-display-sizeなる変数でコントロールできるといった回答が返ってきたのですが、 特に反応せず、実際のlisp/iimage.elを見てみても変数でコントロールできるような感じではありませんでした。 どういうこと?🤔 因みに、org-modeではアトリビュートを使えば色々コントロールは可能ですが、 画像以外の部分もorg-modeのコントロール下にあるので、サムネイルくらいのサイズで参考画像を 表示できれば良いだけ....というのに、iimage-modeを使うも悪くないかな?と思ったのですが....

AI回答のように振る舞うと便利かもな?と思い、iimage.elをちょろっと改造してみたり。
因みに、実際にはそうなっていませんが、以下のような設定で挙動を変えられるということでした。 それにしても、実際には無いものなのに、なんでこんなに具体的なんだ?何かと間違えているのか?🤔

*** 📐 1. 主要変数:=iimage-display-size= の設定パターン
この変数はバッファローカルにもグローバルにも設定可能です。

| 値              | 動作                                                           | シナリオ                                 |
|-----------------+----------------------------------------------------------------+------------------------------------------|
| t(デフォルト) | ウィンドウの列幅・行高さに合わせて自動調整(アスペクト比保持) | 通常の閲覧用途                           |
| (WIDTH HEIGHT)  | 画像を指定ピクセル数で固定表示                                 | ドキュメントレイアウト統一、プレビュー用 |
| 無効化(nil)   | iimage-mode の制御を外す(通常はモードオフと同じ)             | トラブル時や手動表示切り替え時           |

さておき、改造したものはtとnilを逆にしてますが、大体この通りになるようにしたつもり。御参考まで。

--- iimage.el.orig	2026-01-03 01:07:30.270059300 +0900
+++ iimage.el	2026-06-14 14:01:52.512574400 +0900
@@ -53,17 +53,23 @@
   "List of directories to search for image files for `iimage-mode'."
   :type '(choice (const nil) (repeat directory)))

+(defcustom iimage-display-size nil
+  "Display image size control for `iimage-mode'."
+  :type '(choice (const :tag "FitWindow" nil)
+                 (const :tag "OriginalSize" t)
+                 (list :tag "SizeSpecify" integer integer)))
+
 (defvar iimage-mode-image-filename-regex
-  (concat "[-+./_0-9a-zA-Z]+\\."
-	  (regexp-opt (nconc (mapcar #'upcase
-				     image-file-name-extensions)
-			     image-file-name-extensions)
-		      t)))
+  (concat "[-+.~/_0-9a-zA-Z]+\\."
+          (regexp-opt (nconc (mapcar #'upcase
+                                     image-file-name-extensions)
+                             image-file-name-extensions)
+                      t)))

 (defcustom iimage-mode-image-regex-alist
   `((,(concat "\\(`?file://\\|\\[\\[\\|<\\|`\\)?"
-	      "\\(" iimage-mode-image-filename-regex "\\)"
-	      "\\(\\]\\]\\|>\\|'\\)?") . 2))
+              "\\(" iimage-mode-image-filename-regex "\\)"
+              "\\(\\]\\]\\|>\\|'\\)?") . 2))
   "Alist that specifies how to detect filenames of images to be displayed inline.
 The value should be an alist whose elements have the form

@@ -115,7 +121,7 @@
   "Display images if ARG is non-nil, undisplay them otherwise."
   (let ((image-path (cons default-directory iimage-mode-image-search-path))
         (edges (window-inside-pixel-edges (get-buffer-window)))
-	file)
+        file)
     (with-silent-modifications
       (save-excursion
         (dolist (pair iimage-mode-image-regex-alist)
@@ -127,16 +133,26 @@
               ;; remove them either (we may leave some of ours, and we
               ;; may remove other packages's display properties).
               (if arg
-                  (add-text-properties
-                   (match-beginning 0) (match-end 0)
-                   `(display
-                     ,(create-image file nil nil
-                                    :max-width (- (nth 2 edges) (nth 0 edges))
-				    :max-height (- (nth 3 edges) (nth 1 edges)))
-                     keymap ,image-map
-                     context-menu-functions (image-context-menu)
-                     modification-hooks
-                     (iimage-modification-hook)))
+                  (let ((img
+                         (cond
+                          ((not iimage-display-size)
+                           (create-image file nil nil
+                                         :max-width (- (nth 2 edges) (nth 0 edges))
+                                         :max-height (- (nth 3 edges) (nth 1 edges))))
+                          ((and (listp iimage-display-size)
+                                (= (length iimage-display-size) 2))
+                           (create-image file nil nil
+                                         :max-width (nth 0 iimage-display-size)
+                                         :max-height (nth 1 iimage-display-size)))
+                          (t
+                           (create-image file nil nil)))))
+                    (add-text-properties
+                       (match-beginning 0) (match-end 0)
+                       `(display ,img
+                         keymap ,image-map
+                         context-menu-functions (image-context-menu)
+                         modification-hooks
+                         (iimage-modification-hook))))
                 (remove-list-of-text-properties
                  (match-beginning 0) (match-end 0)
                  '(display modification-hooks))))))))))

2026/06/11

テレワーク。早めに終了。

調べごとをして終了。

2026/06/10

テレワーク。早めに終了。

調べごとをして終了。

2026/06/09

テレワーク。早めに終了。

Emacs 31では delete-trailing-whitespace-mode というマイナーモードが実装されているようです。 確かに、ありそうで無かったモードかも知れません。

2026/06/08

テレワーク。早めに終了。

Emacs 31.1向けのパッチの内容を思い出し。一通り思い出せたような気がする。 いくつかは公式の方で修正されたバグもありますが、基本的に直ってない方が多いのはいつも通りです。

2026/06/07

AM中に起床。

掃除したり洗濯したり。

Emacs 31.1向けにパッチの内容を思い出したり。 何気に1年ほど前から対応を始めていたので、色々忘れてしまっています😓。

2026/06/06

AM中に起床。

転院手続きにお出かけ。ほどなく完了。

そういえば Fedora44 へのアップグレードの案内が出てたなと思い出したり。 Emacs 31は Fedora43 には来ないかもな?と思ったので VirtualBoxの Fedora43を 44にアップグレードしてみたり。 時間がかかったのは 43のイメージを念のためクローンして 44のベースを作ってからアップグレードする このクローン実行だったりしましたが。さておき、ほどなくしてアップグレード終了。

すっかり忘れていたのですが、Emacs 31では *.elに 「; -*- lexical-binding: t -*-」というコメント内 キーワードが無いとワーニングメッセージが出ます。Cygwinでビルドしている Emacs 31向けには対応したのですが (以前のメモ)、これやらなくちゃダメなのか.....。 面倒くさかったので、シェルスクリプトを作って対応してみたり。一回使ったら終わりなので効率が悪い🥺。

全く気付いていなかったのですが、VirtualBoxのFedoraから環境変数DISPLAYを設定して、 ローカルPCの VcXsrv で画面を出そうとしたところ、gimpコマンドがPATHに無いなぁ?と思ったり。 VirtualBoxのグラフィック画面のアプリメニューには存在するし、起動もできるのでどうなってんだ? と思い、GoogleAIに聞いてみたら 「Fedoraでは標準的にインストールされるGIMPはFlatpak版(コンテナ化されたアプリ)であることが多く、 通常のコマンドとは実行方向が異なります。」という回答が返ってきました。 「flatpak run --env=DISPLAY=ローカルPCのIPアドレス:0 --socket=x11 org.gimp.GIMP」 みたいな感じで実行すれば良いらしいのですが、VirtualBoxのGUIコンソールからはログアウトしておかなくては ならないみたい。GUIコンソールでログインしていると、DISPLAYで画面を出す先を指定しているにも関わらず、 GUIコンソール側に画面が出てしまうようです。なんでだよ?🤔 「flatpak list --app」でflatpakアプリの一覧を表示する事ができるようです。

2026/06/05

テレワーク。早めに終了。

Emacs 31.0.90 pretestがリリースされていたり (Emacs 31.0.90 pretest is available)。 なんか今回は早い気がする。

31.0.60のパッチをあてて 31.0.90をビルド。特に問題なくビルド完了。ちょろっと触ったところでは問題無し。 まあ、31.0.60で問題無かったのだから問題無くて当たり前かもしれませんが。 29の時は29.0.90からは順調に3ヶ月くらいでリリースされたので、それくらいで出る事を期待したいです。 ただし、29はブランチができてから29.0.90が出るまでにめちゃくちゃ時間がかかりましたが。

2026/06/04

テレワーク。早めに終了。

Ollama。今日見たらv0.30.4が出てたのでアップデートしてみたのですが、 やはりqwen3.6:35bは無理やりGPUで動こうとしている為か、全く反応できる様子も無ければ Windows全体がスローダウンしている感じになるのも変わらず。 他のモデルだとGPUで動けたり、CPUで動いたりとなっているようなので、今のところqwen3.6:35bだけが 変になっているように見えます。

GoogleAIに gptelで ollamaにGPUの使用をコントロールする方法を聞いてみたら、 「:request-params '(:options (:num_gpu N))」というプロパティを追加すればコントロールできるという回答が 得られました。Nの値を0にすればGPUを一切使用しない動きになるのですが、1以上の値のレイヤーを GPUに割り当てるという動きになるそうな。qwen3.6:35bは 40レイヤーあるらしいのですが、 半分よりもちょっと減らした18くらいにすると、GPUのメモリをちょっと手加減した割り当て量で動作するようです。 ともあれ、応答無し状態&スローダウン状態にならずに応答が返ってくるようになったので、 しばらくこれで様子見しようと思います。 qwen3.6:27bもこれで調節すれば動くようだったので、一応調節して使えるようにしてみたり。

2026/06/03

テレワーク。早めに終了。

Ollamaの更新が3週間ほど無かったのですが、v0.30.0がリリースされたと思ったらv0.30.2が直ぐに リリースされてました。また高頻度リリースに戻るのかな?
v0.30.2にアップデートしたところ、qwen3.6:35bはこれまでCPUで動いている感じだったのですが、 無理やりGPUで動こうとしているようで、画面操作に影響が出るようになりました🥺。 これまで、qwen3.6:27bがGPUで動こうとして画面操作に影響が出る感じで使い物にならなかったのですが、 安定していたqwen3.6:35bでダメになったのが辛い。

2026/06/02

テレワーク。早めに終了。

台風。順調に向かっているな。明日の関東地方は一日荒れそう。 ところで台風の絵文字「🌀」ですが、Windows11の Fluent Emoji はデザインが雑過ぎない?

2026/06/01

テレワーク。早めに終了。

Emacsのartist-modeのメニューにSquareという正方形を書くと思われる描画ツールがあるのですが、 マウスで使ってみると 長方形を描くRectangleと同じ挙動をしたので なんだこれ?と思ったり。 キーボードでカーソル移動すると始点座標と終点座標との差で幅か高さの大きい方が採用されて 確かに正方形描画っぽく動くようです。マウス指定時のバグだろうか? あと、正方形とは言っても文字数で数えた時のサイズなのですが、フォントは縦長なので 「3桁×3行」という正方形を描いたつもりでも見た目は正方形ではありません😓。これはこれでいいのか?

どうやら Rectangle描画で、Shiftキーを押しながらマウスドラッグすると Squareモード の挙動(長い辺を採用する)になるようです。メニューにわざわざ足すんなら、Shiftキーを押した 挙動にすべきなようには思います。因みに、直線ツールや円ツールでもShiftキーを押すと 挙動が変わるようなのですが、それらについてはメニューには追加されていません。 なぜ正方形だけメニューに追加しているのか謎。


TOP PREV