Jak połączyć niestandardowy skrót klawiaturowy ze skryptem bash w Ubuntu 13.04?


8

Jako użytkownik Ubuntu 13.04 miałem również różne problemy i niezgodności z najnowszą wersją Ubuntu. Jednym z nich jest to, że pasek Jasności nagle zniknął z zakładki „Ustawienia systemu -> Jasność i blokada” po zainstalowaniu niektórych pakietów (których tak naprawdę nie pamiętam, co to było). Dowiedziałem się, że obejściem jest użycie xbacklight .

Jako ćwiczenie dla siebie napisałem krótki skrypt, aby łatwo zwiększyć i zmniejszyć jasność za pomocą xbacklight z terminala. Skrypt jest wykonywalny (ma uprawnienia do wykonania), jest katalogiem, który jest zawarty w $ PATH w moim pliku .bashrc i jest połączony z aliasem („blup”, aby zwiększyć i „bldn”, aby zmniejszyć jasność ekranu). Więc moje dwa aliasy (blup / bldn) działają idealnie dobrze z linii terminalu. Następnie chciałem połączyć je z niektórymi skrótami klawiaturowymi (na przykład F2 / F3). Zrobiłem to w „Ustawieniach systemu -> Klawiatura -> Skróty -> Niestandardowe skróty”, ale to nie działało.

wprowadź opis zdjęcia tutaj

Dlaczego?

Ponadto, czy istnieje sposób na „odkrycie”, gdzie i jak wykonywane są inne (niestandardowe) polecenia skrótów klawiaturowych? Na przykład, skrót zwiększania głośności, jaką linię terminalu wykonuje, do jakiego aliasu jest podłączony (jeśli istnieje) i do jakiego katalogu jest umieszczony (/ usr / bin, coś jeszcze ...)?

Jako nowicjusz w pisaniu skryptów byłbym wdzięczny za wszelką pomoc!

Dzięki

PS1 Oczywiście po prostu można wkleić polecenie „xbacklight -inc / -dec 10” do niestandardowych skrótów klawiaturowych i będzie działać dobrze. Chcę po prostu skorzystać z okazji i dowiedzieć się nieco więcej na temat pisania i wykonywania skryptów.

PS2 Mój problem nie jest taki sam jak ten: Jak uruchomić skrypt bash za pomocą skrótu klawiaturowego? , tzn. nie używam „~ /” dla „/ home / user /”.



Jeśli zmieniłeś PATH w .bashrc, zmiana będzie dostępna tylko w interaktywnych sesjach bash; nie będzie to widoczne dla procesu wykonującego skróty klawiaturowe. ~/.profileZamiast tego zmień ŚCIEŻKĘ , a następnie wyloguj się i zaloguj ponownie.
geirha

Próbowałem dodać ścieżkę, w której moje skrypty znajdują się w pliku .profile, jak zasugerowałeś, używając albo: PATH = $ PATH: / home / myusername / scripts lub export PATH = $ PATH: / home / myusername / scripts, ale żaden z działały (po zalogowaniu i wylogowaniu). Jeśli jednak dodam pełną ścieżkę skryptu do skrótu klawiaturowego (sh /home/username/script/nameofscript.sh), to zadziała. Co robię tutaj źle?
Mario go

Odpowiedzi:


4

Przede wszystkim aliasy nie są rozwijane w nieinteraktywnych powłokach. Przeczytaj ALIASESsekcję man bashw tym sensie. Tak więc nie można użyć aliasu w polu „Polecenie” podczas dodawania / edycji niestandardowego skrótu.

Po drugie, jak geirha powiedział w tym komentarzu , jeśli zmienił PATHsię w .bashrcpliku, że zmiana nie będzie dostępny w nieinterakcyjnych muszli. Więc trzeba zmienić PATHw ~/.profilepliku zamiast.

Po trzecie, jeśli nadal chcesz używać tylko bldnw polu „komenda” podczas dodawania / edytować własny skrót, można zmienić nazwę skryptu o tej nazwie i dodać ścieżkę do skryptu PATHw ~/.profilepliku, jak powiedziałem powyżej.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.