🐧

WindowsをLinuxのように使う

に公開

この記事は、LinuxのコマンドラインでPCを操作することに慣れているユーザーが、Microsoft Windowsでも同様の操作感を得たいと考えている方向けです。

ターミナルアプリケーション

Windowsにはいくつかのクロスプラットフォーム対応のターミナルエミュレーターがありますが、ここでは特に人気のある2つを紹介します:

  • Alacritty -- モダンでGPUアクセラレーション対応のターミナルエミュレーター。Rustで書かれており、LinuxmacOSWindows間で共通の設定ファイルを使いたい人には最適です。
  • Windows Terminal -- Windows 11に標準搭載されているターミナルアプリ。サードパーティ製を使いたくない初心者にはぴったり。GUIと.jsonの両方で設定可能です。

次は、ターミナル上で実際にコマンドを実行するためのシェルを選ぶステップです。以下のような選択肢があります:

  • PowerShell Core -- 従来のWindows PowerShell 5のクロスプラットフォーム向けモダン版。高機能ですが、UNIX系シェルとは構文が異なります。たとえば、ls は実際には dir を呼び出すようにエイリアスされています。
  • Git Bash -- Windowsgitをインストールすると、MinGWベースbashシェルが付属します。Linuxユーザーにとっては馴染みのある選択肢です。
  • Nushell -- Rustで書かれた新しいクロスプラットフォームのシェル。構造化データの出力やパイプライン処理に対応しており、bashとは構文が異なりますが、エラー時には代替案を提示してくれるなど親切です。

パッケージマネージャー

多くのLinuxユーザーは、ターミナルベースのパッケージマネージャーに依存しています。Windowsにも以下のような選択肢があります:

  • winget -- Windows 11に標準搭載されているパッケージマネージャー。アプリのインストールやアップデートに対応。
  • scoop -- コマンドラインユーザー向けの使いやすいマネージャー。カスタムリポジトリを追加でき、UNIX的な使い心地です。
  • choco -- 最も古くからあるWindows向けパッケージマネージャーの一つ。広く知られています。

より詳しい比較は以下を参照してください:

タイリングウィンドウマネージャー

Linuxi3swayhyprland などのタイリングウィンドウマネージャーを使っていた方には、Windows上で同様のワークフローを実現するためのツールがあります。

Komorebi

komorebi は、Windows 10以降で動作するタイリングウィンドウマネージャーです。Windowsのデスクトップ環境とスムーズに統合されることを目指しており、OSの挙動を大きく変えないのが特徴です。

komorebiwinget または scoop でインストールできます:

scoop install extras/komorebi
# or
winget install LGUG2Z.komorebi

インストール後、以下のコマンドで $HOME/komorebi.json に初期設定ファイルを生成します:

komorebic quickstart

詳しいセットアップ手順は公式ドキュメントまたはCLIガイドをご覧ください。

whkd(ホットキー管理)

タイリングウィンドウマネージャーにはカスタムホットキーが不可欠です。Windowsでは whkd がその役割を果たします。設定ファイルは $HOME/.config/whkdrc に置きます。

スクリプトとホットキーを組み合わせることもできます。例えば、WIN + Q でアクティブなウィンドウを閉じるには:

VK_LWIN + q             : pwsh -File $HOME/.local/bin/pkill.ps1

このようなスクリプトを用意します(pkill.ps1):

Add-Type @"
	using System;
	using System.Runtime.InteropServices;
	public class UserWindows {
		[DllImport("user32.dll")]
		public static extern IntPtr GetForegroundWindow();
		[DllImport("user32.dll")]
		[return: MarshalAs(UnmanagedType.Bool)]
		public static extern bool PostMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
	}
"@

$WM_CLOSE = 0x0010
$activeHandle = [UserWindows]::GetForegroundWindow()
[UserWindows]::PostMessage($activeHandle, $WM_CLOSE, [IntPtr]::Zero, [IntPtr]::Zero)

Bar(バー)

ワークスペースの追跡システム情報の表示をするには、バーがあると便利です。komorebi にはkomorebi-barという組み込みバーがあります。設定ファイルは $HOME/komorebi.bar.json に保存されます。

自動起動

komorebiwhkdbar を同時に起動するには:

komorebic start --whkd --bar

ログイン時の自動起動設定については、公式ガイドをご覧ください:https://lgug2z.github.io/komorebi/common-workflows/autostart.html

その他のツール

さらに多くの便利なツールやユーザーコミュニティによるスクリプトが awesome-komorebiリポジトリ に集約されています。

アプリケーションランチャー

Linuxで使われている rofitofi のようなランチャーは Windows には存在しませんが、以下のような代替があります:

  • PowerToys Run -- MicrosoftPowerToysの一部として提供されており、非常に高速かつWindowsと高い親和性を持ちます。
  • Flow Launcher -- プラグイン対応のオープンソースランチャー。PowerToys Runよりやや軽快さは劣るものの、カスタマイズ性は高いです。
ネイバーズ東京

Discussion