2026-10-03

「~/.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のマニュアルに目を通しておこうと思います。

 

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

2026-09-23

NetBSD/i386+MATEのdynabook SS SX/15AからOpenBSD/amd64+cwmのLet's note CF-SV8RDCVSへ

Windows Vista時代に購入したdynabook SS SX/15AをNetBSD/i386に入れ換え、MATEデスクトップ環境にして使ってきましたが、限界を感じるようになってきました。ここ数年は、32ビット環境を対象外とするアプリケーションが増えています。また、Vistaの頃から発生していましたが、PC本体が不調で、電源投入時にOSが起動しないことがあります。そういう場合には、本体を揺すってみたり、表面や裏面から押してみたりしているのですが、末期症状です。

 

2026年8月に、代替としてLet's note CF-SV8RDCVSを中古で購入しました。BSD系のOSを入れることには迷いはなく、Linux系は避けるつもりですが、FreeBSD/NetBSD/OpenBSDのような伝統的BSDにするか、DragonFly BSD/nomadBSD/helloSystemのような新興勢力BSDにするか、迷っていました。先月から今月にかけて各種BSDを試行検討してきました。さらにデスクトップ環境として何を選択するのかも、迷っていました。

 

最終的にFreeBSDかOpenBSDかの二択となりました。デスクトップ環境としてKDE plasmaを試行したらOpenBSDは動作が不安定だったこともあり、FreeBSDを選ぼうかという気になっていましたが、ブレーンストーミングとしてGeminiに相談しました。OpenBSDは独自の拘りに満ち溢れています。FreeBSDは、Linux系ほどではありませんが、NetBSDやOpenBSDのような拘りが薄く、使いやすさを追求する指向が強いと思います。

 

相談した結果、OpenBSDを選びました。デスクトップ環境を使うのは止めて、軽量ウィンドウマネージャであるcwmを使ってみようと思います。KDE/MATE/Xfceのようなデスクトップ環境は、初期状態からリッチな画面が提供されていますが、一方で軽量ウィンドウマネージャは、初期状態では地味な画面がデフォルトです。しかし設定次第でリッチな画面にできない訳ではないようです、antiXのような画面にすることも可能のようです。方向性は固まりました。 

2026-09-22

新興BSDを検討

Let's note CF-SV8RDCVSに伝統BSD(FreeBSD/NetBSD/OpenBSD)を評価してみました。NetBSDは、無線LANインターフェイス未対応だったため、候補から脱落しました。伝統的なBSD以外にも、次のような新興勢力のBSDがあります。これを検討してみました。

  1. DragonFly BSD
  2. NomadBSD
  3. MidnightBSD
  4. GhostBSD
  5. helloSystem
  6. ravynOS

 

DragonFly BSDには「HAMMER」という独自のファイルシステムがあります。helloSystemやravynOSは独自色が強い印象です。しかし新興BSDは、基本的にFreeBSDをベースにしており、それぞれに方向性は異なるものの、伝統BSDのような違いはありません。

 

Let's noteにインストールするにあたり、伝統BSDと新興BSDを等価に考えていました。しかし検討してみると、結局は、FreeBSDにするか、OpenBSDにするかの二択に絞られてきました。どちらにするにしても、GUIが欲しいので、デスクトップ環境に何を選ぶのかも決める必要があります。だいぶ絞られてきましたが、もう少し検討を続けようと思います。

2026-09-21

OpenBSDにKDE plasmaをインストール

Let's note CF-SV8RDCVSにOpenBSD 7.9をインストールしました。FreeBSDとは違い、インストールが終わるとxenodmでグラフィカルにログインできますが、起動するのはtwmです。OpenBSDらしい硬派な環境ではありますが、デスクトップ環境を入れようと思います。FreeBSDで各種デスクトップ環境を試してみました。OpenBSDでは、FreeBSDよりは選択肢が少なくなりますが、メジャーなKDE plasmaを入れることが可能です。

 

OpenBSDでパッケージからインストールするにはコマンド「pkg_add」を使用します。OpenBSD Handbookの「Desktop Environments and Window Managers」を参考に「doas pkg_add kde-plasma」とすると、460個ほどのパッケージがインストールされました。xennodmからログインすると、KDE plasmaが起動します。FreeBSDでは「KDE plasma Version 6.6.6」でしたが、OpenBSDでは「KDE plasma Version 6.6.4」でした。

 

日本語環境として、フォント「noto-cjk」 と日本語入力「fcitx-anthy」を入れておきます。この後で、KDE設定から「Region & Language」として「日本語」を選択します。ログインし直すと、日本語環境になりました。

 

この後は更にFreeBSD同様にアプリケーションを入れて評価しようと考えていたのですが、動作が若干怪しいです。アプリケーションのアイコンをクリックしても起動せず、ホームディレクトリにはコアがあります。何が原因なのかは調べていませんが、ほぼ何もしていない段階で動作が不安定になると、使い続ける意欲が下がるのは否めません。

 

OpenBSDの評価は、ここまでにしようかと思います。FreeBSD/NetBSD/OpenBSDと伝統的なBSDをLet's noteにインストールしてきました。NetBSDは無線LANインターフェイスが未対応でしたし、OpenBSDはKDEの動作に不安があります。今後は、新興BSDを試してみようかと思います。