Bagaimana cara menghubungkan pintasan keyboard khusus ke skrip bash di Ubuntu 13.04?

8

Sebagai pengguna Ubuntu 13.04 saya mengalami berbagai masalah dan ketidakcocokan dengan Ubuntu versi terbaru ini. Salah satunya adalah bilah Kecerahan tiba-tiba menghilang dari tab 'Pengaturan Sistem -> Kecerahan & Kunci' setelah saya menginstal beberapa paket (yang saya tidak begitu ingat apa itu). Saya menemukan bahwa solusinya adalah menggunakan xbacklight .

Sebagai latihan untuk diri saya sendiri, saya menulis skrip pendek agar mudah meningkatkan dan mengurangi kecerahan menggunakan xbacklight dari terminal. Skrip dapat dieksekusi (memiliki izin untuk dieksekusi), adalah direktori yang termasuk dalam $ PATH dalam file .bashrc saya dan ditautkan ke alias ('blup' untuk menambah dan 'bldn' untuk mengurangi kecerahan layar). Jadi, dua alias saya (blup / bldn) berfungsi dengan baik dari jalur terminal. Selanjutnya, saya ingin menautkan ini ke beberapa pintasan keyboard (misalnya F2 / F3). Saya melakukannya di 'Pengaturan Sistem -> Keyboard -> Pintasan -> Pintasan Khusus', tetapi tidak berhasil.

masukkan deskripsi gambar di sini

Mengapa?

Lebih lanjut, apakah ada cara untuk 'menemukan' di mana dan bagaimana perintah pintasan keyboard (non-kustom) dijalankan? Misalnya, pintasan volume-up jalur terminal apa yang dijalankannya, alias apa yang terhubung ke (jika ada) dan direktori apa yang mereka taruh di (/ usr / bin, sesuatu yang lain ...)?

Sebagai pemula dalam penulisan naskah, saya sangat menghargai segala bantuan!

Terima kasih

PS1 Tentu saja, cukup satu dapat menempelkan perintah 'xbacklight -inc / -dec 10' ke pintasan keyboard khusus dan itu akan berfungsi dengan baik. Saya hanya ingin mengambil kesempatan dan mengenal sedikit lebih banyak tentang penulisan dan pelaksanaan skrip.

PS2 Masalah saya tidak sama dengan yang ini: Bagaimana cara meluncurkan skrip bash menggunakan pintasan keyboard? , yaitu, saya tidak menggunakan '~ /' untuk '/ home / user /'.

mario pergi
sumber
Ini mungkin membantu Anda askubuntu.com/questions/254424/…
Seth
Jika Anda mengubah PATH .bashrc, perubahan itu hanya akan tersedia di sesi bash interaktif; itu tidak akan terlihat oleh proses melakukan pintasan keyboard. Ganti PATH ~/.profilesebagai gantinya, lalu logout dan kembali.
geirha
Saya telah mencoba untuk menambahkan jalur tempat skrip saya berada pada profil., Seperti yang Anda sarankan, menggunakan salah satu: PATH = $ PATH: / home / myusername / scripts atau ekspor PATH = $ PATH: / home / myusername / scripts tetapi tidak ada mereka berhasil (setelah masuk dan keluar). Namun, jika saya menambahkan path lengkap skrip ke keyboard-shortcut (sh /home/username/script/nameofscript.sh) itu berfungsi. Apa yang saya lakukan salah di sini?
mario go

Jawaban:

4

Pertama-tama, alias tidak diperluas di shell yang tidak interaktif. Baca ALIASESbagian dari man bashdalam pengertian ini. Jadi, Anda tidak dapat menggunakan alias di bidang 'Perintah' saat Anda menambahkan / mengedit pintasan khusus.

Kedua, sebagai geirha mengatakan dalam komentar ini , jika Anda berubah PATHdalam .bashrcberkas, perubahan itu tidak akan tersedia pada kulit non-interaktif. Jadi, Anda perlu mengubah file PATHdalam ~/.profilegantinya.

Ketiga, jika Anda masih ingin menggunakan hanya bldndi bidang 'Command' ketika Anda menambahkan / mengedit pintasan khusus, Anda dapat mengganti nama skrip Anda dengan nama ini dan menambahkan path skrip ke file PATHin ~/.profile, seperti yang saya katakan di atas.

Radu Rădeanu
sumber