Linux生活4ヶ月目の感想

お久しぶりです。ToYamaです。季節の変わり目で、ちょっと風邪気味です。体調を崩さないように気をつけていきたいです。

この記事は、僕が所属している学生サークル「CASる」が発行する雑誌「CASる通信学祭号」に投稿したものです。

Linux生活4ヶ月目の感想

今年の6月、メイン機をWin11とArch Linuxのデュアルブート構成に変更しました。あれから大体4ヶ月程度使ってわかった、良かったところ、微妙なところを紹介できたらなと思います。

筆者の環境

ArchにするまではWindows11をノートPCで主に使っていました。PCの主な使用用途は、Webアプリ開発、ブラウジング、コミュニケーション、大学の課題等です。ゲームはあまりやっていないです。プログラミングを嗜んできた経験から、CLI操作は抵抗もなくそこそこできます。

意外となんとかなる

まずはこれに尽きます。もっと四苦八苦するかなと覚悟していましたが、なんとかなっています。多分生成AIが出てくる前だったらもっと苦労していると思いますが、生成AIのおかげで、思ったより苦労していないです。実際インストールを含め環境構築やシステムの問題の修正など、わからないことはAIに聞いては色々教えてもらっています。よく「このシステムはGeminiと作った」って言ってます。CLIで操作することが多いので、エラーログや特定のコマンドの結果を貼り付けるだけで済むので、生成AIに問題の趣旨を理解させるのが非常に楽です。これがGUIだとスクリーンショットだけではなく、GUIの様子を自分の言葉で表現しないといけない上に、その表現で生成AIが理解してくれるとは限らないのが辛いです。

速い

いつもWindowsの遅さには辟易していました。起動してログイン画面が出てくるまで(14秒)、そしてログインしてからある程度使えるようになるまで(54秒)、そして愛用している常駐アプリがすべて立ち上がるまで、毎回待たされていました。もちろん不要な常駐アプリを停止したりなどの最適化を行ってもちょっと遅かったです(カッコ内はBootRacerというアプリで測定した値。厳密に測定していない。実際はBIOSチェックやGRUBのOSの選択画面などの時間を含めるともう少し長くなる)。これをArch Linuxにしたら

1
2
3
$ systemd-analyze
Startup finished in 10.867s (firmware) + 2.250s (loader) + 3.523s (kernel) + 4.248s (userspace) = 20.890s
graphical.target reached after 2.080s in userspace.

ざっくり言うと20秒程度です。その昔にいくらか最適化を行って今の状況です。fsckによるディスクチェックが走って3秒ほど無駄があるので、まだ最適化の余地はあります。

他にも、様々なアプリの起動や動作が速い(気が)します。例えばアプリケーションランチャー。僕はWindowsでPower Toys Runを愛用し、Linuxでは現在rofiを利用しています。搭載している機能が異なるので単純な比較はできませんが、rofiは起動からアプリの検索まですべてがPower Toys Runより(体感として)速いです。

快適

Linuxは機能の殆どを自分で設定可能になっています。つまり、自分にとって理想な環境を構築しやすいことにつながると考えます。また、Windowsでは手が届かなかった領域、例えばOS固有のショートカットキーやウィンドウマネージャなどを自分で選択して設定することが可能となっています。僕の例ですと、デスクトップ環境を導入せずに、i3wmを利用して快適なウィンドウ管理を行っています(というかi3を使うためだけにLinuxにした節がある)。

Windowsでもレジストリを弄れば任意の設定が可能だという反論があるとは思いますが、僕は正直弄りたくないです。Linuxでの設定は一般的にファイルで行うからレジストリを弄っているのと対して変わらないと思われるのかもしれませんが、僕個人の意見としては、Linuxのファイルベースの設定のほうがわかりやすくて安心できます。

他には、パッケージマネージャのおかげでアプリの導入や削除が非常に簡単だったり、ネイティブLinux環境だからWindowsでwslを間に挟んだ開発よりも開発体験が良かったり、Linuxでしか動かないアプリを使えたり、US配列とJIS配列を共存させることができるなどの良い点があります。

不満

ここまでArch Linuxに移行して良かったことをつらつらと書き連ねてきました。しかし、決して不満がないわけではありません。

PC内蔵スピーカーと音声出力端子が同じ出力デバイスとして扱われているせいか、アプリごとに出力先を割り振れないみたいです。例えば、YouTube Musicをスピーカーから流して、Discordの通話をヘッドホンから流す、みたいなことが出来ないということです。決して出来ないということはないと思うのですが、ハードの都合なのか、僕の環境では今のところ出来なさそうです。

タッチパッドのスクロールの挙動がちょっと微妙です。僕の環境で入力デバイスのドライバとして利用しているlibinputには、慣性スクロールが実装されていないようです。別の入力ドライバとしてSynapticsがあり、こちらでは慣性スクロールが実装されているようなのですが、ArchWikiによればメンテナンスモードのため、libinputが推奨されています。また、慣性(ArchWiki中では惰性)スクロールによってスクロールが止まらなくなる現象があるみたいです。アプリによっては、アプリ側で慣性スクロールを実装していることがあります(e.x. Zen browser)。Windowsのスクロールの挙動に慣れていると、慣性スクロールがないらしいのは少し辛かったです。

最後に、アプリが対応していなくてWindowsが必要になることがたまにあります。正直この不満は開発元に文句を言ったところで相手方の事情もあって解決は非常に難しいと思います。僕の場合では、特にプロプライエタリなアプリだとLinuxに対応しているのにArch Linuxで頑張って導入しても動かなかったり、起動しても期待した挙動をしてくれないことが何度かありました。例えばMatlabでは、何度か公式のZIPファイルを展開して手順通りにインストールをしたり(もしかしたら手順書を読めていない可能性もあり)、AURからインストールしてみたりしてみました。しかし起動はするもののユーザーの認証が上手く行かないせいか、途中で固まってしまいました。また、Davinci Resolveでは、公式サイトにある実行ファイルとAURのPKGBUILDを使ってインストールしてみましたが、起動してもプロジェクトを開いたときに固まってしまいました。結局MatlabもDavinci ResolveもWindowsのほうにインストールして使用しています。

最後に

全体としては非常に良い感じです。なぜなら、Windowsではその不満は開発元のMicrosoftに向かい、ほとんどの場合は何も変わりません。ただただ不満が募っていくだけです。一方Linuxでは、その不満のほぼ全ては自分に向かい、そしてその殆どは自分で改善することが出来ます。例え改善しなかったとしても、改善できない理由がよくわかり、納得することが出来ます。この差が僕にとって、Linuxを良いものだと感じさせる理由なのではないかと思います。

参考文献