久しぶりのManjaro KDE

2022-04-19

Manjaro KDEを使うのは多分、一昨年以来だと思う。

以前は不完全さが気になったManjaro KDEだが、久しぶりにインストールしたところ、かなり変わっていた。 搭載されているのはKDE Plasma 5.24である。

全体的な所感

Manjaro KDEはManjaro Cinnamonを使っている身としてはかなりおせっかいな感じがする。

この印象を強くしているのはKRunnerだろう。

KRunnerはKDE/Plasma Desktop組み込みのrun commandである。 他のものと大きな違いは、これが検索であることである。Windowsの検索に近いが、それ以上にパワフルである。

しかし、大きな問題として、インクリメンタルサーチであるということがある。 このために、1文字入力するごとにウェイトが入る。Windows検索よりも体験は悪い。

このウェイトのために入力が落ちてしまうことが多く、入力が反映されるのを1文字ごとに待つ必要がある。 このために、単純なコマンド入力と比べかなり劣って見える。

加えて、フルでコマンドを打たないと検索に負けてしまう。長いコマンド名の場合はタブ補完も効かずすべて打たねばならないのが結構しんどい。

Zsh

Manjaro Cinnamonも一時期はZshを採用していたが、Manjaro KDEは現在もZshを採用している。 設定はmanjaro-zsh-configで、Manjaroにあるプラグインを一式インストールしてある。 .zshrc

# Use powerline
USE_POWERLINE="true"
# Source manjaro-zsh-configuration
if [[ -e /usr/share/zsh/manjaro-zsh-config ]]; then
  source /usr/share/zsh/manjaro-zsh-config
fi
# Use manjaro zsh prompt
if [[ -e /usr/share/zsh/manjaro-zsh-prompt ]]; then
  source /usr/share/zsh/manjaro-zsh-prompt
fi

となっており、Powerlevel10kを使ったプロンプトになっている。

だが、grml-zsh-configと比べてmanjaro-zsh-configはクセが強く、少し使いにくい。 個人的にはfishライクな機能を提供するzsh-autosuggestionsが邪魔に感じられてならない。 もちろん、単純にgrml-zsh-configに慣れているというのもあるが。

PgUp/PgDnはhistory-beginning-search-{back,for}wardになっているが、Up/Downは{up,down}-historyになっている。 一時期私も同様の設定を試していたことがあるが、ほとんどの場合history-search-{back,for}wardのほうが望ましい。

また、menu completionが無効になっており、非常に使いにくい。

この設定と、Viモードの設定を入れると、だいたい使い慣れた心地になった。

####### VI mode setting #######
setopt vi
KEYTIMEOUT=1
###############################

# Always use menu.
zstyle ':completion:*' menu yes select

# Menu for full path.
setopt GLOB_COMPLETE

####################################
#    inclimental history search    #
####################################

bindkey "^[[A" history-search-backward
bindkey "^[[B" history-search-forward

manjaro-zsh-configはかなり色々な要素が入っているため、逆に抜くのが難しい。 基本いじらずに使う想定という印象である。

Telepathy

TelepathyはKDE PIMに属するメッセンジャーアプリである。 WindowsがSkypeやTeamsを、MacがiChatを組み込むように、デスクトップ環境に組み込んで使用することが想定されている。

Telepathyについてわざわざ言及しているのは、アカウント登録がうまくいかなかったり、メッセージを受け取れないといったことが頻出したためだ。

これに関してはManjaro KDEはTelepathyを含んでいないため問題なしとした。 もちろん、KDEはKDEフルセットで使ってこそシナジーを発揮するわけだが、明らかにTelepathyよりPurple(Pidgin)のほうが優れているため、Telepathyがないほうがむしろ使いやすいのだ。

そもそもKDE PIMそのものが含まれておらず、KMailもない。 デフォルトのメールクライアントはThunderbirdが採用されている。 KDE PIMは強力なソフトウェアであるが、デスクトップ環境への影響が大きく、負担も大きいため、KDE PIMの導入はかなり大きな縛りとなる。 初期状態では導入されていないほうが軽快で、選択しやすい。

Baloo

Balooはファイルインデクサだが、これが難物だ。 ファイル数が増えるとファイルインデクシングのためにinotifyやファイルディスクリプタを食いつぶしてしまう。加えて、ファイルI/OやCPUを大きく消費することもある。

今回、スタックしやすい低品質なSSDにインストールしたため、BalooはただちにSSDのスタックを引き起こし、システムがフリーズしてしまった。 Balooは決して控えめで礼儀正しいサービスではない。

Balooはあまりに問題を引き起こしやすく、無効化しなければすぐにでも使えなくなってしまう。 似たような問題はGNOMEのTrackerにもあるが、同様な問題はそもそもKDE4時代のNepomukからあったのにも関わらず改善される様子はない。

ウィンドウタイリング

KDE Plasmaはウィンドウタイリングへの対応が少々遅く、対応時は速やかに8方向タイリングに対応したが、各方向に対応したキーバインドを当てる必要があった。

このウィンドウタイリングの挙動は変更されたようで、Cinnamonと同じ、現在のタイリングの状態を基準として8方向にタイリング、あるいは解除する挙動になっている。 この挙動は合理的で、一見手間であるようだが、実際は8つものキーバインドを当てることは難しく、覚えづらいため、この挙動であるほうが扱いやすい。

良い変更だ。

ウィンドウの移動とリサイズ

ウィンドウの移動はLinuxデスクトップの優れた機能のひとつであり、もともとは標準でできる操作であった。 しかし、それはUnixワークステーションの3ボタンマウスを前提にしており、PCではできない操作になってしまった。

これをカバーしたのがKDEである。 KDEはAltキーを併用することでドラッグでウィンドウを移動できるようにした。また、右ドラッグではウィンドウリサイズが可能だ。

Cinnamonはこれを継承しているが、GNOMEはメタキーをSuperに変更している。 そして、PlasmaもSuperに変更したようだ。

今Superキーのないキーボードなど想定されないから問題ないように見えるが、日本語UnicompキーボードはWindowsキーがなく、意外と困る。 また、右Superキーはないことが多いため、左利きの人にとっては余計に使いづらいだろう。

これはあまり良い変更だとは思えなかった。

マルチディスプレイのウィンドウ順

マルチヘッドディスプレイの挙動というのは、意外と難しい問題だ。 例えばディスプレイAがメインディスプレイであり、ディスプレイA上でフルスクリーンにした状態でディスプレイBのアプリケーションにフォーカスしたらどうなるか。

これはいくつかある。

  1. そのまま
  2. パネルなどが上に表示される
  3. 表示が消える

などなど。 以前のPlasma、およびXFce4はパネルが上に表示される、つまり最前面表示は外されてしまうという挙動であった。

これは、複数のフルスクリーン表示を行いたい場合に、メインディスプレイ上のアプリケーションにフォーカスしておかなければならないという難点を抱えている。

他にもある。メインディスプレイ上の他のアプリケーションにフォーカス、もしくは他のディスプレイのアプリケーションをフォーカスしたままメインディスプレイに持ってきたらどうなるか。この場合はパネルが表示されるのが望ましい。

こうした挙動が非常にクリーンで望ましいのはCinnamonの強みと言って良い。 あるべきものがあるべきように動く。

ここまで言ってなんだが、Manjaro KDEを導入したPCはディスプレイがひとつしかないため、確認はできなかった。

コマンド実行

前述のとおり、KRunnerはかなり使いづらい印象を助長するため、こんなプログラムを用意した。

#!/bin/zsh

exec $(zenity --entry --text="Run Command")

単純だが非常に有効で、ショートカットキーを当てることでコマンド実行しやすくなる。 Manjaro KDEにはZenityがデフォルトで導入されている。なんと、逆にKDialogは入ってない。

が、これだとコマンドをフルで入力する必要がある。 面倒なので手軽な代替としては、gmrunが使えそうだ。