▼CentOS 8 の KDE 環境での日本語入力環境の準備▼

CentOS 8/RHEL 8 では、GUIデスクトップ環境は GNOME3 だけとなり、KDEは含まれなくなりました。 KDE 5 は Fedora EPEL (Extra Packages for Enterprise Linux) で提供されています。

が、EPELに移ったせいか、日本語入力環境を整えるための工程が 自明でなくなりました。 本稿は、この日本語入力環境を整えてみるまでのガイドです。

CentOS 8 の最小インストールからのスタートを前提として書いています。 GNOME3をすでに入れてしまった場合は不要な工程もあるかも。

(2020.11) $Keywords: RHEL 8, CentOS 8 KDE 5, 日本語環境 $


▼EPELリポジトリのインストール

CentOS 8 の場合、 Extras リポジトリに epel-release というパッケージが含まれているので、 これをインストールするだけです。

[root@c8x64 ~]# dnf repolist
repo id                            repo の名前
AppStream                          CentOS-8 - AppStream
BaseOS                             CentOS-8 - Base
extras                             CentOS-8 - Extras

[root@c8x64 ~]# dnf list epel-release
メタデータの期限切れの最終確認: 0:02:03 時間前の 2020年09月20日 06時35分06秒 に実施しました。
利用可能なパッケージ
epel-release.noarch                        8-8.el8                        extras

[root@c8x64 ~]# dnf install epel-release
...
インストール済み:
  epel-release-8-8.el8.noarch

完了しました!

[root@c8x64 ~]# dnf repolist
repo id            repo の名前
AppStream          CentOS-8 - AppStream
BaseOS             CentOS-8 - Base
epel               Extra Packages for Enterprise Linux 8 - x86_64
epel-modular       Extra Packages for Enterprise Linux Modular 8 - x86_64
extras             CentOS-8 - Extras

▼KDEデスクトップ環境のインストール

dnf group list -v で、 kde-desktop-environment が準備されていることを確認します。
[root@c8x64 ~]# dnf group list -v
ロードされたプラグイン: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync
DNF version: 4.2.17
...
利用可能な環境グループ:
   サーバー (GUI 使用) (graphical-server-environment)
   サーバー (server-product-environment)
   ワークステーション (workstation-product-environment)
   KDE Plasma デスクトップワークスペース (kde-desktop-environment)
   仮想化ホスト (virtualization-host-environment)
   カスタムオペレーティングシステム (custom-environment)
インストール済みの環境グループ:
   最小限のインストール (minimal-environment)
利用可能なグループ:
   コンテナー管理 (container-management)
   .NET Core 開発 (dotnet-core)
   RPM 開発ツール (rpm-development-tools)
   開発ツール (development)
   グラフィカル管理ツール (graphical-admin-tools)
   ヘッドレス管理 (headless-management)
   レガシーな UNIX 互換性 (legacy-unix)
   ネットワークサーバー (network-server)
   科学的サポート (scientific)
   セキュリティーツール (security-tools)
   スマートカードサポート (smart-card)
   システムツール (system-tools)
   Fedora パッケージャ (fedora-packager)
   Xfce (xfce-desktop)

dnf group install kde-desktop-environment で、インストールします。

[root@c8x64 ~]# dnf group install kde-desktop-environment
...
エラー:
 問題 1: conflicting requests
  - nothing provides xmessage needed by plasma-workspace-5.18.4.1-2.el8.x86_64
 問題 2: package sddm-breeze-5.18.4.1-2.el8.noarch requires plasma-workspace = 5.18.4.1-2.el8, but none of the providers can be installed
  - conflicting requests
  - nothing provides xmessage needed by plasma-workspace-5.18.4.1-2.el8.x86_64
 問題 3: package plasma-desktop-5.18.4.1-2.el8.1.x86_64 requires plasma-workspace >= 5.18, but none of the providers can be installed
  - conflicting requests
  - nothing provides xmessage needed by plasma-workspace-5.18.4.1-2.el8.x86_64
 問題 4: package kde-print-manager-19.12.3-2.el8.x86_64 requires plasma-workspace, but none of the providers can be installed
  - conflicting requests
  - nothing provides xmessage needed by plasma-workspace-5.18.4.1-2.el8.x86_64

おっと、xmessage がないというエラーが出ますね。 xmessageは CentOSのPowerTools リポジトリにあるので、 /etc/yum.repos.d/CentOS-PowerTools.repo を編集して enabled=1 にするか、 dnf config-manager --set-enabled PowerTools で有効化します。

[root@c8x64 yum.repos.d]# dnf config-manager --set-enabled PowerTools
[root@c8x64 yum.repos.d]# grep enabled /etc/yum.repos.d/CentOS-PowerTools.repo
enabled=1

再度、kde-desktop-environment をインストール。

[root@c8x64 yum.repos.d]# dnf group install kde-desktop-environment
CentOS-8 - PowerTools                           634 kB/s | 1.9 MB     00:03
メタデータの期限切れの最終確認: 0:00:02 時間前の 2020年09月20日 06時51分46秒 に実施しました。
no group '3d-printing' from environment 'kde-desktop-environment'
no group 'cloud-management' from environment 'kde-desktop-environment'
no group 'firefox' from environment 'kde-desktop-environment'
no group 'kde-telepathy' from environment 'kde-desktop-environment'
グループパッケージ "dnfdragora" に一致するものはありません
グループパッケージ "kmail" に一致するものはありません
グループパッケージ "korganizer" に一致するものはありません
グループパッケージ "kget" に一致するものはありません
グループパッケージ "kaddressbook" に一致するものはありません
グループパッケージ "plasma-discover" に一致するものはありません
グループパッケージ "akregator" に一致するものはありません
グループパッケージ "kontact" に一致するものはありません
グループパッケージ "qt-at-spi" に一致するものはありません
グループパッケージ "pinentry-qt" に一致するものはありません
グループパッケージ "NetworkManager-config-connectivity-fedora" に一致するものはありません
依存関係が解決しました。
================================================================================
 パッケージ                      Arch   バージョン             Repo       サイズ
================================================================================
...
環境グループのインストール中:
 KDE Plasma Workspaces
グループのインストール中:
 KDE

トランザクションの概要
================================================================================
インストール    753 パッケージ
アップグレード    9 パッケージ

ダウンロードサイズの合計: 655 M
これでよろしいですか? [y/N]:
冒頭に出てくる
no group 'firefox' from environment 'kde-desktop-environment'
グループパッケージ "kmail" に一致するものはありません
というのは、リポジトリメタデータには載ってるが、 EPELでも実パッケージが提供されていないもののエラーです。 「これでよろしいですか? [y/N]:」までたどり着けていればとりあえず気にしない方向で。
KDEに関する EPELのリポジトリメタデータは RHEL 7 の物を流用しているらしく、 まだEPELでは提供されていないパッケージグループが載っていたりします。

▼xinit で Xorgの動作確認

startx で早速動かしたいところですが、トラブル切り分けのため まず xinit で Xorg + xterm だけで動くかどうか確認します。

デフォルトでは xterm はインストールされなくなったので、入れておきます。 (konsoleがインストール直後は使いにくい状態なので、xtermがあると便利です)

[root@c8x64 ~]# dnf install xterm
メタデータの期限切れの最終確認: 0:47:52 時間前の 2020年09月20日 19時51分46秒 に実施しました。
依存関係が解決しました。
================================================================================
 パッケージ           Arch           バージョン         リポジトリー      サイズ
================================================================================
インストール中:
 xterm                x86_64         331-1.el8          AppStream         528 k
...

xinit で、xterm が一枚だけある画面になれば、Xorg周辺に問題はないと考えられます。

[root@c8x64 ~]# xinit
[xinit で xterm1枚だけの画面]

xterm の中で exit と打てば Xorgも終了します。


▼startx で KDE を起動

[kabe@c8x75 ~]$ env LANG=ja_JP.utf-8 startx
[KDE5のSplash画面]
[KDE5で日本語が豆腐になっている]

あらら、日本語が全部豆腐マークになってますね。


▼日本語フォントを追加

日本語フォントがインストールされていないのが原因なので、追加します。 google-noto-sans-cjk-ttc-fonts.noarch (AppStream) もしくは google-noto-sans-cjk-jp-fonts.noarch (PowerTools) をインストールします。

[root@c8x64 kabe]# dnf install google-noto-sans-cjk-jp-fonts.noarch
メタデータの期限切れの最終確認: 1:00:50 時間前の 2020年09月20日 19時51分46秒 に実施しました。
依存関係が解決しました。
================================================================================
 パッケージ                      Arch     バージョン         リポジトリー サイズ
================================================================================
インストール中:
 google-noto-sans-cjk-jp-fonts   noarch   20190416-1.el8     PowerTools    84 M
依存関係のインストール中:
 google-noto-cjk-fonts-common    noarch   20190416-1.el8     AppStream     20 k

トランザクションの概要
================================================================================
インストール  2 パッケージ

ダウンロードサイズの合計: 84 M
インストール済みのサイズ: 116 M
これでよろしいですか? [y/N]:
...

[kabe@c8x75 ~]$ env LANG=ja_JP.utf-8 startx

豆腐は解消されました。 [KDE5 豆腐解消]


▼konsole がプロポーショナルフォントを使っている

xtermを入れているのでそっちを使えばいいのですが、 インストール直後はなぜか konsole がプロポーショナルフォントを使っていて、 とても使いにくい状態です。
[プロポーショナルフォントを使っている konsole]

dejavu-sans-mono-fonts パッケージを入れると、 「正しく」モノスペースフォントが使われるようになります。

[root@c8x64 kabe]# dnf install dejavu-sans-mono-fonts
メタデータの期限切れの最終確認: 1:10:53 時間前の 2020年09月20日 19時51分46秒 に実施しました。
依存関係が解決しました。
================================================================================
 パッケージ                   Arch         バージョン        リポジトリー サイズ
================================================================================
インストール中:
 dejavu-sans-mono-fonts       noarch       2.35-6.el8        BaseOS       447 k
依存関係のインストール中:
 dejavu-fonts-common          noarch       2.35-6.el8        BaseOS        74 k

トランザクションの概要
================================================================================
インストール  2 パッケージ

ダウンロードサイズの合計: 521 k
インストール済みのサイズ: 1.3 M
これでよろしいですか? [y/N]:

フォントをインストールしたあと、konsole の「設定(S)」→「現在のプロファイルを編集(E)...」→ 「外観」→「Font: ... [Choose...]」→DejaVu Sans Mono, Book を選ぶと、モノスペースフォントになって使いやすくなります。 (なんで「モノスペース」フォントでモノスペースフォントを選んでくれないんだろう?)

[konsole でモノスペースフォントを設定]
[モノスペースフォントを使うようになった konsole]

▼日本語入力メソッドのインストール

ibus-kkc がインストールされていないので、この状態では日本語入力ができません。 入力メソッドはなぜか隠し属性のついたパッケージグループになっています。

[kabe@c8x64 ~]$ dnf group list -v --hidden
...
利用可能なグループ:
   バックアップクライアント (backup-client)
   base-x (base-x)
   AppStream と競合 (conflicts-appstream)
   コンテナー管理 (container-management)
   デバッグツール (debugging)
   デスクトップのデバッグとパフォーマンスツール (desktop-debugging)
   .NET Core 開発 (dotnet-core)
   FTP サーバー (ftp-server)
   GNOME アプリケーション (gnome-apps)
   グラフィックスツール (graphics)
   ゲストエージェント (guest-agents)
   ゲストデスクトップエージェント (guest-desktop-agents)
   入力メソッド (input-methods)
   インターネットアプリケーション (internet-applications)
   インターネットブラウザー (internet-browser)
   Java プラットフォーム (java-platform)
   レガシーな X ウィンドウシステム互換性 (legacy-x)
...

dnf group install input-methods でインストールできます。

[kabe@c8x64 ~]$ sudo dnf group install input-methods
メタデータの期限切れの最終確認: 1:41:55 時間前の 2020年09月20日 19時51分46秒 に実施しました。
依存関係が解決しました。
==================================================================================================================
 パッケージ                             Arch            バージョン                       リポジトリー       サイズ
==================================================================================================================
group/module パッケージをインストール中:
 gtk2-immodule-xim                      x86_64          2.24.32-4.el8                    AppStream           21 k
 gtk3-immodule-xim                      x86_64          3.22.30-5.el8                    AppStream           21 k
 ibus-hangul                            x86_64          1.5.1-4.el8                      AppStream           75 k
 ibus-kkc                               x86_64          1.5.22-9.el8                     AppStream           86 k
 ibus-libpinyin                         x86_64          1.10.0-1.el8                     AppStream          833 k
 ibus-libzhuyin                         x86_64          1.8.93-1.el8                     AppStream          7.4 M
 ibus-m17n                              x86_64          1.3.4-26.el8                     AppStream           58 k
 ibus-typing-booster                    noarch          2.1.0-3.el8                      AppStream          508 k
依存関係のインストール中:
...

ただ、input-methods パッケージグループをインストールしただけでは 日本語入力可能にはなりません。以下の設定がないからです:

設定に必要なデータは /etc/X11/xinputrc → /etc/alternatives/xinputrc → /etc/X11/xinit/xinput.d/ibus.conf に準備はされています。


▼手動で ibus-daemon を上げてみる

[kabe@c8x64 ~]$ ibus-daemon -d -r --xim
[kabe@c8x64 ~]$ ps axlw|grep ibus
0  1000    8257       1  20   0 415416 11548 x64_sy Sl   ?          0:00 /usr/libexec/kimpanel-ibus-panel-launcher
1  1000    8284       1  20   0 738100  6396 x64_sy Ssl  ?          0:00 ibus-daemon -d -r --xim
0  1000    8287    8284  20   0 505780  8100 x64_sy Sl   ?          0:00 /usr/libexec/ibus-dconf
0  1000    8289    8284  20   0 643376 30276 x64_sy Sl   ?          0:00 /usr/libexec/ibus-ui-gtk3
0  1000    8291    8284  20   0 638492 26156 x64_sy Sl   ?          0:00 /usr/libexec/ibus-extension-gtk3
0  1000    8294       1  20   0 553316 18792 x64_sy Sl   ?          0:00 /usr/libexec/ibus-x11 --kill-daemon
0  1000    8300    4847  20   0 505776  8236 x64_sy Sl   ?          0:00 /usr/libexec/ibus-portal

ibus-setup コマンドを手動で叩いて設定してみます…

[kabe@c8x64 ~]$ ibus-setup
/usr/bin/ibus-setup: 29 行: exec: python3: 見つかりません

なぜかibus-setup に必要な/usr/bin/python3 が、自動で引き込まれていません。

[kabe@c8x64 ~]$ dnf -C whatprovides /usr/bin/python3
メタデータの期限切れの最終確認: 1:56:22 時間前の 2020年09月20日 19時51分46秒 に実施しました。
python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64 : Interpreter of the Python programming language
Repo        : AppStream
一致:
ファイル名    : /usr/bin/python3

python38-3.8.0-6.module_el8.2.0+317+61fa6e7d.x86_64 : Interpreter of the Python programming language
Repo        : AppStream
一致:
ファイル名    : /usr/bin/python3

[kabe@c8x64 ~]$ rpm -q python36
パッケージ python36 はインストールされていません。

仕方がないので、手動でインストールします。

[kabe@c8x64 ~]$ sudo dnf install python36
[sudo] kabe のパスワード:
メタデータの期限切れの最終確認: 1:57:30 時間前の 2020年09月20日 19時51分46秒 に実施しました。
依存関係が解決しました。
==================================================================================================================
 パッケージ                 Arch           バージョン                                     リポジトリー      サイズ
==================================================================================================================
インストール中:
 python36                   x86_64         3.6.8-2.module_el8.1.0+245+c39af44f            AppStream          19 k
依存関係のインストール中:
 python3-pip                noarch         9.0.3-16.el8                                   AppStream          19 k
 python3-setuptools         noarch         39.2.0-5.el8                                   BaseOS            162 k
モジュールストリームの有効化中:
 python36                                  3.6

トランザクションの概要
==================================================================================================================
インストール  3 パッケージ

ダウンロードサイズの合計: 201 k
インストール済みのサイズ: 466 k
これでよろしいですか? [y/N]:
...

[kabe@c8x64 ~]$ which python3
/usr/bin/python3

ibus-setup を手動で起動し、「入力メソッド」タブに 「[あ] 日本語 - かな漢字」が含まれるように設定します。

[IBusの設定で日本語-かな漢字を追加]

タスクトレイにキーボードアイコンが出ている(はず)なので、 左クリック→「日本語 - かな漢字」を選ぶと、[あ] のアイコンに変わるはずです。
[右下のキーボードアイコンから「かな漢字」を選択]
[右下に[あ]アイコン]

◆アイコンが現れない場合

まれに、ibus-daemon を起動してもキーボードアイコンがタスクトレイに現れない場合があります。 その場合は、一旦 ~/.config/ (KDEの個人設定が入ってます) を全部消してやり直してみてください。 (どのファイルが悪いのか、までは突き止められませんでした)


▼ibus入力に必要な環境変数を設定してみる

次に、環境変数の設定を試しに手動で設定してみます。

export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULES=ibus

この設定を .bashrc とかに埋め込め、みたいな資料をよく見かけますが、 生コンソール使用時や ssh で入った時など、 GUIデスクトップ環境でない場合は、これらは設定したくないので、 デスクトップ環境側の設定メカニズムで設定させるのが本来の姿です。

今はテストなので、上の環境変数を手動で設定してみます。 そのあと、環境変数が設定されているコマンドラインから

$ xterm
を起動してみます。 [xtermで日本語入力]

日本語入力ができない場合は、以下を確認します:

[入力モードで(o)ひらがな を選択]

とりあえずここまで成功すれば、日本語入力は可能なことはわかりました。

次は、以下をどう自動化するかです:


▼ibus-daemon を自動的に起動させる

以下のような設定ファイルを /etc/xdg/autostart/x-ibus-daemon.desktop として置いてみます:

# /etc/xdg/autostart/x-ibus-daemon.desktop
[Desktop Entry]
Name=ibus-daemon
Exec=ibus-daemon -d -r -x
Type=Application
Terminal=false
X-KDE-autostart-after=panel
X-KDE-StartupNotify=false

▼環境変数をデスクトップ環境で設定する

以下のようなスクリプトを /etc/xdg/plasma-workspace/env/x-read-xinputrc.sh (startkdeから読まれる) として置いてみます:

#!/bin/sh
# /etc/xdg/plasma-workspace/env/x-read-xinputrc.sh
#
# read in /etc/X11/xinit/xinputrc and set environs
#
# invocation of $XIM_PROGRAM is done in
# /etc/xdg/autostart/x-ibus-daemon.desktop
#

# user settings should be overridable in
# ~/.config/plasma-workspace/env/*.sh

if [ -z "$XMODIFIERS" ]; then   # no user settings
if [ -r /etc/X11/xinit/xinputrc ]; then

. /etc/X11/xinit/xinputrc

test -n "$XIM" && export XMODIFIERS=@im=${XIM}
test -n "$GTK_IM_MODULE" && export GTK_IM_MODULE
test -n "$QT_IM_MODULE" && export QT_IM_MODULE

fi
fi

で、これで再度 startx してみますと
[タスクトレイのアイコンが増えてしまう]
なんかアイコンが増えてしまうんですよね。理由不明。 手動で ibus-daemon -d -r -x した場合はこうならないのですが。


▼ imsetting パッケージをインストールする

上で行ったibus-daemon の起動と 環境変数の設定は、 汎用的な形で imsettings パッケージがやってくれるようです。

[kabe@c8x64 ~]$ sudo dnf install imsettings
[sudo] kabe のパスワード:
メタデータの期限切れの最終確認: 0:08:13 時間前の 2020年09月20日 22時47分22秒 に実施しました。
依存関係が解決しました。
==================================================================================================================
 パッケージ                          アーキテクチャー      バージョン                   リポジトリー        サイズ
==================================================================================================================
インストール中:
 imsettings                          x86_64                1.8.1-3.el8                  epel                227 k
依存関係のインストール中:
 imsettings-gsettings                x86_64                1.8.1-3.el8                  epel                116 k
 imsettings-libs                     x86_64                1.8.1-3.el8                  epel                127 k

トランザクションの概要
==================================================================================================================
インストール  3 パッケージ

ダウンロードサイズの合計: 470 k
インストール済みのサイズ: 2.1 M
これでよろしいですか? [y/N]:

imsettings パッケージに含まれる /etc/X11/xinit/xinitrc.d/50-xinput.sh が環境変数の設定、ibus-daemon の起動をやってくれます。

手動設定した /etc/xdg/autostart/x-ibus-daemon.desktop , /etc/xdg/plasma-workspace/env/x-read-xinputrc.sh は消します。

この場合、なぜか右端の[あ] (iBusパネル) は現れません。なんでだろう。
[imsettings 導入後のタスクトレイアイコン]


▼im-chooserのインストール

ibus-setup を手動で起動することを覚えておけば不要ですが、 (タスクトレイの[あ]アイコンの右クリック→「Configure Input Method」からでも行けますが) アプリケーションランチャー(左下のスタートメニュー)に陽に 設定メニューエントリ追加したい場合は、 im-chooser パッケージをインストールします。

[kabe@c8x64 ~]$ sudo dnf install im-chooser
[sudo] kabe のパスワード:
メタデータの期限切れの最終確認: 0:20:21 時間前の 2020年09月20日 22時47分22秒 に実施しました。
依存関係が解決しました。
==================================================================================================================
 パッケージ                        アーキテクチャー       バージョン                   リポジトリー         サイズ
==================================================================================================================
インストール中:
 im-chooser                        x86_64                 1.7.3-1.el8                  epel                  32 k
依存関係のインストール中:
 im-chooser-common                 x86_64                 1.7.3-1.el8                  epel                 242 k

トランザクションの概要
==================================================================================================================
インストール  2 パッケージ

ダウンロードサイズの合計: 274 k
インストール済みのサイズ: 890 k
これでよろしいですか? [y/N]: y
[設定メニューに「入力メソッドのセレクター」が追加される]
[ibus-setup の画面]
kabe.sra-tohoku.co.jp