大概のLinuxで使えそうな日本語入力(Flatpak版Fcitx5-Mozc)


# Flatpak版Fcitx5-Mozc
おそらく多くの人が用いている日本語入力のFcitx5-Mozc。そのFlatpak版が提供されています。  
Flatpak版のFcitx5-Mozcは、動作するディストリビューションが多いと思います。
特にマイナーなディストリビューションでも、Flatpakに対応してくれていたら、日本語入力が容易になることでしょう。  
安定版も比較的バージョンが新しいです。
Mozcのツールバーのアイコンが表示されない、設定画面の一部反応など、？がつく部分もありますが、実用範囲内で動作してくれています。
(アイコン表示は、開発版では修正済みです。そのうち安定版にも反映されるでしょう。)
```sh
flatpak search org.fcitx.Fcitx5.Addon.Mozc
```
```sh
Name                        Description                                     Application ID                       Version                Branch          Remotes
Fcitx 5 用の Mozc           Mozc をベースとした日本語入力メソッド           org.fcitx.Fcitx5.Addon.Mozc          2.30.5448.102          stable          flathub
```
```sh
flatpak info org.fcitx.Fcitx5.Addon.Mozc
```
```sh
Fcitx 5 用の Mozc - Mozc をベースとした日本語入力メソッド

          ID: org.fcitx.Fcitx5.Addon.Mozc
         Ref: runtime/org.fcitx.Fcitx5.Addon.Mozc/x86_64/stable
        Arch: x86_64
      Branch: stable
     Version: 2.30.5448.102
     License: GPL-2.0+
      Origin: flathub
  Collection: org.flathub.Stable
Installation: system
   Installed: 37.2 MB

      Commit: c13565be97a5449c5284f3d8539fb2063ad3881e5fa0610559ac28e21c862ef3
      Parent: b472b71d5d6591fd1b1d8f314f3d7c4038e7b4a99be719b7dba4aa0aee4f85d6
     Subject: Update org.fcitx.Fcitx5.Addon.Mozc (#7) (d8b1fd19)
        Date: 2024-05-03 23:15:31 +0000
```

## インストール
インストール手順[^1]
### 安定版
flatpakコマンドなどでインストールします。
```sh
flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.fcitx.Fcitx5 org.fcitx.Fcitx5.Addon.Mozc
```

### 開発版
```sh
flatpak remote-add --user --if-not-exists fcitx5-unstable https://flatpak.fcitx-im.org/unstable-repo/fcitx5-unstable.flatpakrepo
flatpak install fcitx5-unstable org.fcitx.Fcitx5 org.fcitx.Fcitx5.Addon.Mozc
```

## 自動起動の設定例
Flatpak版Fcitx5-Mozcのdesktopファイルをコピーして、若干修正して、自動起動させる例です。  
下記手順で、大体の環境で自動起動できると思います。
### 安定版
```sh
ls -l /var/lib/flatpak/exports/share/applications/org.fcitx.Fcitx5.desktop
mkdir -p ~/.config/autostart
cp /var/lib/flatpak/exports/share/applications/org.fcitx.Fcitx5.desktop ~/.config/autostart/
sed -i "s|Exec=\(.*\)|Exec=\1 -rd|" ~/.config/autostart/org.fcitx.Fcitx5.desktop
```
### 開発版
```sh
ls -l /var/lib/flatpak/exports/share/applications/org.fcitx.Fcitx5.desktop
mkdir -p ~/.config/autostart
cp /var/lib/flatpak/exports/share/applications/org.fcitx.Fcitx5.desktop ~/.config/autostart/
sed -i "s| --branch=stable | --branch=master |" ~/.config/autostart/org.fcitx.Fcitx5.desktop
sed -i "s|Exec=\(.*\)|Exec=\1 -rd|" ~/.config/autostart/org.fcitx.Fcitx5.desktop
```
## アンインストール
### 安定版
```sh
flatpak uninstall --delete-data --no-related org.fcitx.Fcitx5.Addon.Mozc//stable org.fcitx.Fcitx5//stable
```

### 開発版
```sh
flatpak uninstall --delete-data --no-related org.fcitx.Fcitx5.Addon.Mozc//master org.fcitx.Fcitx5//master
flatpak remote-delete --user fcitx5-unstable
```
### 自動起動の削除
```sh
rm ~/.config/autostart/org.fcitx.Fcitx5.desktop
```

## GNOMEの場合
### Extension Managerのインストール
GNOME(Wayland)では、[Input Method Panel(gnome-extension-kimpanel)](https://extensions.gnome.org/extension/261/kimpanel/)を導入することで、GNOMEのアプリケーション一覧を検索する場合などでも、変換候補の窓が表示されるようになるようです。また変換候補の表示フォントの種類やサイズの指定もできるので便利です。  
GNOMEの拡張機能を管理するソフトを導入して、設定しましょう。
拡張機能の管理ソフトで直接インストールできない場合には、Webブラウザからインストールする形になります。

#### Flatpak版(非公式)
こちらの拡張機能の管理ソフトは拡張機能を検索して、インストールすることができるようです。  
Extension Managerを起動して、新規に拡張機能の`kimpanel`をインストールしましょう。
```sh
flatpak install com.mattjakeman.ExtensionManager
```
#### Ubuntu(APT)
```sh
sudo apt install gnome-shell-extension-manager
```
#### flatpak版gnome公式  
```sh
flatpak install org.gnome.Extensions
```
## 環境変数
特に設定しなくても、問題なく動作する環境もありますが、環境変数の設定が必要な環境もあるかもしれません。
下記の設定で、環境変数を設定したら、ログインしなおしてみてください。
### 設定方法その1
systemdが動作する環境で、設定する場合。
```sh
mkdir -p ~/.config/environment.d/
im=fcitx
cat <<EOL> ~/.config/environment.d/mozc.conf
GTK_IM_MODULE=$im
QT_IM_MODULE=$im
XMODIFIERS=@im=$im
INPUT_METHOD=$im
SDL_IM_MODULE=$im
EOL
```
### 設定方法その2
ArchLinux系のAURのinput-supportパッケージと同じアプローチ。
```sh
sudo mkdir -p /etc/profile.d
cat <<EOL|sudo tee /etc/profile.d/input-support.sh
im=fcitx
export GTK_IM_MODULE=\$im
export QT_IM_MODULE=\$im
export XMODIFIERS=@im=\$im
export INPUT_METHOD=\$im
export SDL_IM_MODULE=\$im
EOL
```

### Flatpakアプリケーションで、日本語入力が動作しない場合、試すこと
Flatpakアプリケーションで環境変数が引き継がれず、うまく動作しない場合があるようです。
その場合に、試すことが下記の手順です。[^2][^3]

#### 日本語入力関連の環境変数の上書き
```sh
sudo flatpak --system override --env="GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS='@im=fcitx'"
```
#### Wayland対応
```sh
flatpak --user override --socket=wayland
```
#### 上書き状態の確認
```sh
flatpak override --show --user
flatpak override --show --system
```
#### flatpakの環境変数の上書きの取り消し
```sh
sudo flatpak override --user --reset
sudo flatpak override --system --reset
```

## Fcitx5の設定
ログインしなおすなどして、Fcitx5が起動したら、キーボードレイアウトなど、設定の調整を行いましょう。
よくおすすめされているのは、[アドオン]-[X Input Method フロントエンド]の[on-the-spot]を有効にする設定です。

## 絵文字
変換候補の窓をはじめ、全般的な絵文字表示で、カラー絵文字、白黒絵文字のどちらを優先させるかは、お好みの問題ではあります。
Noto Color EmojiとDejavu Sansがインストールされていて、Dejavu Sansの白黒絵文字が優先される環境もあるようです。
フォント管理ソフトをインストールして、Dejavu Sansを無効にするなどすれば、Noto Color Emojiなどを優先できます。

下記の設定は、emojiとして設定されているフォントグループを明示的に指定して、優先順位をあげています。
emojiの部分を特定のフォント名に変更するのも、ありかとは思います。
フォントの設定で`system-ui`,`emoji`などの設定を含んでいる、Arch系やUbuntu系で有効だと思います。
```sh
mkdir -p ~/.config/fontconfig/conf.d
```
```xml:~/.config/fontconfig/conf.d/50-color-emoji.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

  <alias>
    <family>serif</family>
    <prefer>
      <family>system-ui</family>
      <family>emoji</family>
    </prefer>
  </alias>

  <alias>
    <family>sans-serif</family>
    <prefer>
      <family>system-ui</family>
      <family>emoji</family>
    </prefer> 
  </alias>

  <alias>
    <family>monospace</family>
    <prefer>
      <family>system-ui</family>
      <family>emoji</family>
    </prefer>
  </alias>
</fontconfig>
```
設定ファイルを作成したら、次のコマンドを実行して、ログインしなおせば、設定が反映されるかと思います。
(Fcitx5をリロードするなど、アプリケーションを再起動しても、大丈夫かと思います。)
```sh
fc-cache -vf
```

下記サイトも参考になると思います。
[Customize fontconfig. CJK, but other Latin fonts are preferred](https://gist.github.com/akiirui/b3f36e8bdf9a9f5636a98113960bc7f4)[^6]
[日本語フォントの設定 | 逆襲のSlackware](https://slackware.jp/configuration/fonts.html)[^7]
[Linux でシステムフォントを設定する - SHIDALOG](https://blog.goshida.net/archives/2023/12/14/configuring-system-font-on-linux/)[^8]


# 仮置き場
Flatpak版とは関係ないですが、SudachiDictを組み込んだパッケージ仮置き場です。
タグに```with-jp-dict```がついているものが、[SudachiDict](https://github.com/WorksApplications/SudachiDict)のデータをシステム辞書に組み込んだパッケージです。
[Ubuntu:24.04(noble) and Ubuntu:23.10(mantic), Debian:12(bookworm)向けMozcパッケージ](https://github.com/phoepsilonix/mozc-deb/releases)[^4]
[ArchLinux and ManjaroLinux向け Mozcパッケージ](https://github.com/phoepsilonix/mozc-arch)[^5]

# その他、Mozc関連記事
[Mozc を応援するいくつかの方法](https://zenn.dev/komatsuh/articles/91def2bc633a8d)

[UbuntuでMozcの新しいバージョンをビルドするには](https://zenn.dev/phoepsilonix/articles/0c492a22a3c9d0)
[Mozcをオフラインでビルドするには？](https://zenn.dev/phoepsilonix/articles/mozc-offiline-build)

[郵便番号辞書 Mozc形式作成手順](https://zenn.dev/phoepsilonix/articles/japanese-zip-code-dictionary)

[DockerでビルドしたMozcをUbuntu 22.04 LTSにインストールする](https://zenn.dev/ikuya/articles/aa69fd1009b773)
[Ubuntu 20.04 LTS/20.10でFcitx5を使用する](https://zenn.dev/ikuya/articles/f42da50d670a8562a12e)

[^1]: https://fcitx-im.org/wiki/Install_Fcitx_5#Install_Fcitx_5_from_Flatpak
[^2]: https://www.nofuture.tv/20200229
[^3]: https://blog.lufia.org/entry/2022/01/18/203946
[^4]: [Ubuntu:23.10(mantic) and Debian:12(bookworm)向けMozcパッケージ](https://github.com/phoepsilonix/mozc-deb/releases)
[^5]: [ArchLinux and ManjaroLinux向け Mozcパッケージ](https://github.com/phoepsilonix/mozc-arch)
[^6]: [Customize fontconfig. CJK, but other Latin fonts are preferred](https://gist.github.com/akiirui/b3f36e8bdf9a9f5636a98113960bc7f4)
[^7]: [日本語フォントの設定 | 逆襲のSlackware](https://slackware.jp/configuration/fonts.html)
[^8]: [Linux でシステムフォントを設定する - SHIDALOG](https://blog.goshida.net/archives/2023/12/14/configuring-system-font-on-linux/)