はじめに
前回は無味無臭のManjaro/Archのセットアップ記事を出したが、今回は私の流儀で「Linuxデスクトップを使いやすくする」話をしていく。
今回もQiitaなので説明は少なめだ。
また、好みに寄せるためには元の状態との差分が重要になるため、今回はManjaro Cinnamonありきで説明する。
ホスト数に関してはどういう構成であるかで最適が異なってくるが、今回はQiitaに適した文量の問題で複数ホストを活用する話はしない。
また、前回の記事における推奨事項は全て取り入れているものとする。
XDGユーザーデスクトップ
こちらは前回の記事で説明した内容だが
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"
を採用しているとする。
また、
Downloads -> dl
のシンボリックリンクも張っておくこと。
また下準備として、
mkdir ~/{.local/state,config}/reasonset ~/.local/{bin,opt}
してXDG関連ディレクトリを作っておく。
ウェブブラウザ
アプリ導入
まず先に言っておくと、google-chrome*
パッケージとbrave-*
パッケージはシステムを汚染する度合いが非常に強いので、私は推奨しない。
ものの良し悪しの問題ではなく、ユーザー設定を上書きしたりするので、システム管理が非常にめんどくさくなる。
私がよく使っているのはこれら:
- Vivaldi (Manjaro/extra
vivaldi
) - LibreWolf (公式AppImage)
- Waterfox (公式tar)
LibreWolfの場合はAppImageのファイル名にバージョンが含まれていないので、ダウンロードして普通に
mv ~/dl/LibreWolf.x86_64.AppImage ~/.local/opt/
sudo chmod 755 ~/.local/opt/LibreWolf.x86_64.AppImage
ln -s ~/.local/opt/LibreWolf.x86_64.AppImage ~/.local/bin/librewolf
とすれば良い。
システムワイドにしてしまうなら、~/.local/opt
ではなく/usr/local/opt
を、~/.local/bin
ではなく/usr/local/bin
を使えば良い。
2回目以降は単にln
は必要ないが、アップデートは自分でダウンロードしてくる必要があるのをお忘れなく。
Waterfoxのほうはブラウザもちの自動アップデートが効く。
公式からtarをダウンロードし、~/.local/opt
以下に展開してln
しておくだけ。
これら以外を使うことは結構稀だけれど、FirefoxとChromiumは入れておくと便利なことはある。
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/
とやって準備しておく。
実際に利用する手順だが、例えばX.com用のプロファイルをtwという名前で作りたいとする。
~/.config/reasonset/browserprofiles
に書くのだが、Vivaldiなら
Profiles:
tw: {type: viv}
と書くだけでいい。
Chromium系ブラウザの場合はプロファイルは~/.config/reasonset/browsers/$profile_name
に作られるのだが、あらかじめ
mkdir ~/.config/reasonset/browsers
しておく必要はある。
Vivaldiは初期設定がそれなりに面倒、かつアップデートごとに設定更新したかったりするので、私は_vivaldi_base
というプロファイルを用意して定期的に更新し、テンプレートとして使っている。
Firefox系の場合はプロファイル名に連動しているので、初回起動時はプロファイルがないということでプロファイル管理画面が出る。
そこでMy Browser Profile Chooserと同じプロファイル名を持つプロファイルを作れば、次回以降は自動で起動できる。
基本的な運用としては、X.com用のプロファイルはX.comにログインし、"ホームページ"をX.comに設定した状態にする。
同プロファイル上で利用するのは、X.comアカウントでログインするものだけに限る。
こういった運用により、一発で目的のものを開けて、単一のアカウントに閉じた安全な環境で運用できる。
もし、google
プロファイルでgoogleにログインしているが、GMailやYouTubeも一発で開きたいなら
Profiles:
google: {type: gch}
gmail: {type: gch, pstr: google, opts: [https://gmail.com/]}
youtube: {type: gch, pstr: google, opts: [https://youtube.com/]}
のように設定すると良い。
これで、web youtube
で一発である。
関連付け
概念
Cinnamonデスクトップでは(というか一般的にLinuxデスクトップでは)mimeタイプベースで.desktop
ファイルを関連づけることができる。
.desktop
ファイルは/usr/share/applications
や~/.local/share/applications
にある。
ファイル種別の判定は基本的にはファイルの内容をもとに判定されているのだけど、一発で確実に判定できるようなものではないファイルは拡張子で判定されたりする。
ごく一部は "設定→お気に入りのアプリ" から設定することができるけれど、これは本当に一部に限られる。
とりあえずウェブはMy Browser Profile Chooserである "Web Browser(s)" に設定しておこう。
それ以外に関しては、Nemoの右クリックから "別のプログラムで開く→別のプログラム" とすると.desktop
エンティティの一覧が出るので、選択して「一覧に追加」や「既定のプログラムにする」を選ぶことで使えるようになる。
関連付ける
私の中で結構重要だと思っているのは以下
- 画像はすべてViewniorに関連づける (WebP, AVIF, HEIF, JPEG XLなども)
- 動画・音声ファイルはすべてmpvに関連づける
- plain textはLeafpad(もしくはL3afpad)に関連づける
- プログラミング関連のファイルはXedかMousepad, Featherpadあたりに関連づける
Viewniorは単体画像を表示するのに非常に適しているので、ダブルクリックで使って欲しいアプリ。
WebPサポートはwebp-pixbuf-loader
が必要。AVIFはlibavif
で、HEIFはlibheif
でいい。
mpvも単体ファイルで開きたい場合に最適。
開ける確実性が高く、q
キーですぐ終了できるのも良い。
LeafpadはShift JISを自動判定する機能があるため、plain text用にしておくと大変便利。
ソースコードやJSONなどを開くときにCodeが立ち上がるとめんどくさいのでさっと開けるようにプログラミング向きで軽いエディタを使いたい。
私は場合によって使い分けているけれど、Xedを使っていることが多い。
フォント関連
基本セット
とりあえず入れておきたいのは以下
- 日本語フォント
- 源ノ角ゴシック (
adobe-source-han-sans-jp-fonts
) - 源ノ明朝 (
adobe-source-han-serif-jp-fonts
) - Zen Fonts
- クレーOne
- 源ノ角ゴシック (
- 日本語デュアルスペース
- M PLUS Fonts (Google Fonts版)
- モノスペース
- Hermit (
otf-hermit
) - Courier Prime Code
- Hermit (
- Nerdフォント (powerlevel10k用)
- Meslo Nerd Font (
ttf-meslo-nerd-font-powerlevel10k
)
- Meslo Nerd Font (
絵文字フォントもひとつだけ入れておきたい。
特にこだわりがなければextra
にあるnoto-fonts-emoji
で良い。
emoji fontで探すとAURにはかなりいろいろある。
私はttf-twemoji
を使っている。
FontConfig
~/.config/fontconfig/conf.d/
以下にfoo.conf
みたいな感じで置く。
まず私のベースの設定はこれ
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font">
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
</match>
<match target="font">
<edit name="lcdfilter" mode="assign">
<const>lcddefault</const>
</edit>
</match>
<match target="font">
<edit name="embeddedbitmap" mode="assign">
<bool>false</bool>
</edit>
</match>
<match target="font">
<edit name="hinting" mode="assign">
<bool>true</bool>
</edit>
</match>
<match target="font">
<edit name="autohint" mode="assign">
<bool>false</bool>
</edit>
</match>
<match target="font">
<edit name="hintstyle" mode="assign">
<const>hintnone</const>
</edit>
</match>
<match target="font">
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
</match>
</fontconfig>
sans-serif
やmonospace
など、論理フォントに使って欲しいものを列挙する。
注意点として、ウェブブラウザはFontConfigが返すフォントのうち1番目のものしか使わないため、sans-serif
の1番目に欧文フォントを返すようにしていると日本語が表示されなくなったりすることがある。
通常はグリフが埋まらなければ次の候補を使うため、欧文フォント優先で書いておくと好きな欧文フォントと和文フォントを組み合わせて使えたりする。
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Default sans-serif font -->
<match target="pattern">
<test qual="any" name="family"><string>sans-serif</string></test>
<edit name="family" mode="prepend" binding="same">
<string>SF Pro Display</string>
<string>Fira Sans Condensed</string>
<string>Dosis Medium</string>
<string>A-OTF Shin Go Pr6</string>
<string>Hiragino UD Sans F Std</string>
<string>TBUDGothic Std R</string>
<string>Kosugi</string>
<string>IPAPGothic</string>
<string>M PLUS 2</string>
</edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>serif</string></test>
<edit name="family" mode="prepend" binding="same">
<string>Josefin Slab</string>
<string>Hiragino UD Serif StdN</string>
<string>TBUDMincho Std</string>
<string>GenEi Koburi Mincho v5</string>
<string>Source Han Serif JP</string>
</edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>monospace</string></test>
<edit name="family" mode="prepend" binding="same">
<string>Hermit</string>
<string>Input Mono Narrow</string>
<string>Courier Prime Code</string>
<string>Overpass Mono</string>
<string>Fira Code</string>
<string>M PLUS 1 Code</string>
<string>Source Han Mono</string>
</edit>
</match>
<!-- Japanese Default -->
<match target="scan">
<test name="lang">
<string>ja-jp</string>
</test>
<test name="family">
<string>Kosugi</string>
</test>
</match>
<default>
<family>Kosugi</family>
</default>
</fontconfig>
重要なのがDroid Sans対策。
Droid SansはCJK網羅するフォントで、日本語で使う文字も中国語優先になっているから表示に違和感があることがある。
しかも、サイト側でDroid Sans
を指定されているために、手元にインストールされている日本語フォントを無視して表示されてしまうことも多い。
ttf-droid
を消してしまってもいいのだが、そうすると中国語に遭遇したときに豆腐になるとかいう問題が発生するし、別のフォントを入れて網羅するのも大変なので
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Default sans-serif font -->
<match target="pattern">
<test qual="any" name="family"><string>Droid Sans</string></test>
<edit name="family" mode="prepend" binding="strong">
<string>M PLUS 2</string>
</edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>Droid Sans Fallback</string></test>
<edit name="family" mode="prepend" binding="strong">
<string>M PLUS 2</string>
</edit>
</match>
</fontconfig>
みたいにしている。
詳しくはDroid Sans Fallbackフォントのせいで日本語が中華漢字で表示される問題を直すを参照のこと。
Nemo Actions
Nemo ActionsはNemoで右クリックしたときに表示するコンテストメニューになっており、色々実行したりできる。
超便利なもの。
~/.local/share/nemo/actions
以下に置く。
私がよく使うやつだと、
「このディレクトリ以下をmpvで再生」
[Nemo Action]
Name=Play with mpv
Comment=Play this directory with mpv
EscapeSpaces=true
Exec=mpv --player-operation-mode=pseudo-gui -- %P
Icon-Name=mpv
Selection=none
Extensions=any;
Dependencies=mpv;
「このディレクトリをプロジェクトルートとしてCodeを起動」
[Nemo Action]
Name=Open Code OSS
Comment=Visual Studio Code open on here
Exec=/usr/bin/code -n %P
Icon-Name=code
Selection=Any
Extensions=any;
Dependencies=code;!codium;
みたいな感じ。
VSCode
Archlinux公式にあるVSCode関連パッケージはcode
で、こちらはCode-OSS。
Google Chromeに対するChromiumみたいなやつである。
他の主な選択肢としてはAURにVSCodium(vscodium
)、VSCode(visual-studio-code-bin
)、MrCode(mrcode
)あたりがある。
こだわりがないならcode
を使えばいいと思うけれど、マーケットプレイス問題があったりして、VSCode使っている人が確実に満足できるかというと微妙。
MS製のがいいんだ!という人はvisual-studio-code-bin
を使えばいいと思う。
Microsoft公式のインストーラーから抽出してインストールするパッケージなので心配なく使うことができる。
私は最近はテレメトリと余計な機能が嫌になってVSCodiumを使っている。
マルチメディア再生系
入れておくといいのは
- Viewnior
- Pix
- mpv
- Audacious
あと私はStrawberryも使っている。
Lollypopなど最初から入っているやつは消してしまっていい。
ビデオプレイヤー系は大抵の場合mpvで事足りるし、mpvが一番うまくいく。
慣れよう。
playlistmanagerを入れておくと良いかもしれない。
画像は単体で見たいときはViewnior、ディレクトリ階層でアルバムにして見たいときはPix。