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
Komentarze