Linuxデスクトップ環境の比較

Linuxデスクトップ(Unix系デスクトップ環境)の使い心地というのは使いこんでみないとコメントもできないものなのだが、なかなかその特性を理解するまでそれぞれを使い込むのも難しい。 特にまだLinux歴の浅い方はどれを選んで良いのかわからないこともあるだろう。

そこで現行のデスクトップ環境からメジャーなものについて、私が感じる良い点、悪い点をまとめてみた。 あくまで私の視点なので、異なる意見もあるだろうが、そこはあくまで1ユーザーの意見とご了承願いたい。

また、MATE, Deepin’, Pntheon, Budgie, Lumina, LXDE, LXQtなどの他のデスクトップ環境、あるいはEnlihgtenment, fvwm, i3, awesomeなどの他のウィンドウマネージャがあることは承知しているが、私が普段使っていないのでコメントするレベルにはないことも、併せてご了承願いたい。

GNOME

良い点

  • Waylandに最も良好なフィーリングを見せる
  • スクリーンショットツールがとても使いやすい (ただし設定はgsettingsコマンド)
  • ウィンドウボーダーのデザインが豊富で、良いものが多い
  • ランチャーがコマンド実行になっており、検索前提のアクティビティ機能と相性がいい
  • Gnome Keyringは様々なキーをいい感じに管理してくれて使いやすい

悪い点

  • 設定の大部分が隠されており、テーマ設定などの基本的な設定もできない。また、壁紙もコマンドを打たない限り$XDG_PICTURES_DIR直下の画像ファイルに固定されている
  • ウィンドウタイリングが左右にしかできない
  • ウィンドウフィッティングが弱く、表には設定もない
  • Nautilusで右クリックにおけるアクションメニューが簡単に設定できるようになっていない
  • Alt+マウスドラッグによるウィンドウ操作ができない
  • メニューが非常にわかりづらく、メニューが少なすぎて必要な機能を満たさない
  • 「1画面しかなくて、1画面に1アプリしか表示しない」が基本なので、ウィンドウはクローズボタンしかない
  • アクティビティ機能はプログラムをカテゴリ分けしてくれないので、探すのが非常に辛い
  • ウィンドウスイッチャがなく、常にアクティビティから切り替えるかタスクスイッチャから切り替えることを求められる。カレントウィンドウのメニューは表示されるが、マルチディスプレイの場合はプライマリディスプレイ以外無視される 
  • 設定がホームディレクトリ以下になく、バックアップしづらい

捕捉

私はGNOMEが好きではないので、すごく否定的な意見であると考えてもらっていい。 「Linuxなら出来て当たり前だったことをわざわざできなくしている」ことに私は好感を持てない。

Gnomeアプリケーションにはいくらか魅力的なものもあるけれど、デスクトップコンピュータ、とくにマルチヘッドディスプレイや、大画面で使うのに適したものだとはとても思えない。

Gnomeはパソコンよりもタッチデバイスを優先しているのだと感じるし、パソコンもせいぜいが今風なラップトップのみを想定しているといったところだろう。 そして、様々な機能を要求に応じて使いこなす努力するユーザーではなく、機能を使う気がなく、機能を与えてほしくないルーザーのみに親切、という印象である。

ただ、それは解消不能な一部の問題(例えばウィンドウタイリングやAltマウスイベント)を除けばgconfなどによって解消することができ、 およそ「Windowsでレジストリをいじる」のと同じレベルで操作することにより、ユーザーによっては満足できるものに仕上げることもできるだろう。

Cinnamon

良い点

  • 非常に使いやすいウィンドウタイリング。 Super+カーソルで「現在の状態を基準にカーソル方向へタイルする」という挙動。また、タイルした状態でリサイズもできる
  • ウィンドウタイリングしたあとウィンドウを移動すると元のサイズに戻すようになっている。これは、タイル状態でリサイズした場合も同様で、タイルにウィンドウサイズのステートが影響されない
  • 軽い。 ハードウェアアクセラレーションが効くためXFceと比べても格段に軽い
  • ウィンドウフィッティングが設定可能で、かなり使いやすい。タイルしたウィンドウに対してもフィットするため大量のウィンドウを並べるのも楽
  • Alt+左ドラッグ(move), Alt+中クリック(windows menu), Alt+右ドラッグ(resize)全てに対応している
  • 設定項目はやや少ないが、必要なポイントは抑えていて「ほどよい曖昧さ」になっている。設定が大変ではなく、かつ必要な設定はできる傾向がかなり強い
  • Gnomeのメリットだったスクリーンショットと鍵管理はGnomeと同じものを使用しており、同じメリットが得られる
  • Nemoアクションがiniファイルになっていて、結構書きやすい (ただ、現在ちょっとバグってもいる)
  • ウィンドウラベルのマウススクロールに対して細かな設定が効く。アルファ設定も可能
  • Nemoが単独で動作し、軽いファイルマネージャでありながら、gvfsによるマウントにも対応していて使いやすい
  • Alt+F1でワークスペース選択になるのが便利。数字キーで選択できる
  • マルチヘッドディスプレイでフルスクリーンにしているとき、パネルは「パネルがある画面上でフォーカスされているのが他のウィンドウであるときのみ表示する」という理想的な振舞い。フォーカスウィンドウはフルスクリーンウィンドウより前にくる
  • 選べるデスクトップアニメーション
  • 純粋なコマンドラインのランチャと、検索可能なメニューの組み合わせ
  • 左右へのパネル配置に比較的強い
  • 合理的な「フォントはDPIではなく倍率で設定させる」
  • DPのプラグアンドプレイ問題で「復帰できない変更をされる問題」が比較的少ない
  • ボリュームアプレットがマイクのミュートコントロール、デバイス選択、プレイヤーコントロールまでできる便利設計
  • フォント設定機能がフォント数が増えても軽く、使いやすい
  • ファイルダイアログが未選択状態でキータイプを始めると直接パス入力できる仕様
  • Conkyの表示が一番安定している
  • ウィンドウスイッチャからQで直接ウィンドウクローズが可能

悪い点

  • 通知を1件ずつ表示するため、大量の通知がある場合いつまでクリックしても終わらなくなる
  • 通知の有効期限をスクリーン上ではなく通知エリア上の時間として扱う。これは、恐らく正しくない
  • 壁紙がウィンドウごとではなく共通である。設定が楽、ディスプレイ認識でおかしなことにならないというメリットはあるが、残念には感じられる
  • ウィンドウデコレータがMetacityベースでデザインがあまりよくない
  • アプレット機能があるものの、動作しないものが多く、ほとんど役に立たない
  • 起動がやや遅い

捕捉

基本的に「すごくいいバランスで、うまい具合に作られている」のがCinnamon。 機能豊富というわけではないのだが、GNOMEやKDE Plasmaのように主張をぶつけてくる感じではなく、「どうあるのが自然か」「どうなっていれば使いやすいか」ということに向き合って作られている感じがする。 (ただ、Cinnamonはissue reportに対して割と対応は冷たいのだが)

ほとんどの場合要求を満たすことができ、完全ではないが不満というほどではないという状態を作るのがうまい。 至らないところもあるが、使い勝手なら最高だと思う。私は何に移ってもCinnamonに戻ってきてしまう。

ややいまいちだったウィンドウスイッチャは、Windows7以降と同様のアイコンスタイルのものが導入されて使いやすくなった。 グループに対してはホバー時だけでなくクリック時にウィンドウリストを表示する機能もあるが、これはまだbuggyである。 垂直表示を有効にしていると、ウィンドウグループを縦に表示し、さらにそのウィンドウから派生したウィンドウは水平に表示するという器用さを見せる。 懸案だった「.desktopファイルに書かれている情報を使ってくれない」という問題も解消してくれている。

ClutterとNemoの出来の良さが圧倒的で、総じて非常に使いやすい。派手な機能はないが極めて実用的だ。 Cinnamonの欠点を探してみたのだが、これといってあまり見つからなかった。以前はいくつかあったのだが。それが戻ってきてしまう理由かもしれない。

KDE Plasma

良い点

  • 非常に充実したアプリケーション群でクオリティも高い
  • 非常に充実した設定項目。特に電源管理が優れている
  • KIM Panelが格段に使いやすく、Fcitxのウィンドウも統合されていて入力が快適
  • Alt+マウスドラッグによる操作をカスタマイズできる
  • デザインが良い
  • KDEパネルは機能が多彩で、ウィジットも強力
  • 0.1倍単位のUIスケーリング。Gtkアプリケーションにも対応する
  • 検索のみではあるもののランチャもメニューも強力な検索で使いやすい
  • KDE Walletはウェブブラウザのパスワードを一括して管理してくれるので安心感がある
  • 設定ファイルが素直にホームディレクトリ以下にあるためバックアップしやすい
  • Qtの利点を活かした非常にスムーズなスクロール
  • ディスプレイ接続時のアクションが良好で、プレゼンなどでプロジェクターを使うときにも使いやすい
  • ディスプレイを「重ねて配置」できる
  • ウィンドウフィッティングが非常に素晴らしく、ピタッとウィンドウを並べることができる
  • フォントレンダリングに手が入っているのか、ちょっと綺麗
  • 通知の扱い方が適切で使いやすい

悪い点

  • やや不安定
  • サイズの異なるディスプレイを並べると、ディスプレイ位置がおかしくなったり、パネルを失ったり、壁紙を失ったりする
  • ディスプレイの再接続時に本来のディスプレイ設定に復帰しない
  • よくアイコン位置がおかしくなる
  • プラズマにログインしてからログアウトし、再度プラズマにログインするとスケーリングがおかしくなる
  • Balooを有効にしているとキャッシュファイルなども画像に含められてしまい困る上に、inotifyの上限に到達してもさらにファイルを追加するためシステムが終わる
  • AkonadiやKDE PIMは便利ではあるけど、「いらないことをする」感じも強い
  • KDE WalletがGnome Keyringのように暗黙にSSHエージェントのように振る舞わない
  • 設定が独特で、XDG標準を遵守しないし、XDGディレクトリもあまり尊重しない
  • Dolphinはアクションを追加するのも面倒で、XDGディレクトリを無視し、ブックマーク機能はない
  • ウィンドウタイリング後にウィンドウを移動すると、ステートはタイルされていないことになるが、元のサイズには戻らない
  • 壁紙の設定が面倒。フォルダの追加は知識が必要で、全部まとめられるので

捕捉

理想は高く、理想に届かないKDE Plasma。 KDE Applicationsに満足するか否かが分かれ目になる。

ウィンドウフィッティングはCinnamon以上に良好で、ウィンドウを並べるのは得意。 ただし8方向タイリングはショートカットキーの設定が必要になる。 一応、マウスでエッジに持っていくとタイリングしてくれるのだが、位置が割と狭くてやりづらい。

大きな欠点だった「等幅フォントにデュアルスペースフォントが設定できない」は、spacing >= 90にするのではなく、spacingを無視するオプションを加えて対応している。

うまく噛み合っていれば使いやすいのだが、噛み合わないことが多いKDE Plasma。 状況がハマれば使いやすいため、私はラップトップではKDE Plasmaを使用している。

なお、KWalletでブラウザの鍵を管理すると、ブラウザはこれまで管理していた鍵を捨ててしまう。 逆にブラウザに管理させるとKWalletで使えなくなる。だから他のデスクトップと行ったりきたりするのには最大の障壁になる。

systray問題として深刻だったsniについても、現在はおよそ問題のない状態になっているようだ。

特にスケーリングの自由度は大きなメリットと言っていいだろう。 電源管理の柔軟さと併せて最新のラップトップには適しているように感じる。

KDE4時代の癖のあった特徴的な機能は下げられている。そのため、積極的にKDE Plasma workspaceを使う理由を損ねたという印象もある。

相変わらずbuggyな部分も残念だ。Balooは非常に振る舞いに問題があり、オフにしておくのが無難だろう。

XFce4

良い点

  • Alt+左ドラッグとAlt+右ドラッグに対応
  • パネルウィジットのアプリケーションメニューが独自メニューを設定できるため、引き出しとして使用できる
  • 「ランチャー」ウィジットは副項目を設定でき、やっぱり引き出しとして使用できる
  • XFce4 Terminalの使い勝手が良い
  • やたら積極的で便利な「透明度」設定。透明ウィンドウ好きにはたまらない
  • ThunarがSFTPに対応している
  • ディスプレイの「ブランクスクリーン化」と「電源off」が分けられていて、DPプラグアンドプレイに悩まされている場合は便利
  • 自動起動にそれとわかるように他のデスクトップ環境のものが選択できるようになっており、Gnome Keyring SSH Agentを使うということもできる
  • 8方向タイル可能。ただしタイルのショートカットキーは全く設定されていない
  • デスクトップ右クリックでデスクトップコンテキスト(アプリケーションメニューつき)、中クリックでウィンドウリストと結構便利
  • アプリケーションファインダーがコマンド実行で候補検索を含み、展開すると(Alt+F3でこの状態でスタート)メニュー検索もできるようになった
  • Whiskerは簡単にリサイズできる
  • Mugshotが実は結構便利
  • デスクトップにウィンドウリストを表示することもできる
  • ウィンドウスイッチャがグリッド状に表示されるため選びやすい
  • パネルの設定が器用で、高さを含めるかどうか、ホバー時で透明度を変えるか、隠すかなど設定可能。「Dock風」と「タスクバー風」を使い分けられる仕様
  • 壁紙の設定がモニターごとである上、「設定ダイアログをモニター上に動かせばそのモニターが設定できる」親切設計

悪い点

  • アイコンラベルのサイズは固定で、アイコンの間隔も固定。ちょっと長い名前のフォルダは簡単に隠されてしまうし、隠されないように設定すると
  • Bluemanが初回起動時だけXDGディレクトリを拾うため、XDGディレクトリを変更すると毎回エラーを出す
  • ウィンドウフィッティングは一応存在し、リサイズ時にも効くのだが、非常に弱い。設定もできない
  • 通知がいくつでも出してしまう上に、閉じても表示した位置に表示しっぱなしで大量に出されるととても困る
  • ウィンドウタイリング後にウィンドウを移動すると、ステートはタイルされていないことになるが、元のサイズには戻らない
  • パネルがデスクトップの大きさとして除外されない(xfwm4は除外できる)ので、デスクトップアイコンやConkyがかぶる
  • ファイル選択ダイアログがGnomeと同じものになったため、ファイルをパスで一気に入力することができなくなった
  • アプリケーションファインダーがフォーカスロックしないため、複数起動してしまうこともでき、さらにフォーカスを失うことがあるため「あれっ」となって複数起動してゴミが残ることが多々ある
  • フルスクリーンにしているとき、フォーカスしているアプリ以外はパネルがウィンドウより前にきてしまう (マルチヘッドディスプレイでのみ発生する)
  • 標準のボリュームアプレットがない (外部プログラムとしてはPulseAudioアプレットがある)

補足

XFce4になったときからずっと「ちょっとずれてる」「いい感じなのに、対応したにもかかわらず痒いところに手が届かない」を続けているXFce。

だが、Gtk3化の過程で大胆にチェンジした。 アイコンラベルとか、アプリケーションファインダーのフォーカスとか、微妙に「XFceだなぁ」と思うところは残っているものの、機能的には遜色ないどころか、他の環境を凌駕するところまで到達している。

Manjaroでは18.2からついにXFce4 Gtk3がメインになった。 使い物にならなかった時期が長かっただけに、ようやくという感じだ。 だが、

  • thunar-archive-plugin
  • thunar-volman

についてはGtk2を引き続き標準としている。 thunar-volman-gtk3はextraとcommunityそれぞれにバージョン違いがあるちょっと困った状態だ。

ウィンドウデコレータがMetacity相当になり、Cinnamonと同じものを使えるようになった。 今までちょっと偏りがあって使いにくいものが多かったので、非常によくなったし、デフォルトのものが結構スタイリッシュにもなった。

基本的な方向性はCinnamonやMATEに近い進化だと思う。 使い勝手が劇的に向上し、他のデスクトップと比べ見劣りするという印象を払拭した。 Gtk3になったため「軽い」という特徴は損なわれたが、最近はアプリケーションのほうが重く、Gtk2を採用するアプリケーションも少ないため、正直デスクトップの重さというのはそもそも感じにくい。 むしろ処理が速くなって快適になったくらいだ。

Baloo File Extractorの大暴走

顛末

BalooはKDE5のファイルインデックス機能。 かなり性質は違うものの、部分的に見ればKDE4のNepomukを置き換える機能だと私は見ている。

先日、突然デスクトップが非常に重くなった。操作に対して数秒反応しないということを繰り返す。 私はConkyで常に状態を見ているのだが、Baloo File ExtractorがCPUを2.5%(=ロード1.0)使用しており、 IOも非常に高い。しかし、止まるほどではない気がするのだけど…と思い、嫌な予感がしてjournalctlしてみたら

11月 19 08:29:06 hydrangea baloo_file[2401]: KDE Baloo File Indexer has reached the inotify folder watch limit. File changes will be ignored.
11月 19 08:29:06 hydrangea baloo_file[2401]: KDE Baloo File Indexer has reached the inotify folder watch limit. File changes will be ignored.
11月 19 08:29:06 hydrangea baloo_file[2401]: KDE Baloo File Indexer has reached the inotify folder watch limit. File changes will be ignored.
11月 19 08:29:06 hydrangea baloo_file[2401]: KDE Baloo File Indexer has reached the inotify folder watch limit. File changes will be ignored.
11月 19 08:29:06 hydrangea baloo_file_extractor[2677]: qt5ct: using qt5ct plugin
11月 19 08:29:06 hydrangea baloo_file[2401]: KDE Baloo File Indexer has reached the inotify folder watch limit. File changes will be ignored.
11月 19 08:29:06 hydrangea baloo_file[2401]: KDE Baloo File Indexer has reached the inotify folder watch limit. File changes will be ignored.
11月 19 08:29:06 hydrangea baloo_file[2401]: KDE Baloo File Indexer has reached the inotify folder watch limit. File changes will be ignored.
11月 19 08:29:06 hydrangea baloo_file[2401]: KDE Baloo File Indexer has reached the inotify folder watch limit. File changes will be ignored.
11月 19 08:29:06 hydrangea baloo_file[2401]: KDE Baloo File Indexer has reached the inotify folder watch limit. File changes will be ignored.
11月 19 08:29:06 hydrangea baloo_file[2401]: KDE Baloo File Indexer has reached the inotify folder watch limit. File changes will be ignored.
11月 19 08:29:06 hydrangea baloo_file_extractor[2677]: inotify_add_watch(/home/haruka/.config/fcitx/dbus) failed: (No space left on device)
11月 19 08:29:06 hydrangea baloo_file_extractor[2677]: inotify_add_watch(/home/haruka/.config/fcitx/dbus/4b235cc9521d448a9769a6f507904e37-0) failed: (No space left on device)
11月 19 08:29:06 hydrangea baloo_file[2401]: KDE Baloo File Indexer has reached the inotify folder watch limit. File changes will be ignored.
11月 19 08:29:06 hydrangea baloo_file_extractor[2677]: QFileSystemWatcher::removePaths: list is empty
11月 19 08:29:06 hydrangea baloo_file[2401]: KDE Baloo File Indexer has reached the inotify folder watch limit. File changes will be ignored.
11月 19 08:29:06 hydrangea baloo_file_extractor[2677]: QFileSystemWatcher::removePaths: list is empty
11月 19 08:29:06 hydrangea baloo_file[2401]: KDE Baloo File Indexer has reached the inotify folder watch limit. File changes will be ignored.
11月 19 08:29:06 hydrangea baloo_file[2401]: KDE Baloo File Indexer has reached the inotify folder watch limit. File changes will be ignored.
11月 19 08:29:06 hydrangea baloo_file[2401]: KDE Baloo File Indexer has reached the inotify folder watch limit. File changes will be ignored.
11月 19 08:29:06 hydrangea baloo_file[2401]: KDE Baloo File Indexer has reached the inotify folder watch limit. File changes will be ignored.
11月 19 08:29:06 hydrangea baloo_file[2401]: KDE Baloo File Indexer has reached the inotify folder watch limit. File changes will be ignored.

地獄だった。 要はBalooがinotifyを食い尽くしてしまっていて、カーネルレベルでのエラーを(他を巻き込みつつ)無限に繰り返している、と。

というわけでBalooを止める。完全に。

$ balooctl disable
$ rm -rf .local/share/baloo
$ systemctl reboot

インテグレーテッドシームレスUXの代償

最近はOSが統合的な環境を提供するというのはひとつの流れになっていると思う。 やり始めたのはAppleだと思うけど、ユーザーの囲い込み勝負になっていて、WindowsだってなにかしようとすればWindowsのソフトウェアが自動的に起動する。 そのインターフェイスにもCortanaを使わせようとするし、各コンポーネントが密結合し、「全体でひとつ」に見せようとしてくる。

これが良いことなのかどうかは、ちょっと私には判断しかねる。 少なくとも理想的な挙動を考えればシームレスで統合されているのは美しいことだ。 だが、現実はそうはいかない。気に入らないソフトウェアや気に入らない挙動、そしてもっと好きなソフトウェアというのはどうしたってあらわれるものだから。 KDEが統合的かつ多角的に機能を提供してくれることは、私は好ましいことだと思っているが、ではそれに満足しているかというと、実際のところKDEPIMですら「余計なもの」だと感じている。KDE TelepathyではなくPidginを使っているし、KMailでなくClaws Mailを使っているし、Akonadiに至ってはいらないとすら思っている。

そして何より気持ちわるい。 AppleやMicrosoftやGoogleが統合的に機能を提供しようとするのは、ユーザーのUXのためではないし、単なる囲い込みのためでもない。 ユーザーの情報を集約し入手するためだ。 FacebookがなんでもかんでもFacebookを経由して利用させ、かつFacebookを常に開いておくように要求するのもそのためだ。 そういう意図を持っているのがわかっているのに、情報を集める機能があるというのは、私はすごく気持ち悪いと思うのだ。

KDEコミュニティはそのようなことはないだろう。なんといっても、情報を集約したところでその使い途がない、というかそもそもそんなサーバーがない。 サーバーがあったところで、ではそのデータは誰の所有物かという問題になる。 だからKDEに情報収集機能があってもそれほど問題はない…はずだが、それでも私はNepomukも気持ちわるいと感じていたし、Balooもそんなに歓迎していない。

そもそも、私の感覚からいえば、ファイルインデックス系の機能というのは無駄なコストだ。

基本的にファイルは属性に応じてちゃんとヒエラルキーを持って管理しているし、「フォルダをまたいで特定の条件でファイルを抽出したい」というケースはかなり稀だ。 もちろん、全く役に立たないとは言わない。その稀なケースでは役に立つわけだから。

だが、支払うコストがそれに見合ったものではない。 基本的にファイルインデックス系の機能は常に非常に多くのアクセスを行うし、CPU時間も長い。 つまり、ファイルインデックス機能が機能するために必要とするIO及びCPUのコストは極めて高いのだ。

ご存知の通り、Windows Updateは「Windows Updateをするべき余地がない」ことが確定しない限り非常に重い動作になる。 どれほど高性能なコンピュータを使っていても、ほぼ使い物にならない(マウスカーソルも止まるし、メニューも開けない、文字入力もひどいラグが発生する)状態になる。 常にWindowsを立ち上げっぱなしの人であればそれほど気にならないだろうが、Windowsをそれほど起動しない人にとっては、Windowsは常に操作をうけつけない印象になる。 これはアップデートのための話になるが、もちろんアップデートのためにこのようなアクセスを行うことは優れたデザインではない。

このような、操作を明らかに妨げ、コンピュータが使い物にならなくなるような、利用可能な時間が制限されるような、ディスクデバイスの寿命を縮めるような、コンピュータが著しくストレスを生じる性能であるかのように思わせるようなコストを払ってまで必要な機能ではない、と私は思うのだ。

KDEに関してはNepomukでも同じようなことを経験したはずだ。CPUを食いつぶし、IOを食いつぶし、メモリを食いつぶしてコンピュータが使いものにならず、どれほど崇高な理想を掲げたところでコンピュータが使いものにならなくなればそれは意味がないということを思い知ったはずだ。 Nepomukは結局ほとんどのプログラムに利用されることなく終わったし、KDE5には継承されなかった。 にもかかわらずBalooを採用した。いや、Nepomukでの失敗を踏まえて改善したものを投入したのかもしれないが、そもそもNepomukがなぜ失敗したのかということを理解していない、結局わかっていない。 実際のところBalooについて調べると「お前を消す方法」で溢れてしまうのがその証左だろう。

「優れたUXはあれこれお節介を焼くことではなく、余計なことは何もしないことである」ということに、 一体いつ気がつくのだろうか。

(Manjaro Linux) KDE PlasmaでXFce4通知が使われる

先日のAdaptaのアップデートからManjaro XFce4からインストールした環境で使用しているKDE Plasma上で通知が黒背景黒文字になるという問題が発生していた。

KDE Plasmaの通知を設定しても全く改善されないためどうしたものかと非常に困っていたのだが、 よく見てみるとKDE Plasmaの通知ではなく、XFce4 Notifyになっていた。

そこでxfce4-notifydを止めたいと考えたのだが…

xfce4-notifydはsystemdユーザーユニットとして存在していて、/usr/lib以下にコマンド本体がある。 だからsystemctl --user stop xfce4-notifydで一応止まるように見える。 (場合によってはkillする必要がある)

ところが、ここでnotify-sendするとふたたび起き上がってきてしまう。

これを止めるジェントルな方法を模索したのだが、見つからなかったので、仕方なく/usr/share/dbus-1/services/org.xfce.xfce4-notifyd.Notifications.serviceを削除(というか外へ移動)した。 これは恐らく意図以上の影響を及ぼすだろうが、とりあえず当面の問題は解消できた。

KDE Plasma5 * Conky

KDE Plasma5の場合、Conkyはwindow_typeによって

  • 表示領域をConkyに奪われる(ウィンドウが置けなくなる)
  • デスクトップをクリックすると裏に行く
  • 通常のウィンドウとして表示される

といった問題が発生する。 これらの問題は他のデスクトップよりシビアだ。

次のようにすることで、正常に表示・動作し、透過も機能する。

own_window = true,
own_window_transparent = true,
own_window_class = conky,
own_window_type = override,
own_window_hints = "undecorated,below,skip_taskbar,skip_pager",
own_window_argv_visual = true,
own_window_argv_value = 0,

新しい設定ファイルではyes, no ではなく、 true, false であることに注意してほしい。

KDE Plasmaとしてはウィンドウとして表示される形式が望ましいもので、own_window_hintsによって表示方法を制御する。

Perffered application, Nemo, Dolphin, Thunarを設定してみた

Perffered application

Cinnamonで「お気に入りのアプリ」にできるのは.desktopファイルがあるものだけ。 ブラウザをプライベートモードで起動したかったのだが、なかったので作ってみた。

.dsktopファイルは基本的にはいわゆる.ini形式である。 XDGは兎にも角にもWindowsっぽい。

ユーザーローカルのファイルの場所は~/.local/share/applications

[Desktop Entry]
Version=1.0
Name=Vivaldi Incognito
GenericName=Web Browser (with Incongnito)
GenericName[ja]=ウェブブラウザ (with Incongnito)
Comment=Access the Internet (with safety)
Comment[ja]=インターネットに安全にアクセス
Exec=/usr/bin/vivaldi-stable --incognito %U
Terminal=false
Icon=vivaldi
Type=Application
Categories=Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml_xml;image/webp;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;
Actions=new-private-window;

[Desktop Action new-private-window]
Name=New Incognito Window
Name[ja]=新しいシークレット ウィンドウ
Exec=/usr/bin/vivaldi-stable --incognito

/usr/share/applicaitions以下にたくさんあるので参考になる。

Cinnamon

Nemo の右クリックメニュー

右クリックメニューのコンテキストは~/.local/share/nemo/actions以下の/.nemo_actionファイル。 形式自体は.desktopファイルと同様だけれど、内容はちょっと違う。

[Nemo Action]
Name=Open in Konsole
Comment=Konsole

Exec=konsole --workdir "%P"

Icon-Name=konsole

Selection=none
Extensions=any;

これは「何も選択していない状態で右クリックすることでKonsoleで開く」もの。 %Pは現在のディレクトリ。 Selection=noneで非選択状態。 Extensionsは拡張子かMIMEタイプを指定する。ここでは何も選択しないのでany

[Nemo Action]
Name=Open with Thunar
Comment=Open with Thunar

Exec=thunar "%F"

Icon-Name=thunar

Selection=s
Extensions=dir;

こちらはディレクトリをThunarで開くメニュー。 Selectionsになっており、ひとつのファイルを選択した場合のみ。 Extensionsdirでディレクトリのみ。 %Fは選択ファイル

[Nemo Action]
Name=Open with Konqueror
Comment=Open with Konqueror

Exec=konqueror %F

Icon-Name=konqueror

Selection=notnone
Extensions=any;

Konqueror。 Selectionはひとつでも複数でも良いnotnone%Fをクォートしてしまうと、複数の場合に全部がひとつの引数にされてしまう。

Cinnamonのショートカットアプレット

カスタムはできるけれども、アイコンが特定のテーマのものを選択しなければいけなくなってしまう。

設定ファイルは.cinnamon/configs/panel-launchers@cinnamon.org/3.json。 ここで.desktopファイルを指定するのだが、ユーザーローカルなものは選択できない。 ユーザーローカルな.desktopファイルは~/.cinnamon/panel-launchersに配置しておく必要がある。 シンボリックリンク可。

KDE Plasma

Dolphinのカスタムアクション

場所は

で確認。~/.kde4以下に置いても多分駄目。

試しに作ってみた「Viewniorで開く」コマンドは以下の通り

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=image/png;image/jpeg;
Actions=setAsWallpaper

[Desktop Action setAsWallpaper]
Name=View With Viewnior
Icon=viewnior
Exec=viewnior %U

画像選択時に項目として登場する。

Dolphinのテンプレート

KDEはXDGのテンプレートを一切無視する。

使用されるテンプレートは以下の方法で探すことができる。

こちらも.desktopファイルで、URLとしてテンプレートになるファイルのアドレスを指定する必要がある。

[Desktop Entry]
Comment=Blog Markdown
Icon=text
Name=Blog Markdown
Type=Link
URL=/home/haruka/Templates/blogmd.md

XFce4

Thunarのカスタムアクション

.desktopファイルの話をすると思った?

残念でした。

“編集→アクションの設定” から設定することができる。

Thunarのテンプレートファイル

XDGフォルダ自体をシンボリックリンクにすると機能しない

ThinkPad e440 * Manjaro Linux x86_64 XFce 16.06

概要

これまでManjaro Linux KDEを使用してきたThinkPad e440だが、Manjaro Linux XFceに変更した。

e440のOSは安定せず、かなり変更を重ねている。これまで

  • openSUSE
  • Mageia
  • Manjaro XFce
  • PCLinuxOS FullMonty
  • Linux Mint
  • Manjaro LXQt
  • PCLinuxOS KDE
  • Manjaro KDE
  • Manjaro XFce

という流れだ。求められる条件は

  • BIOSでWindowsとのデュアルブートが可能
  • /の暗号化が可能
  • ローリング・リリースあるいは長期運用が可能
  • 先進的
  • RealTek RT8168 無線LANが利用可能

これがなかなか難しい。
ちなみに、Manjaro Linuxも現状、GUIインストーラでWindowsのデュアルブートとLUKSを両立させる場合、MBRの書き換えを防ぐことはできない。

Manjaro Linux KDEとXFceの違い

違わないようで、実は結構違う。

XFceの設定

Manjaroのパッケージ内にXFceに関する設定が不足している。特にKDEでインストールした場合は、XFceに関する設定は全くない。

XFceから新規ユーザーを作った場合は、おおよそ反映されるし、そのためパネルやアプレットが大きく異なるが、Mnajaroのメニューは階層化されていない状態になる。

LXQtとWiFi

KDEでインストールした場合、LXQtはconnmanを使おうとnm-appletを使おうと、D-BusエラーになりWi-Fiを使うことができない。XFceでインストールした場合はnm-appletが問題なく動作する

XDM

KDEはKDM、XFceはLightDMを使う。

KDEアプリの動作

XFceでインストールした場合、Akonadiが正常動作せず、KDEコンポーネントが完全には動かない。

KDEコンポーネントをフルに活用しとたKDE環境を望む場合は素直にKDEでインストールのが良い。

Wi-Fiの挙動

KDEの場合、Wi-Fiがおかしくなり、やがて接続は確立しているのに通信しなくなる。(チップはRT8168)
頻繁に発生し、再接続すれば復帰する場合が多いが、あまり放置しすぎると切断自体不可能になる。

XFceの場合は、その状態が発生しない。

また、mkwd-kernelを使うと、XFceの場合だけrt8168パッケージをインストールするようになっている。KDEの場合はndiswrapperパッケージをインストールする。これは、15.12と16.06の違いもあるのかもしれない。

アップデートアプレット

KDEの場合はOctopiを使うし、アプレットもOctopiのものになっている。

ファーストインプレッション

もちろん、Manjaroということで同じものなのだが、実際には結構な違いがある。

Plasma Workspaceが結構不安定で(ハードウェア的な問題だろう。Manjaroに限らない)、よくKWinが再起動するのだが、安定しており、最初からWi-Fiを利用することができる(速度的には有線のほうが良いが)といったメリットがある。

機能的にはXFceはかなりそろっていて、非常に使いやすい。ただし、Thunarなど一部のXFceアプリはパスを問答模様で補完するため、普通に打っていると勝手に補完されてパスが違っているということがあったりする点はマイナス。
ただ、機能的な不足はないはずだが、実感としてはやはりCinnamonのほうが使い心地は良い。

XFceでインストールすると、KDEコンポーネントを使わない設定となるため(これを変更するのはなかなか大変)、全体に動作が軽く、安定している。e440程度の性能であればこのほうが良いかもしれない。

RT8168

ThinkPad e440に搭載されているのはLinuxでの扱いの難しいRealTek製WiFiチップRT8168だ。

XFceの場合はmhwd-kernelで自動的にこのドライバを含み、適切に動作するが、RT8168にはRT8169ドライバをロードしてしまう、という問題があり、mhwd-kernelによる新カーネルインストール時にもその回避を勧められる。

# echo "blacklist r8169" > /etc/modprobe.d/r8169_blacklist.conf

およその作業記録

# pacman-mirrors -g #ミラーを並び替える
# yaourt -Syuu --noconfirm # アップグレード
# mhwd-kernel -i linux46 # Linux 4.6カーネルのインストール(現在の最新)
# echo "blacklist r8169" > /etc/modprobe.d/r8169_blacklist.conf # RT8169モジュールの無効化
# reboot
$ yaourt -S gvim vi #viがないため、visudoなどが使えない
$ sudo visudo # パスワードタイムアウトの無効化
$ sudo vim /etc/yaourtrc #ビルドディレクトリ、エクスポートディレクトリなどの変更のため
$ yaourt -S medit geany geany-plusings ruby ruby-docs zsh mate-gtk3 qterminal lxqt leafpad #エディタ及び諸環境のインストール
$ yaourt -S mate-extra-gtk3 #一部conflictがあるため、全コンポーネントはインストールできない
$ yaourt -S adobe-source-han-sans-jp-fonts ttf-ohruri ttf-komatuna ttf-meguri ttf-migu ttf-ricty ttf-vlgothic tth-vlkoruri #フォント周り
$ mkdir ~/.config/fontconfig
$ medit !!$/fonts.conf #フォント設定
$ yaourt -S sshfs
$ yaourt -S xf86-input-synaptics #Touchpad Synaptics
$ sudo cp /usr/share/X11/xorg.conf.d/70-synaptics.conf /etc/X11/xorg.conf.d #設定ファイルのコピー
$ sudo vim !!$/70-synaptics.conf # Synapticsの設定
$ yaourt -S vivaldi-snapshot opera-developer chromium google-chrome chromium-widevine #ウェブブラウザ
$ yaourt -S atom-editor-git #Atom。時間がかかる
$ yaourt -S --noconfirm fcitx fcitx-anthy fcitx-mozc-neologd-ut fcitx-kkc fcitx-gtk{2,3} fcitx-qt{4,5} fcitx-m17n fcitx-configtool # IM関連
$ yaourt -S w3m lv #日本語環境向け
$ yaourt -S xorg-server-xephyr # XDMCPリモートログイン
$ yaourt -S claws-mail # メールクライアント
$ chsh #シェルをzshに
$ vim ~/.config/user-dirs.dirs # XDGディレクトリの変更
$ vim ~/.xprofile
$ mkdir bin lib mnt #個人的に必要とするディレクトリ

MDNSの設定などは最初からされている。

Synapticsの設定。2本指スクロールの有効化とナチュラルスクロール化、サーキュラースクローリング(左下起点)の有効化を設定してある。

# Example xorg.conf.d snippet that assigns the touchpad driver
# to all touchpads. See xorg.conf.d(5) for more information on
# InputClass.
# DO NOT EDIT THIS FILE, your distribution will likely overwrite
# it when updating. Copy (and rename) this file into
# /etc/X11/xorg.conf.d first.
# Additional options may be added in the form of
#   Option "OptionName" "value"
#
Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
# This option is recommend on all Linux systems using evdev, but cannot be
# enabled by default. See the following link for details:
# http://who-t.blogspot.com/2010/11/how-to-ignore-configuration-errors.html
#       MatchDevicePath "/dev/input/event*"
            Option "VertTwoFingerScroll" "on"
            Option "HorizTwoFingerScroll" "on"
            Option "CircularScrolling" "on"
            Option "CircScrollTrigger" "6"
            Option "VertScrollDelta" "-111"
            Option "HorizScrollDelta" "-111"
EndSection

Section "InputClass"
        Identifier "touchpad ignore duplicates"
        MatchIsTouchpad "on"
        MatchOS "Linux"
        MatchDevicePath "/dev/input/mouse*"
        Option "Ignore" "on"
EndSection

# This option enables the bottom right corner to be a right button on clickpads
# and the right and middle top areas to be right / middle buttons on clickpads
# with a top button area.
# This option is only interpreted by clickpads.
Section "InputClass"
        Identifier "Default clickpad buttons"
        MatchDriver "synaptics"
        Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0"
        Option "SecondarySoftButtonAreas" "58% 0 0 15% 42% 58% 0 15%"
EndSection

# This option disables software buttons on Apple touchpads.
# This option is only interpreted by clickpads.
Section "InputClass"
        Identifier "Disable clickpad buttons on Apple touchpads"
        MatchProduct "Apple|bcm5974"
        MatchDriver "synaptics"
        Option "SoftButtonAreas" "0 0 0 0 0 0 0 0"
EndSection

fonts.confの設定。

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
  <match target="pattern">
    <edit name="dpi" mode="assign"><double>103</double></edit>
  </match>
  <match target="font">
    <edit name="hinting" mode="assign">
      <bool>true</bool>
    </edit>
  </match>
  <match target="font">
    <edit name="autohint" mode="assign">
      <bool>true</bool>
    </edit>
  </match>
  <match target="font">
    <edit name="hintstyle" mode="assign">
      <const>hintfull</const>
    </edit>
  </match>
  <match target="font">
    <edit name="rgba" mode="assign">
      <const>rgb</const>
    </edit>
  </match>
 <match target="font">
  <edit name="lcdfilter" mode="assign">
   <const>lcddefault</const>
  </edit>
 </match>
 <match target="pattern">
  <test qual="any" name="family">
   <string>serif</string>
  </test>
  <edit binding="strong" name="family" mode="assign">
   <string>Ohruri</string>
  </edit>
 </match>
 <match target="pattern">
  <test qual="any" name="family">
   <string>sans-serif</string>
  </test>
  <edit binding="strong" name="family" mode="assign">
   <string>VlKoruri</string>
  </edit>
 </match>
 <match target="pattern">
  <test qual="any" name="family">
   <string>sans</string>
  </test>
  <edit binding="strong" name="family" mode="assign">
   <string>VlKoruri</string>
  </edit>
 </match>
 <match target="pattern">
  <test qual="any" name="family">
   <string>monospace</string>
  </test>
  <edit binding="strong" name="family" mode="assign">
   <string>Migu 1M</string>
  </edit>
 </match>
 <match target="pattern">
  <test qual="all" compare="not_eq" name="family">
   <string>sans-serif</string>
  </test>
  <test qual="all" compare="not_eq" name="family">
   <string>serif</string>
  </test>
  <test qual="all" compare="not_eq" name="family">
   <string>monospace</string>
  </test>
  <edit name="family" mode="append_last">
   <string>Migu 1C</string>
  </edit>
 </match>
 <dir>~/.fonts</dir>
</fontconfig>

.xprofile。日本語入力関係ほか

#
# ~/.xprofile
#
# sourced by /etc/lxdm/Xsession
#

if which dbus-launch >/dev/null && test -z "$DBUS_SESSION_BUS_ADDRESS"; then
    eval "$(dbus-launch --sh-syntax --exit-with-session)"
fi

# Environment variables
#
export GTK2_RC_FILES="$HOME/.gtkrc-2.0"
export GTK_IM_MODULE=fcitx
export GTK2_IM_MODULE=fcitx
export GTK3_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
export DefaultIMModule=fcitx
export PATH=$HOME/bin:$PATH
setxkbmap -model jp106 -layout jp

ThinkPad e440 * Manjaro Linux KDE, Fcitx Mozc Neologd UT, Padre

ThinkPad e440にManjaro Linux KDE 15.12 (x86_64)をインストール

これまでPCLinuxOSで運用してきたThinkPad e440だが、どうしても不安定(KWinがフリーズして再起動することが多い、バッテリーモニターが機能しない、など)なのが気になってManjaro Linuxにしてみた。

私のThinkPad e440はCeleron 2950Mに4GB RAMの貧弱仕様、ピクセル数もWXGAにすぎない。RAMに関しては8GBに拡張してある。これによってようやくまともに動くようになった(その前は遅くて仕方がなかった)。ハードディスクも拡張済みだ。

このRAM拡張のおかげで、以前はまともに動かなかったKDE Plasma Workspaceが動くのだが、それでもかなり重い。それでもKDEが好きなのと、特にシステムを細かく設定し、好みのアプリケーションを使い分けてデータを扱いやすいように保存する…という意図がなければ、ひと揃い便利なものがあるKDEは非常に重宝するのだ。

最新のLXQtもあったが、今回もKDE。これでうちは4台がManjaroに。とうとう残るManjaroじゃないやつはIPFire, linuxbeanだけになってしまった。

e440はWindows 7が入っており(Windows 10にしたものの、結局Sonarがちゃんと動かないので戻してある)、デュアルブートなのがここまでのハードルになっている。

Manjaro Linux KDE 15.12時点ではインストーラは、Thusについては手動パーティショニングについてLUKSは使えるが、LVMは扱えない。また、GrubはMBRのみ。CalamareはLVM及びPBRをサポートするが、LUKSをサポートしない。

今回はLUKS優先でThusでインストールした。レガシーブートなので(Windows 7モデルを選択するとレガシーブートで、Windows 8モデルを選択するとUEFIで来る)問題が起きにくいというのはある。

Wi-Fiの問題

e440に入っているWi-FiモジュールはLinuxでうまく駆動しない。ある程度通信すると止まるのだ。

Manjaroだとほぼ直ちに止まる。PCLinuxOSだと通信量が少なければなかなか見立たない。openSUSEではストールしたのを見たことがない。

これがPCLinuxOSを選択する大きな理由だったのだが、結局止まるのであれば、あまり意味がなかった。

これを受けて、Wi-Fiはドングルを使うと割り切ってManjaroを導入することにした。

とはいえもしかしたらなんらかの改善方法があるのかもしれない。

以前にはブログでもその問題をみかけることができるが、バージョンが限定されている。
Ubuntuでfixが入っただけかもしれないので、特定のカーネルの問題ではないのかもしれない。

また、Dedoimedoでもこの問題について言及されている。こちらでは/etc/modprobe.d/rtl8723be.confとして

options rtl8723be fwlps=N ips=N

を記載することを勧めている。

これを受けて試してみたのが、まずkernel headerをインストールした上で、AURからrtl8723bs-dkms-gitをインストール。

そしてdkmsを有効にする

# systemctl enable dkms

そしてインストール

# dkms install rtl8723bs/2

これで再起動したところ、3.7GBのファイルのダウンロードに成功した。

ただし、時々不安定になるので、切断・再接続をする必要がある時もあるかもしれない。それでも十分実用になる。yaourt

Plasma5

sniproxy不要になったPlasma5だが、いくつかのアプリケーション(Mono関連, Cloud.ru, Skype, Wineなど)が結局systrayに入らない。
必要であればtrayerを併用するべき。

非常にアピアランスは良いし(Plasma 4のリッチUIも良いと思うのだけれども、フラットUIになったのに見やすく、美しくなった。元々タブレットやネットブックに向けて作られたフラットUIは、あまり画面解像度もないラップトップには適しているということだろう。非常に見やすい。

全体に優れている。完璧ではないけれども優れている。
ManjaroをXFceからインストールするとKMailが動かなかったり、Akonadiでエラーが出たりするが、そうした問題はさすがに改善されている。

Kate, Kwriteは、通常のXFceから入れるものとはちょっと違う。違うのだが、PCLinuxOSではRubyの特異クラスをちゃんと理解したように思うのだが、こちらはダメだ。残念。

Manjaro Setting Managerが含まれないため困惑するが、こちらはkcmに統合されている。

バッテリーモニターは適切に動作する。パワーマネジメントもPlasma 5.3で無事追加されている。

パワーマネジメントでバッテリー駆動時の設定を行うためにはバッテリーを取り付けておかなくてはならない。

e440においてのみ発生する現象だが、Super+Shift+→が動作しない。
quicktileにその設定が使えないのが少々痛い。この問題はThinkPad e440上のKDEで常に発生する。

動作速度は良いが起動・終了は非常に遅い。安定性はPCLinuxOSのKDE4よりも安定している。
アイコンの通知表示が優れている。ただし、systrayに関しては自然に階層化されるCinnamonのほうが優れている。

クイックランチ的に置かれているアイコンはパネル上のウィジットである。Firefoxが邪魔なのだが、これを削除するにはパネル編集モードから削除する。

ウィジットはまだ少なめだ。リサイズ方法は、余白部分を左ボタンダウンを続けてメニューを表示する、というあまり直感的ではない方式。タッチインターフェイスを意識したのか。しかしそれは右クリック相当じゃないのか。

Kde Applications

KDEには膨大な、様々な、そして有用なアプリケーションがあることがおおきなアドバンテージだが、Manjaro KDEはその収録量が少ない。Konquerorすら入っていない。

(とはいえ、近年はKonquerorは入れない傾向があるため、それほどめずらしくはないのだけれど)

kde-applicationsグループにまとめられているので、

$ yaourt -S kde-applications

でしっかりと入る。

テーマ

ManjaroにはMaiaテーマが採用されている。

緑を用いたなかなかに美しいテーマで、Manjaro色が良いと思うかどうかという問題はあるが、ひと揃いあって統一感は良い。breezeよりも良いので、統一感をもたせにくい他のテーマを採用するのが難しい。

Maiaアイコンテーマの再起動、シャットダウンなどのアイコンは非常に好きで、アイコン自体は個人的にはcompassのほうが好きなのだが、結局Maiaのまま。壁紙もMaiaなのでフルMaia。

ちょっとこれはなんとかしたい。ウィンドウデコ
レーションはMaiaではなくbreezeなのだが、これは変更した。また、壁紙も変更した。

Plymouthはなぜか他と同じmanjaro-extra-elegantではなく、manjaro-elegantが採用されている。私はmanjaro-redefined-bsplashを採用した。

アクティビティ

使い方に困る人の多いアクティビティで、私もご多分に漏れずではあるが、e440においては追加したアクティビティがひとつある。

これはプレゼンテーション用で、パワーマネジメントをACと同じにしてある。
なお、ACではDim screenやスクリーンのオフなどは切ってあり、ブライトネス設定がない。

Fcitx Mozc Neologd UT

つい先日libkkcの話をしたばかりではあるが、やはり入力効率はMozcのほうが良い。しかし、MozcではATOKに及ばないのは当然としても、WindowsのGoogle日本語入力との差が激しい。

PCLinuxOSにおいてTomcatさんの仕事で非常に大きなアドバンテージとなっていたNeologd UTがAURにも来ていたる

これは、UTUMIさんがUTに代えた新たな仕事として作ったもののようだ。UTの35万語から85万語に大幅増となっている(半数は地名とのことだが)ので入力効率が大幅に向上しているのだ。
確かに出てくる文字が違う。UTだとAndroidのGoogle日本語入力と非常に似た変換候補という印象なのだが、こちらは違う。

ニコニコ大百科が使えなくなるので一部変換できなくなる言葉も出てくるだろう。もしかしたらニコ厨諸兄にあってはMozc UTでnicodicを有効にしたほうがいいのかもしない。

あとは、mecab-ipadic-NEologdがどれだけのものに今後なっていくか次第か。

とりあえず使ってみた感触では従来のMozc-UTよりも良いと思う。
ただし、サイズ自体もかなり大きいので、ディスク消費量が問題になる場合には不適。また非常にメモリ消費に対して厳しい場合も同様。

その意味ではuim-anthyが使えるPCLinuxOSは有利。Whizもいいのかもしれない。
とにかくパワフルで効率的な変換をしたい人にとっては、Linuxでは現状の最有力。Wimeを使うという手段もあるのかもしれないが。

Padre

AURのPadreがPerl::Devel::DumpvcarとPerl::POD::Abstractがビルドにこけるためインストールできない。prove -lrprove -rにビルドを通すため変更したとあるが、prove -lrに戻さないと通らないので注意。

さらに、perl-wx-scintillaに関しては、OUT OF DATEが立っていてビルドできない。
そのため、perl-padreのPKGBUILDを編集してperl-wx-scintilla-devに変更することはできるが、いずれにせよこれが原因でビルドできない。

なお、cpanでインストールしようとするとシステムがフリーズする。要注意。

ThinkPad e440 * PCLOS

ラップトップはPCLinuxOSで運用しているのだが、いくつかの不具合に気づいていた。
修正しておいた。

フォント問題

Konsoleが適切なフォントで表示しない。

KonsoleはKDEのMonospaceフォントの設定に従うのだが、KDEのMonospaceフォントは好きなフォントを指定できない。
Monospaceフォントに任意のフォントを使いたいのであれば、Fontconfigでmonospaceフォントを明に指定するしかない。

しかし、多くの場合Konsoleはフォントの幅がおかしく、おかしなことになる。
カーソル位置と文字位置がずれてしまうのだ。

この点については、Monospaceフォントをmonospaceにし、さらにフォントを選ぶことで調整する。
それでもKonsoleはずれやすいので、素直にQTerminalあたりを使うほうがマシかもしれない。
最も良いterminalアプリはXFce Terminalだと思う。PCLOSでも使用可能だ。

また、いくつかのフォントで異常な表示になっていた。
Web上で散見されたので、Fontconfigでそのフォントを置き換える。

Touchpad Synaptics

タッチパッドを使ったスクロールが正常に機能していなかった。
twofinger scrollも相当回しまくらないと動かないし、Circular Scrollingに至っては30回ほど回して3行スクロールされるため話にならない。

KCM Touchpadでいくら調整してもまともにならなかった。結局、kcm_touchpadをアンインストールして、手動で調整することで解決した。
Touchpad-solutionを入れておくとベースになる設定を作りやすい。

Section "InputClass"
    Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        #Option  "Device"        "/dev/input/mouse0"
        Option  "Protocol"      "auto-dev"
        Option  "LeftEdge"      "1700"
        Option  "RightEdge"     "5300"
        Option  "TopEdge"       "1700"
        Option  "BottomEdge"    "4200"
        Option  "FingerLow"     "25"
        Option  "FingerHigh"    "45"
        Option  "MaxTapTime"    "180"
        Option  "MaxTapMove"    "220"
        Option  "VertScrollDelta" "-100"
        Option  "HorizScrollDelta" "-100"
        Option  "MinSpeed"      "0.20"
        Option  "MaxSpeed"      "1.00"
        Option  "AccelFactor" "0.15"
        Option  "SHMConfig"     "1"
        Option  "VertTwoFingerScroll"   "1"
        Option  "HorizTwoFingerScroll"  "1"
        Option  "VertEdgeScroll"        "0"
        Option  "HorizEdgeScroll"       "0"
        Option  "TapButton1"            "1"
        Option  "TapButton2"            "2"
        Option  "TapButton3"            "3"
        Option  "EmulateTwoFingerMinZ" "40"
        Option  "EmulateTwoFingerMinW" "8"
        Option  "RTCornerButton" "3"
        Option  "CircularScrolling" "on"
        Option  "CircScrollTrigger" "6"
        Option  "PalmDetect" "1"
        Option  "PalmMinWidth" "10"
        Option  "PalmMinZ" "200"
EndSection

ついでに自動起動でsyndaemon -t -k -i 2 -dして完了。
スムーズに動くようになった。Windows 10に合わせてナチュラルスクロール化している。

USB3.0

e440がUSB3.0だとかいうので、実際に試してみた。

USB3.0ペンドライブを左側奥に挿した場合

/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
    |__ Port 5: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/14p, 480M
    |__ Port 7: Dev 2, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 7: Dev 2, If 1, Class=Wireless, Driver=btusb, 12M
    |__ Port 12: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M
    |__ Port 12: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M

左側手前に挿した場合

/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
    |__ Port 2: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/14p, 480M
    |__ Port 7: Dev 2, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 7: Dev 2, If 1, Class=Wireless, Driver=btusb, 12M
    |__ Port 12: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M
    |__ Port 12: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M

右側に挿した場合

/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/14p, 480M
    |__ Port 6: Dev 4, If 0, Class=Mass Storage, Driver=usb-storage, 480M
    |__ Port 7: Dev 2, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 7: Dev 2, If 1, Class=Wireless, Driver=btusb, 12M
    |__ Port 12: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M
    |__ Port 12: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M

つまり左がUSB3.0で右がUSB2.0。
さらに言えば、左側のUSB3.0はひとつのroot_hubで、USB2.0は3つ全部でひとつのroot_hub。

e440はUSBポートはすべて黒いので注意が必要。

ちなみに、これを調べるまでSDカードスロットが手前下方にあるとか知らなかった。
さらにBTがあることも知らなかった。ただ、BTはデバイスが見つからないので使えない。理由は分からない。

日本語入力

Gtk2アプリに大してUIMが機能しないという問題があり、gtk-query-immodulesでもどうしようもなかったので対応していた。

結局、develを含めて全UIMコンポーネントをインストールすることで解決した。
この過程でUIM appletが動作せず、uimを有効にできなくなってしまったが、再インストールで解決した。

uim-mozc-neologd-utというパッケージがあって

Uim 用 Mozc プラグイン (Mozc NEologd UT 用)
Uim で Mozc NEologd UT を使用するためのプラグインです。

※ インストール後はコンピューターを再起動してください。

とあり、UTが使えるようだ。
さすがTomcatさんというか、おかげで文字入力効率は大幅に向上した。しかし、Mozcではひらがな/カタカナキーが機能しないという問題がある。
普通はあまり気にしないよということかもしれないが、かな入力の一貫として私は全角英数入力のためにEisu-toggleを使っているので、ここで英数にした時にかなに戻ることが難しい。
そこで、無変換をひらがな/カタカナキーの代わりに使用するように変更した。

なお、アプレットはuim-applet-gtk-systray以外はAnthyで予測変換の候補が出ない。

Manjaro LinuxのKDEルック問題

Manjaro 0.8.9 XFceだが、XFceが少々不安定になってきたので、KDEを使えるようにしようとした。pacman -S kde-metaで一式入るが、使ってみるとおかしな部分がある。というのは、UIがstyleを反映せず、昔のWindowsのような外観をしているのだ。これについては少々悩んだが、qtconfig-qt4を用いてstyleを設定することで解決した。

しかし、gtkアプリに関してはそのままだ。設定ファイルの場所は分かっているが、有効なオプションが分からない。検索すると試験運用中なLinux備忘録にgtk-chthemeを使うと良いとある。これはcommunityで提供されているので、これを使って設定すれば良い。

また、KDEの場合conkyの設定に一工夫必要。これはArch wikiのConky項目に従えば良い。

今日になってfcitx-mozc-utのアップデートがきているが、trunk svnのクローンに失敗してビルドできない。