Menu kontekstowe po swojemu! Bash for Windows obok PowerShell'a?


  • Admin

    Witam! W dzisiejszym wpisie chciałbym Wam przedstawić w jaki sposób możecie całkiem prosto ułatwić sobie życie, a mianowicie - jak za pomocą rejestru możemy edytować menu kontekstowe.

    Na wstępie zaznaczam jednak, że całość robicie na własną odpowiedzialność i nie ponoszę konsekwencji za przypadkowe lub nie zepsucie sobie całości i/lub części swojego systemu operacyjnego. Znając życie prawie na pewno znajdą się osoby które i tak coś zepsują więc wolałem dodać tą linijkę mimo wszystko.

    Pamiętajcie też aby wykonać odpowiednie kopie rejestru przed jego modyfikacją / edycją.

    No dobra a teraz na poważnie, naszym celem w tym wątku jest dodanie sobie do naszego menu kontekstowego nowej pozycji uruchamiającej nam "Bash for Windows" czyli taki nieco lepszy terminal, dostępny w Windows 10.

    Informacje o tym co to takiego i jak uzyskać do tego dostęp w temacie: Powłoka bash w Windows bez emulacji? To, możliwe!
    Ważne jest aby najpierw włączyć ten moduł przed przejściem przez resztę tutoriala!!!

    Osobiście bardzo często pracuje z command-line'em, niestety ten domyślny w Windows krótko mówiąc mi nie odpowiada (muszę tłumaczyć za każdy razem komendy z jednego systemu w drugim - co jest czasami lekko irytujące - przykład "dir" zamiast "ls"), podobnie z nieco nowszym Powershell'em który również jest dla mnie nieco zbyt przesycony różnymi poleceniami na których naukę najzwyczajniej w świecie nie miałem dotąd czasu. Dużo bardziej wolę ten pochodzący z linux'a - stąd taki a nie inny wybór.

    Ok, więc do roboty, pierwsze co to oczywiście uruchomimy sobie nasz Edytor rejestru.
    Skrótem klawiszowym przechodzimy do okna uruchamiania (Win + R) i wpisujemy "regedit".

    Open regedit

    Uruchomi nam to oczywiście nasz edytor, który poprosi nas z wiadomych względów o podniesienie sobie uprawnień do administratora - nadajemy mu je. Otworzy się nowe okno Edytora rejestru.

    Wybierając z lewej strony przechodzimy do klucza "HKEY_CLASSES_ROOT\Directory\Background\shell":

    Go to shell key

    Jeżeli dobrze się przyjrzycie dostrzec można zarówno obecność cmd jak i powershell'a, domyślnie w Windows 10 oba są w systemie, jednak ich widoczność jest uzależniona od ustawień. Można zmienić Powershel'a na Cmd i odwrotnie, zmieniając w Ustawieniach paska zadań jedną opcje.

    Z widoku drzewka wybierając PPM na shell dodajemy nowy klucz rejestru, a właściwie folder o nazwie dajmy na to "Bash", wewnątrz niego dodajmy kolejny klucz o nazwie "command" - ważne aby była to dokładnie ta nazwa inaczej całość może nie zadziałać.

    Add command key

    Dobra teraz wybieramy ponownie nasz pierwszy klucz czyli Bash i z prawej strony okna edytujemy jedyną widoczną tam wartość, zmieniając ją na dowolny tekst który chcemy aby był wyświetlany w naszym menu kontekstowym, inaczej nazwą tą zostanie nazwa folderu (a wł. klucza - czyli Bash).

    Add name for option

    W naszym przypadku damy sobie nazwę "Open in Bash", ale nic nie szkodzi aby to np. spolszczyć.

    Przejdźmy teraz do kolejnego klucza w naszej hierarchii czyli "command" a wewnątrz niego ponownie edytujemy sobie jedyną widoczną tam wartość, tym razem będzie ono zawierać polecenie wywołujące nasz plik wykonywany dla naszego pseudo-nowego terminala.

    Add command to run

    Dokładnie tak jak gdybyśmy próbowali go uruchamiać z wcześniejszego okna uruchamiania, wpisalibyśmy wtedy bash.exe lub cmd.exe lub poweshell.exe (wszystkie te pliki znajdują się w katalogu Windows/System32).

    Podobnie regedit - gdybyśmy dopisali exe również by się odpaliło, ale w tym przypadku nie trzeba było tego robić bo Windows potrafi skojarzyć swój plik, nie podając rozszerzenia.

    Możemy je sobie dodatkowo rozszerzyć o dodatkowe flagi które przyjmują, jeżeli takowe przyjmują, nam jednak wystarczy sam plik wykonywalny czyli podajemy "bash.exe".

    I gotowe, nie musimy nawet restartować naszego komputera aby zobaczyć efekt - bo jest on widoczny wprost po zamknięciu regedit:
    Yup! Work

    Całość jest widoczna globalnie to znaczy, że niezależnie czy będziemy się znajdować w jakimś folderze czy będziemy próbowali wykonać jakąś akcje na plik (również PPM) zawsze będziemy widzieć to co dodaliśmy czyli naszą dodatkową opcje "Open in Bash". Są jednak odpowiednie klucze w rejestrze w których możemy ustawić widoczność tylko podczas wybranych akcji.

    Na to chwile to na tyle, dzięki i cześć ☺