📖

Linux 用カーソルテーマを作る

2023/08/05に公開

Lubuntu 22 LTS (LXQt) での話.
カーソルカスタマイズ用に配布されているPNGフリー素材をLubuntuで使おうとしたのだが、手順がどこにもなくて割と詰まったので覚書.

大まかな手順:

  • 試しに適当なカーソルテーマへ変えてみる
  • /usr/share/icons 配下から適当なカーソルテーマをコピーして ~/.local/share/icons 配下へコピーする
    • ディレクトリ名をテーマ名に変更しておく
  • PNGフリー素材は複数のカーソル画像を1ファイルに突っ込んであることが多いので分割
    • 画像を適当なサイズへ切り抜く(縦横比1:1). 透過処理しておく.
  • それぞれのカーソルについてXCURSORファイルを生成する
    • xcursorgenコマンドを使うためAPTからx11-appsをインストール
    • xcursorgen用のconfigファイルを書いてxcursorgenコマンドをたたく
  • 適切なパスへXCURSORファイルを配置する
    • ~/.local/share/icons/{theme name}/cursors 配下のファイルを上書きする
  • カーソルテーマを変更

試しに適当なカーソルテーマへ変えてみる

archlinux wikiにインストール方法が書いてあるのでそれに従って実施.
今回は手動でOpen Desktopの素材を入れてみた.

最初、GUI上から「設定>ルックアンドフィール」で変更しようとしたがうまく反映されず(何故かシステムにインストールされていたカーソルテーマへの変更は可能).
よく見ると「設定>LXQt設定>外観」というメニューが別にあって、そちらだと
~/.local/share/icons 配下へ手動で展開したテーマを読み込むことができた.
外観メニューはlxqt-config-appearanceコマンドでも開くことができる.

適当なカーソルテーマをコピー

さすがに一から構築するのは怠いのでコピーして一部だけ書き換えることにした.

/usr/share/icons 配下から適当なカーソルテーマをコピーして ~/.local/share/icons 配下へコピーする. 自環境だと breeze_cursors がデフォルトなのでこれを利用する.
コピーするときにはシンボリックリンクはそのまま残す. つまり cp -a すると良い.
ついでにディレクトリ名を自分の好きなテーマ名へ変更しておく

カーソル画像の分割

PNGフリー素材は複数のカーソル画像を1ファイルに突っ込んであることが多いので分割する.
画像を適当なサイズへ切り抜く(縦横比1:1). 透過処理しておく.
トリムに使うエディタは何でもよい.
後で適切にパスへマッピングしていく必要があるので、ファイルにはわかりやすい名前を付けておく.

XCURSORファイルの生成

カーソル用のファイルは汎用画像ではなく専用のバイナリ形式となっているので、専用のコマンドで生成する必要がある. X以外の他の環境でどうなのかは知らない.

まずxcursorgenコマンドを使うためAPTからx11-appsをインストール.
それぞれのカーソルについて以降の手順を繰り返し、XCURSORファイルを生成していく.

xcursorgen用のconfigファイルを書く

テキストエディタで以下の様式を記入したconfigファイルを作成する.

{PNGピクセルサイズ} {hotx} {hoty} {PNGファイル名}

解説はarchlinux wikiにあるが、ファイル名以外は使いながら調整するのがよいかもしれない.

コマンドをたたいてカーソル画像を生成する.
1回で1つ作成される.

$ xcursorgen {configfile} {XCURSORファイル名}

適切なパスへXCURSORファイルを配置する

新たに生成したファイルで ~/.local/share/icons/{theme name}/cursors 配下のファイルを上書きしていくのだが、このフェーズが一番面倒だった.
というのはファイル名だけだと、どのタイミングでどのファイルが使われるのか全く分からないからである.

結論としてはfreedesktop.orgの仕様解説を読みつつ、以下のカーソルテーマをダウンロードして試行錯誤するのが早そう.

https://www.gnome-look.org/p/999853

マウスの挙動ごとにどのXCURSORファイルが使用されるのか番号で分かるようになっている.
或いは以下の画像情報を参考に.

配置が終わったら最初に書いた方法でテーマを変更してみる.

おわりに

MacとかWindowsで使う人が大半だから無理もないのだが、自分でやると手間がかかる.

Discussion