•  untoreh-light

Windowsを耐えられるようにする

WindowsをLinuxのように感じさせるためのツールのリスト

私以来 WSLでWindows10に切り替えました ウィンドウを通常のLinuxワークフローに近づけるために使用する必要のあるソフトウェアのリストを作成すると思いました。 Windows UIがダメだということを明確にしましょう、それは90s そして、すべてがマウスポインタでクリックされてドラッグされることになっています。それが 文化 物事(Windows開発者はマウスを非常に好きでなければなりません)、または ターゲット人口統計 (「そのことをクリックしてください!」は簡単に説明できます)、または セキュリティのベストプラクティス (ユーザーに過度の制御を与えると、マルウェアがそれを悪用します)または単に Windowsシェル 高度なユーザー向けの機能を追加することを困難にする技術的負債の山でできています。事実、Linuxの単純なものには、Windowsの複雑なソリューションが必要です。

仮想デスクトップ

Linuxでは、すべてのWindowsマネージャーに何らかの形式の仮想デスクトップがあります。Windowsはごく最近、W10で仮想デスクトップを構築しました。これを書いている時点では、ホットキーで左右にしか循環できず、デスクトップXに移動するためのホットキーはありません。これがあります。 vdライブラリ しかし、私はそれを利用するソフトウェアを見つけていません、代わりにAHKだけです[1] 「正しいVDになるまでループする」など、実装が不十分なスクリプト。

Windowsに組み込まれている仮想デスクトップの適切なショートカットがないため、サードパーティのソフトウェアを使用せざるを得なくなりました。 dexpot それは私が必要とするすべてのこととそれ以上のことをするので(私はただgo to Xmove window to X ショートカット)。唯一の問題は、dexpotがすでにバインドされているキーをバインドできないことでした... AHKは他のアプリケーションで使用されているキーをオーバーライドできますが、dexpotはそうではありません。これは、別のWindows API(または[dll])。回避策は、必要なショートカットを再マップすることです(例:Win+1 )dexpotに設定できる無料のショートカット(例:Win+Shift+F1)

キーボードマッピング

Powertoys CapsLock-> LeftControlおよびRightControl-> LeftControlをマップできるように、キーとショートカットをマップできます。そしてのようなショートカットWin+hjkl 矢印に。残念なWin+l は画面をロックするためのWindowsのデフォルトのショートカットであり、再マップすることはできません...レジストリキーはショートカットを上書きしてこれを修正します... Windowsを更新するまで...したがって、起動するたびに修正を適用する必要があります!

ランチャー

代わりに、powertoysが提供するアプリランチャーは非常に機能的で、KRunnerよりも多くのメモリを使用せず、高速で応答性が高くなっています。唯一の不満は、時々フォーカスが失われることですが、これは、Windowsが(変質した場合のように)いつでもどのウィンドウにフォーカスするかを制御できないという問題である可能性があります。

タイリング

LinuxでswayからKDEに切り替えたので、タイル型ウィンドウはそれほど好きではありませんでした。 PowertoysにはFancyZonesがあります。これは、ウィンドウが提供する基本的なウィンドウスナップよりもわずかに改善されています。 ギャップ レイアウト。それでも、タイリングを便利にする最も重要なこと、つまり ルール 一致するウィンドウに適用するには、仮想デスクトップのサポートも必要です...そして、それらの現在の状態についてはすでに説明しました。比較すると、KWinを使用すると、ウィンドウを非常に複雑な定義と照合できます。 FancyZonesは、セッション間でウィンドウの位置を保持することでルールの問題を回避しますが、これがさまざまな仮想デスクトップでどの程度うまく機能するかについては調査していません。

ウィンドウのドラッグ

Windowsは、タイトルバーからのみドラッグできます。 効用 ショートカットの組み合わせでそれらを移動するために使用する必要があります。

システムモニター

KDEを使用すると、システム情報を表示するためのプラズマウィジェットがありますが、プラズマウィジェットは大量のメモリを消費する傾向があるため、あまり使用しませんでした。 Windowsには、このための組み込みのユーティリティはありません。いくつかのユーティリティを試した後、私は落ち着きました。 トラフィックモニター これはネットワーク、CPU、メモリを提供し、最近追加されたGPUと臨時雇用者です。その結果、タスクバー内に見栄えのする目立たない長方形が表示されます。

Windowsのボーナスポイントは、UPSが認識され、トレイ領域に表示されるため、追加の構成は必要ありませんが、Linuxでは ナット がある ドライバーの問題.

システムサービス

多くの人は、systemdがLinuxカーネルに入ったとき、気に入らなかった。Windowsでは、代わりにそれを見逃し始めた。Windowsサービス 実際にはユーザー向けのものではありません systemdのように。 Windowsには タスクスケジューラ のように見えるものに対処するためにone-shotユニットファイルですが、そのインターフェイス(またはその欠如)は恐ろしいものです。幸運なことに、私たちが使用するWindowsアプリケーションのほとんどは 起動時に実行 一種のロジックであり、より高度な構成は必要ありません。実際、ツールのくずは別として( はぁ )Windowsを最新の環境のように機能させるには、使用されている他のネイティブWindowsアプリケーションのみがブラウザーです( Firefox )ブラウザのGPUアクセラレーションは、WSL(ネイティブLinuxでも...)およびビデオプレーヤー(ネイティブLinuxでも...)内で悪いためです。 mpv ..そしてもちろんゲーム...

パッケージ

私は好きではありません チョコレートのような 管理者権限が必要なため、ユーザーフォルダーにインストールされているスクープパッケージを常に最初に探します。これにより、より便利で一貫性があり、バックアップが簡素化されます。

WSL / g

最近からウィンドウに切り替えるように誘導されました WSLg アップデート。でコンパイルされたmesaドライバーが必要でしたd3d12 のバックエンドサポートopengl 。 Windowsはコミュニティプレビューubuntuレイヤーを提供しますが、私は選択しました arch linux のためのAURパッケージがすでにあったので d3d12のメサ 。 WSLは現在systemdをサポートしていないので、結局 スーパーバイザー いくつかのサービスを管理します。スーパーバイザーがアクティブであることを確認するために、シェルプロファイルで作成する必要のあるロックファイルのチェックがあります。tmpfs スーパーバイザーが以前に開始されている場合。

WSLはのみをサポートしますext4 ファイルシステムの場合、他のファイルシステムを使用するには、パーティション(またはディスク)をWSLVMの内部に直接マウントする必要があります。ただし、手動でマウントする必要があります 管理者として窓から。これを自動化するために、タスクを実行してUACプロンプトをバイパスできるタスクスケジューラを使用できます 最高の特権を持つ 。 wslを実行できます--mount 目的のディスク/パーティションをマウントしてから、Linux内からファイルシステムのマウントを実行するコマンド。私の/home/ マウントされた場所にありますbtrfs ファイルシステム自動的にマウントする必要があるので、/etc/fstab パーティションをマップする(LABEL ) に/home 。でnixを使用しているためnix-env nixストアをバインドマウントする必要があります/nix すべてのwslスタートアップで、そして/tmp オンではありませんtmpfs マウントするオーバーレイマウントを作成する必要がありますtmpfs 既存の上に/tmp Xサーバーとの通信に必要な重要なファイル(特にX11ファイル)を保持するためのディレクトリ。

これらのマウントはスクリプトで実行され、実行する必要があります Linux内にディスクをマウントしました。マウントタスクの完了後に実行するタスクが必要です。WSLはWindowsユーザーごとに異なるVMを使用するため、スクリプトは最高の権限で実行する必要はありません(そうしないと、管理者VMにマウントされます)。

WSLgが機能することを確認するには、XDGを確認する必要があります ランタイム DIRが設定されているのは、DIRが異なり、(デフォルトで)次の場所にあるためです。/mnt/wlsg/runtime-dir 。これがウェイランドの下のウィンドウの外観です。ウェイランドウィンドウの装飾はコンポジターまたはアプリケーションのいずれかで描画できるため、GTK / QTテーマの構成が保持されるため、ネイティブのLinuxテーマのウィンドウになります。 Windowsシェルの内部...最初は少し混乱します。

ターミナルエミュレータ

Linuxでは私は使っていました キティ 、GPUアクセラレーションを備えた新しいターミナルエミュレータの1つであったため[2]やや安定したデーモンモードで、同じインスタンスで複数のウィンドウを使用できます。しかし、Windowsでは、Windowsターミナル、流暢なターミナル、wsltty、conemuなど、いくつかのWindowsベースのターミナルに手を出しましたが、最終的には wezterm 。最近の端末であるにもかかわらず、端末エミュレーターに必要なすべての機能を備えています。

Windowsでは、ドロップダウンターミナルを使用して、複数の個別のウィンドウをサポートするデーモンモードのターミナルが不要になるようにワークフローを少し変更しました。 weztermを作るには 落ちる 多くのドロップダウンAHKスクリプトを試した後、最終的に私は見つけました それはかなりうまくいきました。しかし、より良い代替案は 窓-ターミナル-地震、しかし、私はdexpotによって管理されている仮想デスクトップでの誤動作に問題がありましたが、mitty-quake-consoleはdexpot仮想デスクトップと互換性があるようです。組み込みのWindows仮想デスクトップのエクスペリエンスが向上したら、windows-terminal-quakeに切り替えます。 WezTermもクロスプラットフォームです。つまり、ネイティブのLinuxインストールで引き続き使用できます。キティはまだWindowsをサポートしておらず、他の端末の代替手段にはかなり大きな問題があったため、このWindows + WSLスイッチにとっては本当に幸運な発見でした。 私は同意することができませんでした.

[1]AutoHotKey
[2]ターミナルでGPUアクセラレーションが必要なのはなぜですか?

投稿タグ: