WindowsをLinuxのように使う
この記事は、LinuxのコマンドラインでPCを操作することに慣れているユーザーが、Microsoft Windowsでも同様の操作感を得たいと考えている方向けです。
ターミナルアプリケーション
Windowsにはいくつかのクロスプラットフォーム対応のターミナルエミュレーターがありますが、ここでは特に人気のある2つを紹介します:
- Alacritty -- モダンでGPUアクセラレーション対応のターミナルエミュレーター。Rustで書かれており、Linux・macOS・Windows間で共通の設定ファイルを使いたい人には最適です。
-
Windows Terminal -- Windows 11に標準搭載されているターミナルアプリ。サードパーティ製を使いたくない初心者にはぴったり。GUIと
.json
の両方で設定可能です。
次は、ターミナル上で実際にコマンドを実行するためのシェルを選ぶステップです。以下のような選択肢があります:
-
PowerShell Core -- 従来のWindows PowerShell 5のクロスプラットフォーム向けモダン版。高機能ですが、UNIX系シェルとは構文が異なります。たとえば、
ls
は実際にはdir
を呼び出すようにエイリアスされています。 -
Git Bash -- Windowsに
git
をインストールすると、MinGWベースのbash
シェルが付属します。Linuxユーザーにとっては馴染みのある選択肢です。 -
Nushell -- Rustで書かれた新しいクロスプラットフォームのシェル。構造化データの出力やパイプライン処理に対応しており、
bash
とは構文が異なりますが、エラー時には代替案を提示してくれるなど親切です。
パッケージマネージャー
多くのLinuxユーザーは、ターミナルベースのパッケージマネージャーに依存しています。Windowsにも以下のような選択肢があります:
- winget -- Windows 11に標準搭載されているパッケージマネージャー。アプリのインストールやアップデートに対応。
- scoop -- コマンドラインユーザー向けの使いやすいマネージャー。カスタムリポジトリを追加でき、UNIX的な使い心地です。
- choco -- 最も古くからあるWindows向けパッケージマネージャーの一つ。広く知られています。
より詳しい比較は以下を参照してください:
- https://github.com/ScoopInstaller/Scoop/wiki/Chocolatey-and-Winget-Comparison
- https://www.bowmanjd.com/chocolatey-scoop-winget/
タイリングウィンドウマネージャー
Linuxで i3
、sway
、hyprland
などのタイリングウィンドウマネージャーを使っていた方には、Windows上で同様のワークフローを実現するためのツールがあります。
Komorebi
komorebi は、Windows 10以降で動作するタイリングウィンドウマネージャーです。Windowsのデスクトップ環境とスムーズに統合されることを目指しており、OSの挙動を大きく変えないのが特徴です。
komorebi
は winget
または 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
に保存されます。
自動起動
komorebi
、whkd
、bar
を同時に起動するには:
komorebic start --whkd --bar
ログイン時の自動起動設定については、公式ガイドをご覧ください:https://lgug2z.github.io/komorebi/common-workflows/autostart.html
その他のツール
さらに多くの便利なツールやユーザーコミュニティによるスクリプトが awesome-komorebiリポジトリ に集約されています。
アプリケーションランチャー
Linuxで使われている rofi
や tofi
のようなランチャーは Windows には存在しませんが、以下のような代替があります:
- PowerToys Run -- MicrosoftのPowerToysの一部として提供されており、非常に高速かつWindowsと高い親和性を持ちます。
-
Flow Launcher -- プラグイン対応のオープンソースランチャー。
PowerToys Run
よりやや軽快さは劣るものの、カスタマイズ性は高いです。
Discussion