WSL i CMD uruchamiane z kontekstowego menu w Windowsie

Jakiś czas temu, musiałem dość często używać WSL-a. Dość uporczywym było przechodzenie za każdym razem przez całą ścieżkę, zarówno w nim jak i w CMD. Postanowiłem dodać odpowiednią integrację w menu kontekstowym, celem przyśpieszenia pracy.


Wymagania

Na początku instalujemy aplikację Windows Terminal. Jest ona dostępna pod tym adresem.

Kod

Tworzymy poniższy plik i zapisujemy go w dowolnej lokalizacji (np na pulpicie), z rozszerzeniem .reg. Następnie klikamy na niego prawym klawiszem myszy i wybieramy scal. Po czym restartujemy komputer, bądź sam proces explorer.exe (dla zawansowanych).

integracja.reg

Windows Registry Editor Version 5.00

; For windows explorer context menu

[HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\shell\linux1]
@="Terminal - Linux"
"Icon"="C:\\WINDOWS\\system32\\cmd.exe"

[HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\shell\linux1\command]
@="\"C:\\Users\\Programista\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe\" -w 0 -p Ubuntu -d \"%W\""


[HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\shell\cmd1]
@="Terminal - Windows"
"Icon"="C:\\WINDOWS\\system32\\cmd.exe"

[HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\shell\cmd1\command]
@="\"C:\\Users\\Programista\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe\" -w 0 -p \"Command Prompt\" -d \"%W\""


; For other programs context menu, like one commander

[HKCU\Software\Classes\Directory\shell\linux1]
@="Terminal - Linux"
"Icon"="C:\\WINDOWS\\system32\\cmd.exe"

[HKCU\Software\Classes\Directory\shell\linux1\command]
@="wt.exe -w 0 -p Ubuntu -d %1 "

[HKCU\Software\Classes\Directory\shell\cmd1]
@="Terminal - Windows"
"Icon"="C:\\WINDOWS\\system32\\cmd.exe"

[HKCU\Software\Classes\Directory\shell\cmd1\command]
@="wt.exe -w 0 -p \"Command Prompt\" -d %1 " ; Delete actual useless "Open in windows terminal" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked] "{9F156763-7844-4DC4-B2B1-901F640F5155}"="" "{02DB545A-3E20-46DE-83A5-1329B1E88B6B}"=""

W powyższym skrypcie należy podmienić wszelkie wystąpienia:

  •  "Programista", na nazwę swojego konta. Możesz ją odszukać po przez wejście do katalogu C:\Users.
  • "Ubuntu", na nazwę dystrybucji którą chcemy uruchamiać. Możesz ją odszukać wypisując "wsl --list" w CMD

Dodatkowo, zgodnie z tym linkiem, poniżej przedstawiam parametry uruchomieniowe Windows Terminal-a:

  • "-p Command Prompt / -p Ubuntu" - oznacza jaki profil jaki chcemy uruchomić
  • "-w 0" - oznacza uruchomienie na najczęściej używanym oknie, dzięki temu każde ponowne uruchomienie, nie utworzy nam nowego okna
  • "-d %1" - oznacza że przejdziemy do folderu w którym uruchamiamy naszą instancję CMD/WSL-a

Działanie

W menu kontekstowym pojawią się nowe wpisy, które umożliwią uruchomienie nam dystrybucji opartej na WSL/samego CMD w aktualnie wybranym katalogu.


Bonus 1

Istnieje możliwość uruchomienia WSL-a,domyślnie jako super użytkownik. Wystarczy w sekcji "Command line" ustawnień Windows Terminala wpisać:

C:\WINDOWS\system32\wsl.exe -d Ubuntu -u root


Bonus 2

Poniższe wywołanie w CMD (po którym restartujemy komputer), powoduje przywrócenie w Windows 11, klasycznego menu kontekstowego znanego  z starszych wersji Windows-a. 

REG.EXE add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve

Kamil Mirończuk

I kiedy czegoś gorąco pragniesz, to cały wszechświat sprzyja potajemnie twojemu pragnieniu
~Paulo Coelho

Komentarze

Zostaw komentarz

Twój adres mailowy NIE zostanie opublikowany. W razie otrzymania zapytania, otrzymasz na niego odpowiedź.
Wymagane pola są oznaczone jako *