Wie verknüpfe ich eine benutzerdefinierte Tastenkombination mit einem Bash-Skript in Ubuntu 13.04?

8

Als Ubuntu 13.04-Benutzer hatte ich auch verschiedene Probleme und Inkompatibilitäten mit dieser neuesten Version von Ubuntu. Eine davon ist, dass die Helligkeitsleiste plötzlich von der Registerkarte "Systemeinstellungen -> Helligkeit & Sperre" verschwunden ist, nachdem ich einige Pakete installiert habe (an die ich mich nicht wirklich erinnere, was es war). Ich fand heraus, dass eine Problemumgehung darin besteht, xbacklight zu verwenden .

Als Übung für mich selbst habe ich ein kurzes Skript geschrieben, um die Helligkeit mithilfe von xbacklight vom Terminal aus leicht zu erhöhen und zu verringern. Das Skript ist ausführbar (hat die Berechtigung zum Ausführen), ist ein Verzeichnis, das in $ PATH in meiner .bashrc-Datei enthalten ist und mit einem Alias ​​verknüpft ist ('blup' zum Erhöhen und 'bldn' zum Verringern der Bildschirmhelligkeit). Meine beiden Aliase (blup / bldn) funktionieren also von einer Terminalleitung aus einwandfrei. Als nächstes wollte ich diese mit einigen Tastaturkürzeln verknüpfen (zum Beispiel F2 / F3). Ich habe dies unter "Systemeinstellungen -> Tastatur -> Verknüpfungen -> Benutzerdefinierte Verknüpfungen" getan, aber es hat nicht funktioniert.

Geben Sie hier die Bildbeschreibung ein

Warum?

Gibt es außerdem eine Möglichkeit, herauszufinden, wo und wie andere (nicht benutzerdefinierte) Tastaturkürzelbefehle ausgeführt werden? Zum Beispiel die Volume-Up-Verknüpfung, welche Terminalleitung wird ausgeführt, mit welchem ​​Alias ​​ist verbunden (falls vorhanden) und in welchem ​​Verzeichnis werden sie abgelegt (/ usr / bin, etwas anderes ...)?

Als Neuling im Drehbuchschreiben würde ich mich über jede Art von Hilfe freuen!

Vielen Dank

PS1 Natürlich kann man einfach den Befehl 'xbacklight -inc / -dec 10' in die benutzerdefinierten Tastaturkürzel einfügen und es wird gut funktionieren. Ich möchte nur die Gelegenheit nutzen und ein bisschen mehr über das Schreiben und Ausführen von Skripten erfahren.

PS2 Mein Problem ist nicht dasselbe wie dieses: Wie starte ich ein Bash-Skript über eine Tastenkombination? dh ich benutze kein '~ /' für '/ home / user /'.

Mario gehen
quelle
Dies könnte Ihnen helfen askubuntu.com/questions/254424/…
Seth
Wenn Sie PATH in geändert haben .bashrc, ist diese Änderung nur in interaktiven Bash-Sitzungen verfügbar. Es ist für den Vorgang, der die Tastaturkürzel ausführt, nicht sichtbar. Ändern Sie ~/.profilestattdessen den
Pfad
Ich habe versucht, den Pfad, in dem sich meine Skripte befinden, zum .profile hinzuzufügen, wie Sie vorgeschlagen haben, indem ich entweder PATH = $ PATH: / home / myusername / scripts oder PATH = $ PATH: / home / myusername / scripts exportiere, aber keines von Sie funktionierten (nach dem An- und Abmelden). Wenn ich jedoch den vollständigen Pfad des Skripts zur Tastenkombination (sh /home/username/script/nameofscript.sh) hinzufüge, funktioniert dies. Was mache ich hier falsch?
Mario gehen

Antworten:

4

Erstens werden Aliase in nicht interaktiven Shells nicht erweitert. Lesen Sie den ALIASESAbschnitt man bashin diesem Sinne. Sie können also keinen Alias ​​im Feld "Befehl" verwenden, wenn Sie eine benutzerdefinierte Verknüpfung hinzufügen / bearbeiten.

Zweitens, wie Geirha in diesem Kommentar sagte , ist diese Änderung in nicht interaktiven Shells nicht verfügbar , wenn Sie sie PATHin einer .bashrcDatei geändert haben. Sie müssen also stattdessen die PATHIn- ~/.profileDatei ändern .

Drittens, wenn Sie bldnbeim Hinzufügen / Bearbeiten einer benutzerdefinierten Verknüpfung immer noch nur das Feld 'Befehl' verwenden möchten , können Sie Ihr Skript mit diesem Namen umbenennen und den Skriptpfad zur PATHIn- ~/.profileDatei hinzufügen , wie oben erwähnt.

Radu Rădeanu
quelle