2026-10-21

cwmの「group」は、こう使うのか

OpenBSD Journalの「Getting started with cwm」を読むと、cwmの「group」を使う事例が記されていました。例えば、xtermとfirefoxが開かれているとします。

  1. 「CM-1」(Toggle visibility of group 1)を押す。
  2. カーソルをxtermに移して「CM-g」(Toggle group membership of current window)を押す。
  3. 「CM-2」(Toggle visibility of group 2)を押す。
  4. カーソルをfirefoxに移して「CM-g」(Toggle group membership of current window)を押す。 

 

上述した操作で、xtermとfirefoxを各グループに割り当てることができました。ここで、記事にもありますが、グループが別々なのに双方とも表示されたままになっています。これは「CM-0」(全グループを表示)状態にあるからです。表示されるグループを選択するには「CM-[n]」として、nに「1」や「2」を指定することになります。

 

記事の手順を追試してみて、cwmの「group」の使い方が理解できました。しかしながら、記事の筆者は、何故この手順を知っているのでしょうか。少なくとも「CWM(1)」や「CWMRC(5)」を読んでも、この手順を導き出すことはできないように思います。 

2026-10-18

cwmの「group」がよくわからない

Let's note CF-SV8RDCVSにOpenBSD/amd64 7.9をインストールし、cwmを利用して環境構築中です。デスクトップ環境としては、KDE、MATE、Xfceなどがありますが、cwmを同列に語ることはできません。むしろウィンドウマネージャのfvwmやtwmの仲間でしょう。

 

cwmには「group」という概念があるのですが、どういうもので、どういう風に使うのか、よくわかりません。ネットを検索しても、そもそもcwmの事例が少ないので、情報がありません。最近ならGeminiに相談するという手段が考えられますが、適当に話をでっちあげられる可能性が高いので、あまり役に立たないだろうと思います。

 

現状における情報としては、次のようなものしかありません。これを参照しつつ、実機で動作を類推していくことになりそうです。

『英語史で解く英文法の謎』(NHK出版新書762)は面白い

『英語史で解く英文法の謎』(NHK出版新書762)を読んでみました。日本人にとって初めて学ぶ外国が英語だったというのが大多数だと思います。英語の様々な規則が「外国語ってそういうものというイメージ」になっているかもしれませんが、それは「英語だけの特殊事情」なのかもしれません。

 

本書の副題では「なぜ「3単現のs」をつけるのか」とあります。確かに不思議です。でも不思議なのはそれだけではありません。「第3章 なぜ文字と発音が一致しないのか」についても、確かに不思議です。日本語でも「は」と書いて「わ」と発音することがありますし、旧仮名遣いでは文字と発音が一致しないところがありますから、英語もそうなのかと思ってしまいます。しかし英語には英語の事情があるようです。

 

本書を読んで疑問が解消されたから、英検とかTOEICで好成績をおさめることができるということはないでしょうけれども、英文法がより身近になるきっかけにはなるかもしれません。

2026-10-17

OpenBSDのcwmのデフォルトとして定義されているバインド

Let's note CF-SV8RDCVSにOpenBSD/amd64 7.9をインストールし、xenodm経由でcwmを利用する方向で設定しています。cwmを利用するのは初めてなので、いろいろと戸惑うところがありますが、慣れていこうと思います。まずはマニュアルを読むのが基本だと考えるので、参照してみました。若干気になる箇所が見受けられます。

  • マニュアル「cwm(1)」、「cwmrc(5)」とソースコード「xenocara/app/cwm/conf.c」を突き合わせてみると、ほぼ一致していますが、ソースにあるバインドの一部がマニュアルに記載されていません。記載されていないのは、マウスボタン1/2/3のバインド定義です。
  • キーバインド「CM-equal」と「CMS-equal」は、英語配列キーボードなら問題ないと思いますが、日本語配列だと意図した動作をしません。つまり日本語配列で「=」というのは、シフトキーを押しながら「-」キーをおすことになります。「CM-equal」というのは、日本語配列キーボードでは「CMS-equal」になってしまうのです。この問題を解決するには、キーバインドを変更する必要があります。
  • 一部の機能が、キーバインドとマウスバインドの双方で定義されていました。
  • マウスバインド「M2」には「menu-group」が定義されているのですが、Let's noteのようなノートPCでは、マウスボタン1と3を同時押しすることになるので、使いにくいです。

 

cwmを使うのが初めてですので、不慣れなのは間違いありません。なぜこの機能がこのバインドに割り当てられているのだろうと思うところが無いわけではありませんが、慣れの問題でしょう。しかし「CM-equal」と「CMS-equal」の件は、慣れではなく、障害です。これらは「Toggle vertical maximization」と「Toggle horizontal maximization」に割り当てられています。さらに「CM-m」が「Toggle maximization」に割り当てられているので、これらをまとめて再定義しようと思います。

 

cwmでは「Windowsキー」を「4-」として指定することができます。これを利用して「~/.cwmrc」を以下のように設定してみました。

# Key bindings
bind-key 4-m window-maximize
bind-key 4-v window-vmaximize
bind-key 4-h window-hmaximize

unbind-key CM-m
unbind-key CM-equal
unbind-key CMS-equal
#[EOF] 

2026-10-16

/etc/firefox/にあるunveil.mainとunveil.contentを変更

Let's note CF-SV8RDCVSにOpenBSD/amd64 7.9をインストールしました。OSを入れた後で、個人的な定番アプリケーションであるFirefoxやLibreOfficeを入れました。また日本語フォントとしてnote、日本語変換のためにfcitx-anthyも入れました。これでFirefoxを普通に使えると思っていたのですが、そうはいきませんでした。Ctrl-Oでファイルを開くダイアログを押しても、ディレクトリ「~/Documents」にあるはずのファイルが一覧に出てこないのです。

 

OpenBSD版Firefoxは、ディレクトリ「/etc/firefox/unveil.*」というファイルを参照してセキュリティを強化しています。ファイル「/usr/local/share/doc/pkg-readmes/firefox」には、「disable」とだけファイルに記述すればunvelを無効にできると書かれています。試しにファイル「/etc/firefox/unveil.main」に「disable」とだけ書いてみると、一覧に出なかったファイルが出てくるようになりました。

 

一件落着かと思ったのですが、ファイルを選んでボタン「開く」を押しても、「ファイルが見つかりません」というエラーが出てしまうのです。これもunveilの仕業なのでしょう。調査し手見ると、ファイル「/etc/firefox/unveil.content」が怪しいと判明しました。

 

最終的に、ファイル「/etc/firefox/unveil.{main,content}」を変更し、参照したディレクトリを書き込むことで、今度こそ本当に一件落着しました。

 

OpenBSDはセキュリティを強化していると聞いていましたが、確かにそのようです。今回の問題で参照したファイルは、ディレクトリ「/etc/firefox/」にありますから、変更した設定は全ユーザ共通の挙動となります。OpenBSDをインストールしたマシンは、個人的に使うので、ユーザは私自身しかいません。しかし多くのユーザが利用する場合であれば、慎重な対応が求められるでしょう。制限を緩めて欲しいユーザがいたとしても、その要求を飲めば、全ユーザの制約が解除されてしまいます。各ユーザのホームディレクトリ以下に「unveil.main」などのファイルを置いたとしても、Firefoxが参照することはないようです。今後どうなるか不明ですが、OpenBSDのセキュリティ対応を信じていくことになるでしょう。

映画『踊る大捜査線 N.E.W. メトロポリスを駆け抜けろ!』

2026年9月18日から公開されている映画『踊る大捜査線 N.E.W. メトロポリスを駆け抜けろ!』を映画館で視てきました。ネットでの反応は様々ですが、個人的には面白い作品でした。この作品でストーリが完結しているわけではなく、将来への含みを残しているので、次の作品(あるのか不明ですが)を楽しみに待ちたいと思います。

 

十数年前に「FINAL」と銘打った作品が作られているのに、続編が制作されるとは思っていませんでした。一昨年前の「室井慎次」2部作の直後に新しい作品の制作が発表され、楽しみに待っていました。人気のある作品ですが、30年前と同じメンバーという訳にはいかず、社会の変化も踏まえ、どのようなストーリを展開するのかと思っていました。これなら、次の作品も楽しめそうです。

 

TVドラマシリーズでいかりや長介演じる「和久平八郎」と、本映画で織田裕二演じる「青島俊作」が、ほぼ同年齢ということに、驚きがあります。TVシリーズでの「和久平八郎」は、定年間際という設定で、いかにも初老の男性というイメージでした。それなのに、本映画での「青島俊作」は、それなりに年をとっていますが、「和久平八郎」とは印象が大きく違い、驚きます。これは、アニメの「サザエさん」に登場する「磯野波平」が54歳という設定で驚くのとは、正反対の驚きです。

 

映画をつくるには数年かかるようですし、本当に制作するかも、わかりません。しかし他の作品、例えば水戸黄門とかルパン三世などのように、俳優や声優を入れ替えて作品を作り続けるような方法はとれないでしょう。あと1本か2本くらいは、「踊る大捜査線」の新しい作品を見たいと願っています。

2026-10-10

OpenBSD版Firefoxのセキュリティ強化は/etc/firefox/unveil.mainで設定

Let's note CF-SV8RDCVSにOpenBSD/amd64 7.9をインストールし、環境を構築中です。Webブラウザは、昔からFirefoxを利用しているので、OpenBSDでもFirefoxを使用しようと思います。インストール自体は「doas pkg_add firefox」するだけなので簡単でした。日本語変換は「fcitx-anthy」を入れており、こちらも問題ありません。Firefox Syncとか、Feedlyにも問題なさそうです。最後にTiddlyWiki5を利用するために「ファイルを開く」(Ctrl-O)したら、なんだか様子がおかしいです。

 

TW5のファイルが「~/Documents」 以下に置いてあるのですが、そもそもファイルダイアログで「~/Documents」が出てきません。出てこないならば、手入力で選択しようと思いましたが、それも出来ませんでした。さらに、Windows11でFirefoxを使っている感覚からすると、OpenBSDのcwmで動くFirefoxは、ウィンドウに枠もないし、「本当にこれで良いのか」と思うくらいシンプルな画面です。

 

最近はGeminiと対話を繰り返すことで問題を解決していくことが多いので、本件もGeminiに相談しました。Geminiからは、Firefoxの「about:config」で設定を調整すれば解決すると案内されましたが、全く効果はありませんでした。

 

OpenBSD版Firefoxは、パッケージから「doas pkg_add firefox」で入れています。ソースは「ports/www/mozilla-firefox」にあるので、手がかりとなるような情報がないものかと探してみました。パッチファイルなどが置かれていましたが、「たったこれだけ?」と思うくらい、僅かなファイルしかありません。Geminiに「ports/www/mozilla-firefox/Makefile」を解析してもらったところ、「mozilla.port.mk」を参照しているという情報を得ました。探してみると「ports/www/mozilla/mozilla.port.mk」にありました。

 

Geminiによると、OpenBSDは「UNVEIL(2)」によりセキュリティを強化しているという示唆が得られました。さらに「unveil.main」というファイルが重要な役割を担っているとも示唆します。しかし不思議なことに「ports/www/mozilla-firefox」以下のファイル内を探しても、「unveil()」とか「unveil.main」という文字列は見つかりません。

 

ソースを見ても分からないなら、実行ファイルを確認しようと考えました。「/usr/local/lib/bin/firefox」は「/usr/local/lib/firefox/firefox」へのシンボリックリンクになっています。このファイルをstringsにかけてみましたが、「unveil.main」という文字列がありません。こうなったら最後の手段ktraceとkdumpを試してみます。「ktrace -f ktrace.out firefox」としてFirefoxを起動し、すぐに終了させます。そして生成されたファイルを「kdump -f ktrace.out」してみます。その結果「/etc/firefox/unveil.main」にアクセスしている記録が残っていました。

 

「/etc/firefox/unveil.main」にアクセスしていることは確認できましたが、「ports/www/mozilla-firefox」以下のファイルには対応する実装が見当たりません。しかも「strings /usr/local/lib/firefox/firefox」でも「unveil.main」がありません。これは一体どういうことなのでしょうか。実装が無いのに、ktrace.outに記録されているとしたら、OpenBSDは魔術を使ったことになってしまいます。それはあり得ません。

 

Geminiの示唆によると、Frirefoxの実体は、「/usr/local/lib/firefox/firefox」ではなく、「/usr/local/lib/firefox/libxul.so」とのことです。「strings /usr/local/lib/firefox/libxul.so.162.0」として調べてみると、確かに「unveil.main」がありました。さらにktrace.outには「5489 firefox  NAMI  "/usr/local/lib/firefox/libxul.so.162.0"」が記録されていました。

 

ここまでの調査では、Mozillaが提供しているソースに対して、OpenBSDがパッチをあてているのではないかと仮定していました。しかしそういう風には見えません。そこで、Mozillaの公式サイトから「firefox-157.0.1.source.tar.xz」を入手し、「unveil」という文字列を探してみました。 その結果「firefox-157.0.1/dom/ipc/ContentChild.cpp:      OpenBSDFindPledgeUnveilFilePath("unveil.main", unveilFile);」を発見しました。この事実は何を意味しているのか考えると、要するにMozillaが提供するファイルにはOpenBSDに特化した実装が既に入っているという事です。つまりMozillaが提供するファイルに、OpenBSD側portsでパッチをあてているという仮定が間違っているのです。Mozillaが提供するファイルに、OpenBSD用の実装が最初から入っているのです。

 

Firefoxパッケージをインストールすると「/usr/local/share/doc/pkg-readmes/firefox」が入ります。これを読むと興味深い事実が判明します。

  • 設定ファイル「unveil.main」は、「/etc/firefox/unveil.main」に決め打ちになっています。
  • 設定ファイル「/etc/firefox/unveil.main」の内容を「disable」とすれば、セキュリティ制限が解除されるようです。
  • 環境変数「MOZ_LOG=OpenBSDSandbox:5」を設定すると、ログが出力されるようです。

  

調査を始めたときの問題(Ctrl-Oのファイルダイアログの件)は、解決していません。しかし「/etc/firefox/unveil.main」がセキュリティを強化してからではないかと思われます。これを「disable」にすれば一件落着かもしれません。でもOpenBSDの「セキュリティ重視」というポリシーを無視することになってしまいます。どのように解決するのかは、これから考えてみます。

 

 

2026-10-09

Let's note CF-SV8RDCVSでOpenBSD+cwm環境でのQtアプリケーションの表示が大きい

Let's note CF-SV8RDCVSにOpenBSD/amd64 7.9をインストールしました。xenodm経由でcwmを使おうと考えています。日本語変換にはfcitx-anthyを利用します。Ctrl-SPACEを押すと変換ウィンドウが表示されるのですが、xtermの画面に対して、大きくて、バランスが悪いように思います。これを直すには「fcitx-configtool」というツールを使うようです。インストールし起動してみたら、全体的に大きすぎるウィンドウが開いて、とてもバランスが良くありませんでした。


この「fcitx-configtool」というのはQtアプリケーションだそうです。一般にQtアプリケーションの構成を変えるには「qt5ct」というアプリケーションを使うのだそうです。そこでインストールして起動してみると、これまたバランスの悪いウィンドウが出てきました。

 

これらの問題を解決するには、設定すると効果があるとと思われる環境変数が幾つかあるようです。その一つである環境変数「QT_FONT_DPI」に「96」を設定したら、丁度よいバランスになった気がします。試しに実験として「180」を設定してみたら、環境変数設定前のバランスの悪いウィンドウが再現されました。

 

Let's note CF-SV8のディスプレイは「12.1型 WUXGA(16:10) (1920x1200) アンチグレア」ということになっています。ここで「√(1920^2 + 1200^2) 」を「12.1」で割れば約187になります。「QT_FONT_DPI=180」としたときの画面が、設定前に近かったのも、こういうことなのでしょう。

2026-10-07

OpenBSDのxtermは環境変数「GTK_IM_MODULE」を子プロセスに渡さない

Let's note CF-SV8RDCVSを入手したのでOpenBSD/amd64 7.9を入れました。まだOSを入れただけに近い状態です。日本語環境を設定するため、環境変数「LANG=ja_JP.UTF-8」を設定し、日本語フォントにはnoto、日本語変換はfcitx-anthyを入れました。ちなみにログインシェルはパッケージからインストールしたtcshです。OpenBSDにはxenodmというディスプレイマネージャがあります。何も設定していなければfvwmが動きますが、「~/.xsession」を用意して、cwmが動くようにしておきました。

 

日本語変換としてfcitx-anthyを入れましたので、「~/.xsession」で環境変数も定義しておきます。動作確認のために、パッケージからFirefoxとLibreOfficeを入れ、日本語変換できるか確認しました。

setenv GTK_IM_MODULE fcitx
setenv QT_IM_MODULE  fcitx
setenv XMODIFIERS    @im=fcitx 

 

日本語変換を確認するため、xtermからFirefoxを起動します。Ctrl-SPACEを押すと、日本語変換できました。ところがLibreOfficeでは、日本語変換できません。いろいろと調べていると、xterm上でprintenvしたら、環境変数「GTK_IM_MODULE」が定義されていないことが判明しました。しかし「QT_IM_MODULE」と「XMODIFIERS」は、ちゃんと定義されています。

 

以前であれば、Google検索で情報を収集していましたが、最近は、Geminiに相談して解決を模索することが多くなりました。余談となりますが、Geminiは、というか生成AIは何でもそうかと思いますが、豊富な情報量をもとに回答しますが、その回答がGeminiの妄想(ハルシネーションとも言う)であることも少なくありません。はっきりと「それは、こうだ」とか「何々が原因だ」とか断言しますが、証拠の提示を求めると、「間違っておりました」と白旗をあげることも多々あります。Geminiの回答を鵜呑みにしないで、自分でも裏付けをとらないと間違った方向に進んでしまいます。

 

閑話休題。環境変数「GTK_IM_MODULE」が消える過程を調べるため、試行錯誤しました。多くの可能性を考えたり、Geminiに相談を繰り返したりしましたが、次のように調査を進めました。

  1. コマンドラインから「ps -e -ww -ax -o pid,ppid,user,args」を実行してみました。するとcwmやxtermのプロセスでは環境変数「GTK_IM_MODULE」を保持しているにもかかわらず、その子プロセスとなるtcshには環境変数「GTK_IM_MODULE」がありませんでした。
  2. コマンドラインから「strings /usr/X11R6/bin/xterm | grep GTK」すると、文字列「GTK_」が見つかりました。
  3. OpenBSD版xtermのソース「main.c」を確認すると関数「xtermTrimEnv(void)」を発見しました。ここに「TRIM(1, GTK_),」という記述が含まれています。

 

つまりxtermは文字列「GTK_」で始まる環境変数を子プロセスに引き継がないようにロジックが組まれていたのです。ファイル「~/.xsession」で定義したはずの環境変数「GTK_IM_MODULE」が消えていたのは、バグではなく、仕様でした。

 

この問題が発生するのは、OpenBSDだけなのか、他OSも同様なのか、調べてみました。網羅的な調査はできませんが、OpenBSDだけの事象と思われます。

  1. NetBSDにおけるxtermのソース「main.c」を確認しました。ファイルの最初に「/* $XTermId: main.c,v 1.930 2024/12/01 19:57:13 tom Exp $ */」とあります。この中に関数「xtermTrimEnv(void)」は存在しますが、「GTK_」に関する記述は存在しませんでした。
  2. GitHubにあるxtermのソース「main.c」を確認しました。ファイルの最初に「/* $XTermId: main.c,v 1.946 2026/08/14 23:15:48 tom Exp $ */」とあります。この中に関数「xtermTrimEnv(void)」は存在しますが、「GTK_」に関する記述は存在しませんでした。
  3. OpenBSDにおけるxtermのソース「main.c」の最初には「/* $XTermId: main.c,v 1.944 2026/04/07 19:22:45 tom Exp $ */」とあります。OpenBSDのCVSwebで確認すると、「TRIM(1, GTK_)」が入ったのは、2025年11月1日のrevision 1.67でした。

 

OpenBSDに限らず、FreeBSDやNetBSD、もしくはUbuntuなどでも、日本語変換を入れたら、GTK用やQt用の環境変数を設定することが「お約束」になっています。その手順を踏んだだけだと思っていたのに、OpenBSDのxtermでは環境変数「GTK_IM_MODULE」が設定されない「仕様」になっているという落とし穴があるとは、青天の霹靂でした。

 

2026-10-06

OpenBSDのxenodmと~/.xsessionの関係

OpenBSDでxenodmを使ってログインすると、「~/.xsession」が呼ばれます。その関係は、「/etc/X11/xenodm/Xsession」の最後を見れば、よくわかります。具体的には、次のようになっています。

# The startup script is not intended to have arguments.

startup=$HOME/.xsession
resources=$HOME/.Xresources

if [ -s "$startup" ]; then
    if [ -x "$startup" ]; then
        "$startup"
    else
        /bin/sh "$startup"
    fi
else
    if [ -f "$resources" ]; then
        @XRDB_PROGRAM@ -load "$resources"
    fi
    @bindir@/xterm &
    @bindir@/fvwm
fi
do_exit 

 

まず、「~/.xsession」の有無で処理が分かれます。あれば利用するし、なければ「fvwm」が使われます。

 

もし「~/.xsession」が存在するとしても、実行可否で処理が分かれます。実行可能であれば直接実行されるし、実行可能でなければ/bin/shに解釈させます。つまり、実行可能な「~/.xsession」であれば、ファイルにシバンを書いておくことで、/bin/sh以外(例えば/usr/local/bin/tcshなど)を使うことが可能になります。

 

もしOpenBSDでcwmを使いたければ、「~/.xsession」を用意しておく必要があります。実行可否は、どちらでも構いません。ただし/usr/local/bin/tcshを使いたいのであれば、実行可能とし、さらにシバン(#!/usr/local/bin/tcsh)を書いておく必要があります。

2026-10-05

『年貢』(渡辺尚志、中公新書2920)を読んでみた

書店で『年貢』(渡辺尚志、中公新書2920)を見かけたので、購入し読んでみました。「年貢」という言葉そのものは、学校で習いますし、時代劇などでもお馴染みです。しかし実態に詳しいわけではなく、江戸時代は領主に米を納めており、時には一揆を引き起こす場合もあったという程度の認識しかありません。

 

本書は、その「年貢」について、詳しく書かれています。とても勉強になりました。

 

江戸時代の年貢は、領主と領地との関係で成り立っています。本書を読んでいて思ったのですが、現在の政府や自治体と住民との関係のように、全国どこでも統一されたいるわけではないと思います。ある領主と、その領地の村々だけを考えれば、何らかの仕組みが出来ているでしょう。しかしながら、その仕組みが全国統一されたものとは思えません。幕領とか国替のない大名などであれば、江戸期を通じて、同じやり方だったかもしれません。しかし「鉢植え大名」という言葉があるように、国替を繰り返していた大名家もあります。また領主が次々と変化した村々もあるでしょう。年貢についての全国統一方式がないということは、領主側にとっても領地側にとっても、仕組みを再構築する必要があったということです。お互いの認識しているやり方が微妙に違っていると、わざわざ説明するのが面倒だったのではないでしょうか。仕組みが全国で統一されていれば、お国替えがあっても、領主としても、領民としても、年貢の納める方式に違いはないので、楽だったでしょう。しかし江戸時代と言うのは、徳川幕府は「全国統一政府」ではないので、各大名のやり方に口をはさめなかったと思います。

 

「鉢植え大名」で、諸国を転々とするのは、大変だったとは思います。しかし、そのように転々とすることで、年貢の収受にかかわる極端なローカルルールが淘汰される契機にもなったかもしれません。 

2026-10-04

OpenBSD/amd64にfcitx-anthyをインストール

Let's note CF-SV8RDCVSにOpenBSD/amd 7.9を入れました。まだOSを入れただけなので、これから様々な環境設定を行うつもりです。まず最初に日本語環境を整えておこうと思います。そのためにやる事は、次のようなことだと思います。

  1. 環境変数LANをja_JP.UTF-8にする。
  2. 日本語フォント入れる。
  3. 日本語変換できるようにする。 

 

 環境変数LANGについては、既に設定を終えています。次は日本語フォントです。旧い知識だとIPAフォントかと考えていたのですが、最近はnotoフォントが良さそうです。OpenBSDのパッケージにも、notoフォントが揃っています。ただしIPAフォントは、無くはないですが、お勧めではない雰囲気です(個人的な印象ですが)。noto関連フォントが、幾つかあり、必要なものだけに限定してインストールしても良いのですが、ディスク不足に悩んでいるわけでもないので、全て入れてしまいます。

  • noto-cjk-20240730
  • noto-emoji-2.051v0
  • noto-fonts-2026.03.01v0
  • noto-nerd-fonts-3.3.0

 

最後に日本語変換です。OpenBSDのパッケージにはmozcが無かったのでanthyにしました。以下のパッケージを入れましたが、依存関係にあるパッケージが勝手にインストールされるので、この3つだけをインストールしたのではありません。

  • fcitx-anthy
  • fcitx-gtk
  • fcitx-qt

 

日本語変換はインストールしただけでは動きませんから、~/.xsessionにも設定をしておきます。次のようにしました。

#!/usr/local/bin/tcsh

# import env from ~/.login
if (-f ~/.login) source ~/.login

# fcitx-anthy
setenv GTK_IM_MODULE            fcitx
setenv QT_IM_MODULE             fcitx
setenv XMODIFIERS               @im=fcitx
/usr/local/bin/fcitx5 -d &

# go cwm
exec /usr/X11R6/bin/cwm
#[EOF]

 

試しにxtermでCtrl-SPACEを押したら、変換ウィンドウが出てきて、変換もできました。うまくいっているようです。ただし、xtermのフォントと変換ウィンドウのフォントのバランスが悪いので、調整が必要です。 

2026-10-03

スマホ用Firefoxのブックマークに「指定の順序で並べ替え」という設定が存在する

スマホ用Firefoxのブックマークに「指定の順序で並べ替え」という設定がありました。以前は存在しなかったので、いつのまにか新設されたようです。Windows用Firefoxには「並べかえない」という設定が元々存在しました。ところがスマホ用には無かったので、Firefox Syncでブックマークを共用している場合に、Windosとスマホとで出現順序が違うので、戸惑っていました。

 

スマホでは「指定の順序で並べ替え」という設定項目名になり、Windowsでは「並べ替えない」という設定項目名になっています。どうして同じにしないのかと、不思議で仕方ありません。それはともかくとして、Windowsとスマホとでブックマークの出現順序が揃ったので、ありがたいことは確かです。 

「~/.xsession」を「#!/usr/local/bin/tcsh」とする

最近入手したLet's note CF-SV8RDCVSにOpenBSD/amd64 7.9を入れました。日本語環境を設定するため、環境変数「LANG」に「ja_JP.UTF-8」を指定する方法を探していました。ログインクラスを利用しようと思いましたが、思ったように動作しないので断念しました。ホームディレクトリにあるドットファイルで個別に指定するしかないようです。


ログインシェルにはtcshを利用しています。パッケージから導入したので「/usr/local/bin/tcsh」です。環境変数を設定するなら「~/.login」を編集することになるでしょう。一方でxenodmからcwmを利用する場合には「~/.xsession」が使われ、通常は「/bin/sh」で解釈されます。

 

Bシェル系とCシェル系とでは環境変数を設定する書式が違いますので、ワンライナーか何かで変換し、一方から他方を参照しようと考えていました。Geminiに相談したら、「~/.xsessionにシバンで/usr/local/bin/tcshを指定する」という方法を教えてくれました。そうすれば「if ( -f ~/.xsession ) source ~/.xsession」で一発です。こういう発想はなかったので、目から鱗でした。

 

これで「LANG=ja_JP.UTF-8」を指定することができるようになったので、日本語環境の設定を進めていけます。

2026-10-02

環境変数「LANG」設定にOpenBSDでログインクラスを利用するのは断念

Let's note CF-SV8RDCVSにOpenBSD/amd64 7.9をインストールしました。まだOSを入れただけですので、これから設定していくことになります。まずは日本語環境から設定します。そのために環境変数「LANG」を「ja_JP.UTF-8」にします。これを設定するなら、シェルの初期化スクリプトを使うことが多いかもしれません。今のところ、次のような形態を想定しているので、シェルの初期化スクリプトを使うのは二の足を踏みます。

  1. Windows11のRLoginを使ってSSHログインする。
  2. xenodmでログインしてcwmを使う。 

 

SSHログインの場合、シェルには「tcsh」を使っているので、「~/.login」に設定することになります。一方でxenodmの場合、「~/.xsession」に設定することになります。それだけではなく、Bシェル系とCシェル系とに分かれるので、両者の設定を共用できません。こうなるのでログインクラスを使いたかったのですが、OpenBSDでは、バグなのか仕様なのか不明ですが、うまくいかないのです。

 

Geminiにアドバイスを求めた結果、「~/.xsession」の設定をワンライナーで加工して「~/.login」で利用すれば良いのではないかという結論に至りました。もっと複雑な方式を構築することも出来るかもしれませんが、「KISS原則」に従おうと思います。

2026-10-01

「/etc/login.conf.d」はOpenBSD 7.1で導入

OpenBSDではディレクトリ「/etc/login.conf.d」というものがあります。調べてみると、OpenBSD 7.1の「What's New」で次のように書かれています。

 Introduced support for storing capability databases in /etc/login.conf.d, allowing easy addition of custom login classes from packages and made rcctl(8) look for the login class in both login.conf and login.conf.d/${class}. 

 

パッケージで使われることを想定して導入されたようです。何か実例はないかと探してみると「databases/mariadb」に「mysqld.login」を見つけました。

 

またOpenBSDでは、「LOGIN.CONF(5)」で「Sites with very large /etc/login.conf files may wish to create a database version of the file, /etc/login.conf.db, for improved performance. Using a database version for small files does not result in a performance improvement.」と書かれています。OpenBSDでは「cap_mkdb」にかけるか否かはオプションです。ところがFreeBSDでは、「LOGIN.CONF(5)」では「Whenever to this, or the user's ~/.login_conf, file are made, the modifications will not be picked up until cap_mkdb(1) is used to compile the file into a database.」と書かれているように、「cap_mkdb」にかけなければなりません。

OpenBSDのログインクラスは手強い

今夏に手に入れたLet's note CF-SV8RDCVSにOpenBSD/amd64 7.9をインストールしました。OSを入れただけなので、日本語環境とか、GUIとか、これから設定していくことになります。何から手を付けようかと思いましたが、まず日本語環境として、ロケール「ja_JP.UTF-8」、日本語フォント、日本語入力などを済ませようと思います。

 

まず最初にロケールの設定です。要するに環境変数「LANG」に「ja_JP.UTF-8」を設定するわけです。ユーザのホームディレクトリにあるドットファイルでファイルで設定する方法がありますが、ここはログインクラスを使おうと思います。FreeBSDではファイル「~/.login_conf」に書くだけでした。同じようにするだけかと思ったら、これはFreeBSD独自拡張であって、OpenBSDでは参照されないことが判明しました。

 

一方でOpenBSDにはディレクトリ「/etc/login.conf.d」という拡張があります。ファイル「/etc/login.conf」との使い分けが良く分からないので、マニュアル「LOGIN.CONF(5)」を良く読んでみようと思います。せっかくなので各BSDのマニュアルに目を通しておこうと思います。

 

そもそもログインクラスとは何のために存在し、どのように使うことが想定されているのか、役割がよくわかりません。マニュアルに記載されているのは、書式とか、設定できる内容がほとんどです。偶に簡単な歴史が書かれていることもありますが、様々な環境でドットファイルに何を書き、何を書かないか、詳述されていることはなさそうです。何か参考になる資料があればと思います。