2016年3月21日月曜日

Arch Linuxインストール (デスクトップ環境・日本語化編) | X, GNOME, 日本語フォント, 日本語入力の設定

インストール関連記事
インストール関連記事は「Arch Linuxインストール」のページにまとめてあります。それぞれ好みの設定の記事を見つけて、参照してください。

GUIをインストールする前の準備
Arch Linux本体のインストールができたら、GUI環境をインストールする。OSのインストールをまだしていない方は、「Arch Linuxインストール」のページの「OSインストール編」を参照してください。

ここでは、GUI環境としてGNOMEをインストールする方法を解説する。GNOMEは、多くのユーティリティソフトを含み設定ツールも完成されている。初めてインストールする場合は、まずはGNOMEを使ってみるといいと思う。

今回のインストールの構成は、以下の通り。
  • デスクトップ環境: GNOME
  • シェル: bash
  • 時刻の同期: timesyncd
  • AURヘルパー: packer
  • 日本語入力: Fcitx/Mozc
  • 日本語フォント: IPAexフォント

ユーザー設定など
OSインストールが終わったら、ブートしrootでログインする。
ホストネーム login: root
Password:

rootでログインできたら、root以外の一般ユーザーを作成しておく。「ユーザー名」は適宜変更する。
# useradd -m -g users -G wheel -s /bin/bash ユーザー名

作成したユーザーのパスワードを設定する。
# passwd ユーザー名

作成したユーザーからsudoを使って管理者権限でコマンドを実行できるようにする。visudoをして、%wheel ALL=(ALL) ALLのコメントアウトを解除する。
# visudo

...
## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL) ALL ←先頭の#を削除する。
...

エディタのインストール
エディタとして、vimをインストールする。他のエディタをインストールして使っても良い。
# pacman -S vim

bashのタブ補完を強化
bashのタブ補完を強化するために、bash-completionをインストールする。

# pacman -S bash-completion

bash-completionをインストールすると、/usr/share/bash-completion/completions/以下にあるパッケージについてのタブ補完が有効になる。例えば、sudoあとのコマンド、pacmanの未インストールパッケージ名、systemctl (systemd)のサービスなど。

時計合わせの設定
時刻合わせの設定をする。ntpではなく、systemdのtimesyncdユニットを使う。
# timedatectl set-ntp true

timesyncd.confの「NTP」と「FallbackNTP」の行を、以下のように編集する。
# vim /etc/systemd/timesyncd.conf

...
[Time]
NTP=ntp1.jst.mfeed.ad.jp ntp2.jst.mfeed.ad.jp ntp3.jst.mfeed.ad.jp
FallbackNTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org

いちおう、timesyncdが動いているか確認しておく。
$ systemctl -l status systemd-timesyncd
● systemd-timesyncd.service - Network Time Synchronization
   Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2015-02-11 14:05:35 JST; 1min 20s ago
     Docs: man:systemd-timesyncd.service(8)
 Main PID: 1512 (systemd-timesyn)
   Status: "Using Time Server 59.106.180.168:123 (0.arch.pool.ntp.org)."
   CGroup: /system.slice/systemd-timesyncd.service
           └─1512 /usr/lib/systemd/systemd-timesyncd

Feb 11 14:05:35 Alpha systemd-timesyncd[1512]: Using NTP server 59.106.180.168:123 (0.arch.pool.ntp.org).
Feb 11 14:05:43 Alpha systemd-timesyncd[1512]: interval/delta/delay/jitter/drift 32s/+7.960s/0.028s/0.000s/+0ppm
Feb 11 14:06:15 Alpha systemd-timesyncd[1512]: interval/delta/delay/jitter/drift 64s/-0.000s/0.029s/0.000s/+0ppm

時刻合わせの詳しい説明は、Arch Linuxで時刻同期 | NTP, systemd-timesyncdに書いてある。

GUI環境のインストール
X環境のインストール
X window systemのサーバー関係のパッケージなどをまとめてインストールする。
# pacman -S xorg-server xorg-server-utils xorg-xinit xorg-xclock xterm xorg-twm

ビデオドライバをインストールする前に、以下のコマンドでビデオカードを確認する。現在の環境はVGAをつけずに、Intel CPUのVGA機能を使っている。その場合、以下のようになる。
# lspci | grep VGA

00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (rev 09)

Intel CPUのVGA機能を使っているので、xf86-video-intelビデオドライバのインストールする。インストールするパッケージを聞かれたら、基本的にデフォルトのものを選択すればよい。
# pacman -S xf86-video-intel

startxでXが起動するか確認する。以下のように起動できたら、Xのインストールまでは成功。
startx



twmが起動したら、xterm上で作業する。

GNOME環境のインストール
GNOMEパッケージをインストールする。インストールするパッケージを問われるが、すべてのデフォルトパッケージをインストールする。
# pacman -S gnome gnome-extra

ディスプレイマネージャはデフォルトのGDMを使う。自動でグラフィカルログインするように、systemdのサービスを有効にしておく。
# systemctl enable gdm.service

ここまで設定して、再起動すればグラフィカルログインされる。ここまでで、デスクトップ環境が整う。再起動してグラフィカルログインするか確認する。
# reboot

GDMから一般ユーザーでログインして、このようにデスクトップが表示されれば成功。


ファイルブラウザとか端末を開くとこんな感じ。



Xfce4, LXDEと異なり、ダイナミックにウィンドウの表示やワークスペースの切り替えができる。


以降、コマンドの操作はgnome-terminal(GNOMEの「端末」)から入力、実行する。

キーボードレイアウトがusの状態でログインされてしまうが、以下でFcitxをインストールするとjpのキーボードレイアウトに戻る。日本語キーボードを使っていると、しばらく使いづらい状態となるが、Fcitxがインストールできるまで辛抱する。

GNOMEの日本語化
キーボードレイアウトの設定
/usr/share/X11/xorg.conf.d/10-evdev.confを編集して、キーボードレイアウトを設定する。Option "XkbModel"の行は使っているキーボードによって異なる。"hhk"の部分は、/usr/share/X11/xkb/rules/base.lstファイルに何を指定したらよいか書いてあるので、lessコマンドで参照する。例えば、Generic 104-key PCの場合は、pc104である。
# vim /usr/share/X11/xorg.conf.d/10-evdev.conf

... 
Section "InputClass"
        Identifier "evdev keyboard catchall"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
        Option "XkbModel" "hhk" ←ここを追加
        Option "XkbLayout" "jp" ←ここを追加
EndSection
...

Option "XkbOptions"でCapsキーとCtrlキーを入れ替える設定も指定できる。自分の好みのキーボードの設定にカスタマイズする。

ロケールの変更
ロケール環境変数をja_JP.UTF8に変更する。これで、システム全体の表示に日本語が使われるようになる。
# vim /etc/locale.conf

ファイルにもともと書かれていたロケール環境変数をすべて削除して、以下を記入する。
LANG=ja_JP.UTF8
LC_NUMERIC=ja_JP.UTF8
LC_TIME=ja_JP.UTF8
LC_MONETARY=ja_JP.UTF8
LC_PAPER=ja_JP.UTF8
LC_MEASUREMENT=ja_JP.UTF8

ここで、一旦再起動することで、システム全体で日本語が使われるようになる。GNOMEの場合、以下のようにホームディレクトリのサブディレクトリの名前を変更するか聞かれる。個人的には英語のままの方が使いやすいので、英語のままにする。


Firefoxのインストール
後々必要となるFirefoxを、インストールしておく。
# pacman -S firefox firefox-i18n-ja

日本語入力ソフト Fcitx Mozcのインストール
GNOME 3.22になり、Waylandウィンドウサーバーがデフォルトとなっているが、Fcitxを使うためには、Xorgウィンドウサーバーを使う必要がある。詳細は、「WaylandでFcitxが動かない時の対処法 | 普段使いのArch Linux」のページを参照して、Xorgを使用するモードでGNOMEを起動する

IBusとの統合を無効化
Arch WikiのFcitxのページによると、
GNOME はありとあらゆるインプットメソッドを破壊しようとするため、Fcitx を使うために、gnome-control-center から全ての入力ソースとインプットメソッドのホットキーを削除してから次のコマンドを実行して iBus との統合を無効にする必要があります:
とのことなので、入力ソースを削除できたら、以下のコマンドによってIBusとの統合を無効にする。
$ gsettings set org.gnome.settings-daemon.plugins.keyboard active false

Fcitxのインストール
Fcitx関連のパッケージをインストールする。GNOMEならfcitx-imはfcitx-gtk3だけで良い気がするが、一応すべてインストールしておく。
# pacman -S fcitx fcitx-mozc fcitx-configtool fcitx-im
 
:: There are 5 members in group fcitx-im:
:: Repository community
   1) fcitx  2) fcitx-gtk2  3) fcitx-gtk3  4) fcitx-qt4  5) fcitx-qt5

Enter a selection (default=all): 
...

~/.xprofileを作成し、IMの設定を書く。~/.bashrcに書くのは良くないとのこと。
$ vim ~/.xprofile

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export DefaultIMModule=fcitx

再起動すると、Fcitxが有効になる。

Fcitxの設定
続いて、Fcitxの設定をする。アクティビティから「Fcitx 設定」を起動する。インストール直後、入力メソッドのタブは以下のようになっており、キーボードレイアウトがUSになってしまう。


まず、「キーボード - 英語 (US)」を「-」で削除する。さらに、「+」をクリックすると以下のように、キーボードレイアウトを選ぶ画面が出てくるので、「キーボード - 日本語」を選択「OK」をクリックして、日本語のキーボードレイアウトを追加する。



さらに、「^」で「キーボード - 日本語」の項目を一番上に持ってくる。



次に、「Fcitx 設定」の外観のタブから「状態パネルを隠すモード」の項目を「表示」に変更する。こうすることで所謂、「言語バー」が常に表示されるようになる。



ここまでの設定で、FirefoxなどではFcitxが機能するものの、GNOME TerminalなどのGNOME系のアプリケーションでは、Fcitxが機能しなかった。以下のように、dconfの設定を変更することで、GNOME系のアプリケーションでもFcitxが機能するようになる。
$ gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/IMModule':<'fcitx'>}"

ここまでで、基本的な設定は終わり。



Fcitxのカスタマイズ
さらに、Fcitxをカスタマイズする。まず、スキンをdarkに変更する。画面左下のLegacy Trayのアイコンを右クリックして、「スキン」から「dark」を選択する。



darkのスキンを選ぶことで、言語バーや変換候補の表示ウィンドウのバックグラウンドが黒色に変わる。



さらに、トップバーにFcitxを統合したい場合は、GNOME Shellの拡張機能のTopIconsをインストールする。TopIcons - GNOME Shell Extensionsからインストールできる。ページ左上のOFFボタンをクリックしてONボタンに変えると、自動でインストール、適用される。それなりに、メンテナンスされていてちゃんと動く拡張機能らしい。GNOMEのバージョンアップで、動かなくなる時が来るんじゃないかと心配ではあるが。


TopIconsがインストールされると、トップバーのトレイににFcitxのアイコンが表示されるようになる。日本語入力モードのときは、Mozcのアイコンが表示される。


入力モードを、日本語と直接入力間で切り替えると、Mozcのアイコンがついたり消えたりするので、トレイから現在の入力モードを確認することができる。したがって、「Fcitx 設定」から、状態パネルを隠すモードを「トレイアイコンが有効なときに隠す」に設定し、言語バーの表示を消しておく。


日本語表示の設定
デフォルトでは、日本語がきれいに表示されないので、以下の設定を行いきれいに日本語表示できるようにする。

packerのインストール
日本語フォントで使用するIPAexフォントは、AURに登録されているため、AURパッケージマネージャーが必要となる。AURパッケージのマネージャとして、packerをインストールしておく。(yaourtを使いたい人は、yaourtでもよい。)

まず、/etc/pacman.confに以下の3行を追加する。
# vim /etc/pacman.conf

...
[archlinuxfr]
SigLevel = Never
Server = http://repo.archlinux.fr/$arch

追加したら、以下のコマンドを実行して、pacmanのデータベースが更新する。
# pacman -Syy

データベースの更新ができたら、packerをインストールする。多少手間だが、以下の手順でインストールできる。まず、packerのビルドに必要なパッケージをインストールする。
# pacman -S wget git expac jshon

packerのパッケージをビルドするディレクトリを作成し移動する。
$ mkdir ~/packer
$ cd ~/packer

ソースをAURからダウンロードして、ファイル名を変更する。
# wget https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=packer
$ mv PKGBUILD\?h\=packer PKGBUILD

ソースをビルドする。
$ makepkg

pacmanからインストールする。
# pacman -U packer-20150808-1-any.pkg.tar.xz

インストールに使ったファイルは不要なので、削除する。
$ cd ../
# rm -dR packer

日本語フォントのインストール
デフォルトのフォントだと、文字が綺麗に表示されないのでIPAexフォントをインストールする。Google Notoフォントなども無料で公開されている。詳しくは、「Google Notoフォント(源ノ明朝、源ノ角ゴシック)をインストールして使ってみる | 普段使いのArch Linux」を参照。
$ packer -S otf-ipaexfont

日本語表示の設定
ビットマップとヒンティングの無効化設定することで、きれいに日本語表示されるようになる。まず、/etc/fonts/conf.avail/71-no-embedded-bitmaps.confに以下の設定を記入する。
# vim /etc/fonts/conf.avail/71-no-embedded-bitmaps.conf

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="font">
    <edit mode="assign" name="embeddedbitmap">
      <bool>false</bool>
    </edit>
    <edit mode="assign" name="hintstyle">
       <const>hintnone</const>
    </edit>
  </match>
</fontconfig>

設定を、システム全体に有効にするために、/etc/fonts/conf.d/71-no-embedded-bitmaps.confにシンボリックリンクを貼る。
# ln -s /etc/fonts/conf.avail/71-no-embedded-bitmaps.conf /etc/fonts/conf.d/71-no-embedded-bitmaps.conf

ビットマップとヒンティングの無効化する前の日本語表示はきたない。


設定が有効になると、日本語が綺麗に表示されるようになる。


bashの設定
.bashrcの設定
自分の使いやすいように、.bashrcを設定。現在の設定はこんな感じ。最後の「export LC_MESSAGES="en_US.UTF-8"」の行でメッセージを英語で表示するようにしている。日本語が良ければ、この行は削除する。
$ vim ~/.bashrc 

#
# ~/.bashrc
#

# If not running interactively, don't do anything
[[ $- != *i* ]] && return

# don't put duplicate lines in the history. See bash(1) for more options
# ... or force ignoredups and ignorespace
HISTCONTROL=ignoredups:ignorespace

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=5000
HISTFILESIZE=10000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# プロンプトのカスタマイズ
PS1='\[\e[1;36m\][\u@ \h \W]\$ \[\e[0m\]'

# 環境変数の定義
export EDITOR="vim"
export VIDEO_FORMAT="NTSC"
export LC_MESSAGES="en_US.UTF-8"

.bashrcを設定したら、設定を読み込む。
$ source ~/.bashrc

オーディオの設定
GNOME Setting→サウンドを開く。デフォルトで「出力の音量」がオフになっているので、オンにする。


GNOMEのデフォルトの音楽プレイヤーのGNOME MusicはTotemを一度起動しておかないと、起動できない。Totemを一回も起動したことのないGNOME環境でgnome-musicを起動するとSegfaultで異常終了する。
$ gnome-music

/usr/lib/python3.4/site-packages/gnomemusic/grilo.py:94: Warning: The property SoupSession:ssl-ca-file is deprecated and shouldn't be used anymore. It will be removed in a future version.
  self.registry.load_all_plugins()
Segmentation fault (core dumped)

ひとまず、Totemを起動する。Totemを終了してから、GNOME Musicを起動すると正常に立ち上がる。
$ totem
$ gnome-music



GNOME Files (Nautilus) の表示設定
ファイルブラウザの表示を設定する。リスト表示でアイコンを小さく表示する。
$ gsettings set org.gnome.nautilus.preferences default-folder-viewer 'list-view'
$ gsettings set org.gnome.nautilus.list-view default-zoom-level 'small'


プリンタの設定
「Arch Linuxでプリンタ印刷 」の記事にしたがって、プリンタの設定をする。


参考:
[1]Beginners' Guide (日本語)

スポンサーリンク

スポンサーリンク

2 件のコメント:

  1. すみません、GNOMEのインストールをX上で行う理由は何ですか?

    返信削除
    返信
    1. 返信が遅くなり、申し訳ありません。

      GNOMEは、X上でインストールしなければならないわけではありません。Xを起動させないまま、GNOMEのインストールまで行っても問題ありません。

      記事上でXを起動させているのは、Xが正しく起動するか確認するために行っています。グラフィックドライバやXの設定が正しくないと、Xが起動しないことがしばしばあるため確認を行っております。(最近は、このようなトラブルはあまりないと思いますが。)GUI環境のインストール時のトラブルに備えて、Xが正しく起動できるか確認すれば、問題を切り分けておくことができます。

      最近はXのインストールで問題が起きることは少なく、多くを記載しておりませんが、Xをインストールだけでも、本来は以下の2ページ分の内容を確認する必要があります。
      https://wiki.archlinuxjp.org/index.php/Xorg
      https://wiki.archlinuxjp.org/index.php/Xinitrc

      削除