はじめに
本記事はManjaro Cinnamonを想定し、利用環境を整えるための手順を紹介する。
ChienomiでなくQiitaに書いていることから、解説少なめである。
以下に前提を記載する
- ベースイメージは2025年のManjaro Cinnamonイメージを用いていることを想定する
- Manjaro Linux / Archlinux環境において応用可能だが、同一ではない
- 一応、Archlinuxで手順が異なる部分は説明する
- ディストリビューションのインストールについては触れない。PVを稼げるのは知っているが、それは意味がない
- 環境構築に関わらないソフトウェアのインストールの話はあまりしない。Pamacで好きに入れてくれ
- ある程度私の使いやすいと思う環境を構成する方向性で説明する
- SSH関連のセットアップなど、必要かどうかは環境によるものを含む
- Linux環境が完全に新規であることを想定している
- 持ち込む環境がある場合や、古いホームファイルからのマイグレーションとかの話はしない
- ユーザーデータの配置は好きにしてよい
ちなみに、インストールからセットアップについての手順は2022年のものだがYouTubeで動画にもしている。
ただし、当該チャンネルは廃止の可能性もあるので、あなたがこの記事を見ているときにはもう見られないかもしれない。
アップデートと日本語環境
前提
Manjaro Cinnamonの場合だいたいの利用環境は最初から整っている。
これは結構重要なことである。
というのも、どうしても最初はなんでもかんでも入れて使ってみた上で、徐々に厳選して自分の環境を構築するという手順が発生するため、最終的にはArchlinuxのように明示的にインストールする方式が好ましくなるのだが、最初の経験としては何を入れればいいのか分からなくて苦労しやすい。
Manjaro Cinnamonはそんなに大きなイメージではないが、それでもそれなりに最低限を揃えるのに必要なものは揃っている方向だ。
例えばハードウェアビデオアクセラレーション系も最近は最初から入るようになった。
ただし、これはアップデートに対応しているかは別だったりするので、メンテナンス面で気にしなくていいわけではない。
この出発点の違いから、初期状態から「インストール」を行う対象は非常に大きく異なる。
また、時期によっても異なるが、ここではあくまで2025年のManjaro Cinnamonを軸とする。
アップデート
必要であることは少ないが、Manjaroではミラー更新が必要になるかもしれない。
pacman-mirrors -c Japan
ミラーが不安定だったりすることもあるので、このタイミングで必要なくても必要になるときはあったりする。
なお、日本のミラーは結構不安定なので、私はUSを使っている。
pacman-mirrors -c United_States
Archlinuxだともう少し面倒な手順が必要。
そこはArchwikiを読もう。
日本語フォント
Manjaroの場合、ttf-droid
がインストールされていて、これが日本語のグリフを持っている。
ただし、CJKフォントとしては中国語グリフが優先されるので、あんまり使い心地は良くない。
基本的に~/.local/share/fonts
以下1に.ttf
なり.ttc
なり.otf
なりを入れておけば認識できるので、それが手っ取り早い。
Zen Kaku Gothic Newとかシステムフォントとしても読みやすいのでおすすめだ。
システムワイドで入れたい場合は、次のパッケージになる
パッケージ名 | フォント名 | 説明 |
---|---|---|
ttf-sazanami |
さざなみフォント | Momonga Linuxで制作された東風フォントの代替。グラフィックツールに慣れてない人が作ったものなので、不格好だが、大事な仕事だった |
ttf-hanazono |
花園明朝 | GlyphWikiの成果物で、膨大な収録文字数を誇る |
otf-ipafont |
IPAフォント | IPAが全権を保有する和文フォント |
otf-ipaexfont |
IPAexフォント | 日本語文書作成の慣例に従って作られたIPAフォント。和文が固定幅になっている |
otf-ipamjfont |
IPAmj明朝 | 人名等の表記のために細かな字形の差異を使い分ける必要がある業務向けのIPA明朝。Linux環境ではIVSを上手く使えるツールキットが少ないので、実用性はあまりない。ウェブ表示で使える程度 |
ttf-vlgothic |
VLGothic | Vine Linuxで制作された丸ゴシック体 |
ttf-jigmo |
字雲フォント | 花園フォントの後継作 |
adobe-source-han-sans-jp-fonts |
源ノ角ゴシック | Adobe制作の美しいゴシック体 |
adobe-source-han-serif-jp-fonts |
源ノ明朝 | Adobe制作の美しい明朝体 |
個人的には、adobe-source-han-sans-jp-fonts
, adobe-source-han-serif-jp-fonts
がおすすめ。
理由は、これらは収録字数が多く、アップデートされることがあるためパッケージでいれる意味があるからだ。
メンテナンスを楽にしたいという意味ではotf-ipafont
でもいい。
どちらを入れるかの大きな動機としては、IPAフォントは5cが円マーク、源ノ角ゴシックはバックスラッシュであるというところだろうか。
日本語入力
基本はこう
sudo pacman -S fcitx5-im fcitx5-mozc
そしたら~/.xprofile
に
export LC_ALL=ja_JP.UTF-8
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
とか書いておく。
有効にするには再ログインが必要。
また設定が必要にもなる。
systray2にあるfcitxアプレットから使用するモジュールとしてMozcを追加し、必要なら設定する。
Mozcの設定はMozcを有効にしてsystrayに「あ」と表示されている状態で右クリックする必要がある。
その他の日本語化
Manjaro Cinnamonなら言語パッケージがあるよと教えてくれる。
あるいは "lang ja" とかでパッケージ検索してもいい。
初期セットアップと環境調整
パッケージ操作
基本的にはpacman
でやるのだが、ArchlinuxにはAURというユーザー投稿のパッケージリポジトリがある。
AURの仕組みについての説明は省略するが、ビルドが必要だったりする。あと、仕組みの関係上、二次配布できないようなものもパッケージとして含められる。
Manjaroでは不要だが、Archlinuxでは
sudo pacman -S base-devel
しておくのがおすすめ。
Manjaroは基本的なパッケージ操作をPamacというソフトウェアに頼るようになっていて、これがAURパッケージも(設定すれば)対象にできる。
GUIもあって便利だと思うが、ちょっとクセが強い。
AURもコマンドラインで操作できたほうが良いので、
sudo pacman -S yay
しておこう。パッケージ検索もできて便利だ。
Archlinuxの場合はyay
自体がAURパッケージなので、まずビルドするために
sudo pacman -S go
しておいて、
git clone 'https://aur.archlinux.org/yay.git'
cd yay
makepkg -Si
という感じになる。
yay
を使ってAURパッケージのアップデートもできるが、yay
の再ビルドが必要なときはyay
自体が動かないので、そういうときはまたyay
ディレクトリに戻って
git pull
makepkg -Si
することになる。
PulseAudio
最近のManjaroはPipewireがデフォルトだが、色々とトラブルのもとだし使える機能も制限されるので、
sudo pacman -S manjaro-pulse
しよう。
Archlinuxの場合はそもそも構築時点でPipewireでなくPulseAudioを使うように構成しよう。
manjaro-pulse
は結構なmanjaro-pipewire
に含まれるパッケージを競合で消すのだが、それでは不十分で動作トラブルのもとになる場合がある。
pacman -Q | grep pipewire
して余計なパッケージを消そう。このうち
lib32-libpipewire
lib32-pipewire
libpipewire
pipewire
の4つのパッケージは存在していても害にならないし、消すのはすごく面倒なので存在していていい。
Intel系ラップトップの音の問題
新し目のIntel CPUのラップトップ(特にウルトラブック)だと音が出ないことが多い。
これは大抵の場合sof-firmware
パッケージをインストールすれば解決するのだが、このパッケージで解決する場合サウンドデバイスが変な挙動になることが多い。
正直なところ、これ系のものはUSBオーディオインターフェイス、USBスピーカー、USBヘッドセット等を使うのがおすすめではある。
Linux用にラップトップを買うならAMD CPUのものを選ぶのもひとつの手。
Zsh
Manjaro Cinnamonはmanjaro-zsh-config
というのを入れているのだけど、だいぶクセが強いので、私はgrml-zsh-config
のほうがおすすめ。
sudo pacman -S grml-zsh-config zsh-completions zsh-theme-powerlevel10k zsh-syntax-highlighting
しておこう。
Zshの設定については省略!
あとは
chsh
して/bin/zsh
を使うようにしておく。
XDGユーザーディレクトリ
ホームディレクトリにドキュメント
だの音楽
だのというディレクトリがあると思うが、WindowsがDocuments
ディレクトリをドキュメント
と表示しているのとは違って、Linuxの場合本当にそういう名前のディレクトリになっている。
そして、そのせいでものすごく扱いにくい。
なので、扱いやすいように変更しておこう。
前提知識として、この対応関係は~/.config/user-dirs.dirs
というファイルに書いてあって、C
ロケールでは
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_VIDEOS_DIR="$HOME/Videos"
となっている。
これでいいなら
LANG=C xdg-user-dirs-gtk-update
とかやればいいのだが、Windowsっぽくてダサいし、長くて打ちにくい。
私は
XDG_DESKTOP_DIR="$HOME/dt"
XDG_DOWNLOAD_DIR="$HOME/dl"
XDG_TEMPLATES_DIR="$HOME/tpl"
XDG_PUBLICSHARE_DIR="$HOME/pub"
XDG_DOCUMENTS_DIR="$HOME/d"
XDG_MUSIC_DIR="$HOME/m"
XDG_PICTURES_DIR="$HOME/p"
XDG_VIDEOS_DIR="$HOME/v"
こんな感じにしている。とても打ちやすい。
以前は打ちやすさよりLinuxらしさを重視して
XDG_DESKTOP_DIR="$HOME/dt"
XDG_DOWNLOAD_DIR="$HOME/dl"
XDG_TEMPLATES_DIR="$HOME/tpl"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOCUMENTS_DIR="$HOME/doc"
XDG_MUSIC_DIR="$HOME/mus"
XDG_PICTURES_DIR="$HOME/pic"
XDG_VIDEOS_DIR="$HOME/mov"
にしていた。
このファイルを編集する前に必ずディレクトリは予め作っておくこと。
ファイルの編集が終わったらxdg-user-dirs-update
で更新できるのだけど、正直すみやかにリログするほうがおすすめ。
slack-desktopなど一部のディレクトリがこの設定を尊重せずに~/Downloads
にファイルを保存したがるので、鬱陶しいところだが
ln -s ~/dl ~/Downloads
とかしておくと良い。
SSH
LinuxではOpenSSHは非常に重要。
SSHの利用環境を作っていないなら、とりあえず作っておこう。
Manjaro Cinnamonではとりあえず~/.xprofile
に
export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/gcr/ssh
と書いておきたい。
次に基本となるキーを作っておく
ssh-keygen -t ed25519
ファイルパスは~/.ssh/id_ed25519
のままで良い。
パスフレーズは必ず設定しよう。
このキーは基本的にローカルな環境向けで使うのが良い。
リモートホストなど第三者が関わる要素は鍵は使い回さずに分けよう。
その場合、~/.ssh
に置いているとやがてトラブルのもとになるので、~/.ssh/keys
以下に置くとかしたほうが良い。
続いてOpenSSHサーバー側だが、/etc/ssh/sshd_config
に
Ciphers aes128-ctr,aes128-gcm@openssh.com,aes128-cbc
AuthenticationMethods publickey
DenyUsers root
とか書いておこう。/etc/ssh/sshd_config.d
以下にファイルを作って書いてもいい。
OpenSSHサーバーはデフォルトでは無効なので、有効化と起動は
sudo systemctl enable --now sshd
とする。
起動と有効化は必要であればで良い。
また、このサーバー設定は公開鍵認証を必須とするので、タイミングに注意。
起動後sshでログインして作業してから設定を更新したい場合は
sudo systemctl reload sshd
とする。
カーネル
Archlinuxは常に最新カーネルで、Manjaroはカーネルを指定して複数入れられる。
このため、Manjaroはカーネルの入れ替えを手動でやる必要があったのだけど、最近は放っておくと自動的に最新が追従されるメタパッケージが導入されるようになったので、あまり気にしなくていい。
NTP
Archlinuxの場合、systemd-timesyncdを使ってもいいし、あるいは普通に時刻の設定でNTP有効にしてもいいのだけど、Manjaroの場合Manjaro側で設定を上書きしているので、設定から "Manjaro Settings Manager" を選択し、「時刻及び日付」で設定する必要がある。
XDG関連ディレクトリ
詳しい説明は省くが、とりあえずこうしておくのがおすすめ:
mkdir ~/.local/{opt,bin,state}
おすすめパッケージ
今すぐは必要ではないかもしれないが、入れておくといずれ幸せになる可能性が高いパッケージ
socat
bat
gvim
sshfs
pandoc
とりあえず入れておくといいことがあるかもしれないXクライアントアプリケーション(デスクトップアプリ)。
leafpad
viewnior
meld
tad
-
x-apps
※パッケージグループ yad
rofi
はるかみ環境化
My Browser Profile Chooser
My Browser Profile Chooserはブラウザプロファイルを使いわけるのを支援するためのツール。
設定が必要だが、正直私はこれなしでは生活できない。
cd ~/local/opt
git clone https://github.com/reasonset/my-browser-profile-chooser.git
ln -s ~/.local/opt/my-browser-profile-chooser/web ~/.local/bin/
ln -s ~/.local/opt/my-browser-profile-chooser/web.desktop ~/.local/share/applications/
あとは~/.config/reasonset/browserprofiles.yaml
を編集しよう。
日本語環境
さらなる快適な日本語入力環境を提供するため、fcitx5-mozc-ext-neologd
というAURパッケージを提供している。
ビルドが割と大変だけど、使ってみるといいと思う。
ちなみに、あんまり頻繁にビルドチェックしているわけではないので、ビルドがうまくいかない場合はFediverse @reasonset@social.jlinuxer.org
へご連絡を。
参考資料
私がThinkPad X1でやった初期セットアップ作業がGistにある。
説明用に書いたものなので、参考になるだろう。
日々のメンテナンス
まず、あなたがManjaro/Archlinuxの初心者であり、Linux関連環境にも詳しくないのならば、一日も早くすべきことはインストールされているパッケージを把握することである。
依存関係でインストールされるパッケージもあるが、Manjaro/Archlinuxのメンテナンスでは「インストールされているパッケージを把握して、随時消したり更新する」ということが求められる。
このため、「何のパッケージかわからない」という状態があると結構困ったりする。
典型的なものとしてはelectron
がある。
electron
はElectronを使うパッケージが依存パッケージとしてインストールする。
これを書いている時点ではelectron35
は
- code
- drawio-desktop
- mattermost-desktop
- podman-desktop
- wire-desktop
- zettlr
electron34
は
- bitwarden
- deltachat-desktop
- obsidian
が必要としている。
そして、このようにelectron
はバージョン付きのパッケージになっているのだが、アップデートで誰からも必要とされなくなっても勝手には消えない。
結果として古いelectron
パッケージが残り続けるのだが、それを放置しているとアップデートを阻害したりする。
このため、必要に応じて古いパッケージを消す、というメンテナンスが必要となる。
アップデート時に流れるログを見ていないという人もいるかもしれないが、アップデートログには設定ファイルの更新が必要、構成ファイルの再構築が必要、といったメッセージが出る。だいたいの場合、手順も出る。
これをちゃんと確認しておく必要もある。
そして、特に重要になるのが.pacnew
である。
.pacnew
ファイルはパッケージがアップデートされたときに、パッケージに含まれる設定ファイルが更新された場合に生まれる。
.pacnew
が生まれるのは「パッケージ側で設定ファイルが更新されたが、ファイルシステム上にある設定ファイルは元のパッケージに含まれていたものとは異なる」場合、つまりは多くの場合は「ユーザーが設定ファイルを変更している場合は、上書きせずに.pacnew
として保存する」となる。
だが、.pacnew
が作られるときはだいたい設定ファイルの非互換であったり重要な変更だったりがあるため、放置してはいけない。
ちゃんと確認した上で、マージするのか、破棄するのか、上書きするのかといったことを決めなくてはならないのだ。
このためにはインストールされているパッケージをちゃんと把握している必要がある。
少なくとも、設定ファイルを変更する場合は変更する対象の設定ファイルの意味をちゃんと理解しておく必要があるのだ。
システムに存在する.pacnew
は
sudo find /etc -name '*.pacnew'
で探すことができる。
ほとんどの場合、対象は/etc
で良い。
なお私は.pacnew
のマージ作業のためにMeldを使うことをおすすめする。
必要となるケースは少ないが、それでも時々はアップデートによって使われなくなったパッケージが邪魔になることがある。
その意味でもちゃんとインストールされているパッケージを把握しておく必要がある。
パッケージが必要とされているのかどうかや、どういうものなのかといったことは
pacman -Sii $package_name
で確認できる。