Bagaimana cara saya beralih ke program yang sudah berjalan menggunakan terminal?
Untuk contoh:
firefox membuka jendela firefox baru.
Apakah ada perintah yang akan memfokuskan jendela firefox yang sudah dibuka?
Bagaimana cara saya beralih ke program yang sudah berjalan menggunakan terminal?
Untuk contoh:
firefox membuka jendela firefox baru.
Apakah ada perintah yang akan memfokuskan jendela firefox yang sudah dibuka?
Jawaban:
Dengan anggapan Anda telah menginstal wmctrl (jalankan sudo apt-get install wmctrljika tidak):
Perintah:
wmctrl -ia "$(wmctrl -lp | grep "$(pgrep gedit)" | tail -1 | awk '{ print $1 }')"
Akan menaikkan jendela yang terakhir dibuka gedit. Ganti dengan aplikasi lain.
pgrep gedit
mendapat pid dari gedit
wmctrl -lp
daftar semua jendela dan pid milik mereka
awk '{ print $1 }'
memisahkan id jendela- (string pertama di baris)
$(wmctrl -lp | grep "$(pgrep gedit)" | tail -1 | awk '{ print $1 }')
Oleh karena itu menemukan id jendela dari jendela yang terakhir dibuat gedit(output dari wmctrl -lpdaftar windows dalam urutan kronologis penciptaan, jika aplikasi memiliki beberapa jendela, tail -1mengembalikan yang terakhir).
wmctrl -ia
kemudian menaikkan jendela dengan nya window-id
... untuk dijalankan dengan aplikasi sebagai argumen:
#!/bin/bash
wmctrl -ia "$(wmctrl -lp | grep "$(pgrep "$1")" | tail -1 | awk '{ print $1 }')"
switchto.shJalankan sebagai (mis.)
/path/to/switchto.sh firefox
Secara teoritis perintah:
xdotool search --class gedit windowactivate
harus melakukan (jenis) yang sama; itu harus memunculkan jendela pertama yang ditemukangedit dalam kasus ini.
Namun sepertinya kurang kuat. Pada sistem saya (Persatuan) itu tidak melakukan apa pun.
Jika Anda menjalankan firefox menggunakan firefox &Anda dapat menggunakan jobsuntuk melihat nomornya. Untuk membawanya ke depan, tulis %n firefoxyang nmerupakan nomor. Contoh:
sabrina@ubuntu:~$ jobs
[1]+ Stopped firefox
sabrina@ubuntu:~$ fg %1
Anda juga dapat "membunuh" program:
sabrina@ubuntu:~$ kill %1