UbuntuのGUIをオフ CUIで日本語が文字化けする

こんにちは、minoruです。

古いパソコンを使っていると、グラフィカルなデスクトップ環境を負担に感じ、GUIをオフにして、CUIだけで使いたいな〜と思って来ました。

GUIをオフにする方法

ただ単にGUIをオフにするのは簡単。

Ctrl + Alt + T で端末と呼ばれる黒い画面を出して、以下のコマンドを実行するだけ。

sudo systemctl set-default multi-user.target

あとはPCを再起動すれば真っ黒の画面でログイン画面が表示されます。

起動時間は変わらない

私がこのCUIオンリーでの運用を望んだ背景に、使わない時は電源を切っているので、電源投入時にちょっとでも早くOSが起動して欲しいという考えもあったんです。

でも実際にGUIをオフにしてCUIオンリーにしても、電源ボタン押下からログイン画面の表示まで、殆ど起動時間に変わりはありませんでした。

メインのストレージにSSDを使用しているので、これがHDDだと話は違うかも知れませんが、起動までの約30秒の内、半分は企業ロゴとかの省略でき無さそうなプロセスで、ChromeBookのような7秒起動みたいな訳には行きませんでした。

どうしても高速起動が良い場合はChrome Bookおすすめ。

AmazonでChrome Bookのラインナップを見る
https://amzn.to/3iOEFYw

日本語が文字化けする

GUIをオフにしてCUIオンリーで使用すると、当然ログイン時から真っ黒な画面のターミナルで操作がはじまるので、とりあえすファイルでも見るか…と ls コマンドなんかを試すと…

日本語のファイル名やフォルダ名が「◆◆◆◆◆」みたいな感じで文字化けしてます。

その解決策として良くネット上にあるのは…

パターンその1

export LANG=C

ただ、これだと確かに「◆◆◆◆◆」の文字化けは防げるんだけど、要は言語設定を英語版に変えてるだけなんで「''$'\304\200\…'」みたいになります。

確かに「文字化け」はしてないけど、相変わらず日本人には難読な表示になるのは変わらないし、CDコマンドで上記の通りに打っても移動ができないので、意味が無い。

パターンその2

sudo apt install fbterm
sudo fbterm

上記のexportコマンドなんかしなくても、fbtermというターミナルをインストールして起動すると普通に日本語は表示された。確かに日本語は表示されたんだけど、日本語入力はまた別の話なので、やはりピクチャフォルダとかに移動すら出来ないんだよね。

このあたりで私の心は折れたが、日本語入力を実現する方法もあるらしい。

はい、fbtermはCUI環境で日本語を正しく表示するための優れたオプションの1つです。fbtermはフレームバッファを利用した高速なターミナルエミュレータで、UTF-8に対応しており、日本語表示も可能です。

以下にfbtermを使用して日本語を表示するための手順を説明します。


1. fbtermのインストール

まず、fbtermをインストールします。

sudo apt update
sudo apt install fbterm

2. 日本語フォントの準備

fbtermで日本語を表示するためには適切なフォントが必要です。以下のフォントをインストールします。

フォントインストールコマンド

sudo apt install fonts-noto-cjk

これにより、日本語を含む多言語対応のフォントがシステムに追加されます。


3. fbtermの設定

フォント設定

  1. fbtermを起動してみます:
    fbterm
    
  2. フォントを設定します。以下のコマンドを実行して利用可能なフォントを確認します:
    fbterm -v
    

    フォントの一覧が表示されるので、fonts-noto-cjk(または類似のフォント名)があることを確認します。

  3. 適切なフォントを選び、fbtermで使用するフォントを設定します:
    fbterm -f "Noto Sans CJK JP"
    

4. fbtermでの日本語入力 (オプション)

日本語を表示するだけでなく入力も可能にしたい場合、fbtermと連携できる入力メソッドをセットアップします。

fbterm-imeのインストール

fbtermで入力メソッドを利用するにはfbterm-imeを使用します。

sudo apt install fbterm-ime uim uim-anthy

設定ファイルの編集

fbtermuimを連携させるために、~/.bashrcに以下を追加します:

export FBTERM_IM_MODULE=uim
export LANG=ja_JP.UTF-8

その後、以下を実行して設定を反映します:

source ~/.bashrc

fbterm-imeの起動

fbterm起動時に以下のコマンドを実行してfbterm-imeを使用します:

fbterm -i fbterm-ime

5. 動作確認

fbterm起動後、日本語が表示されるかを確認します。

  1. fbtermを起動します:
    fbterm
    
  2. 日本語を表示:
    echo "こんにちは、世界!"
    

入力の切り替えあれこれ

  • IBus: 切り替えキーは Ctrl + Space
  • Fcitx/Fcitx5: 切り替えキーは Shift + Space
  • UIM: 切り替えキーは Shift + Space
  • SCIM: 切り替えキーは Ctrl + Shift

6. 注意点

  • fbtermはフレームバッファを利用するため、Xサーバーが不要で、GUIを完全に無効化しても動作します。
  • ただし、使用中にsudoコマンドを実行するとエラーが出る場合があります。この問題は、fbtermsudo環境でも動作させるために以下のコマンドを実行することで解消できます:
    sudo chmod u+s /usr/bin/fbterm
    

これで、fbtermを利用したCUI環境での日本語表示および入力が可能になります。

GUIオンに戻す方法

sudo systemctl set-default graphical.target

これで再起動すると元通り。

結局GUIデスクトップ環境ではあるけれど、操作は主に端末で行い、ブラウザーで動画とか処理の重いページとか見ない…ぐらいが現実的な線なのかなという印象。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする