Saya tidak membayangkan ini dibangun ke dalam sistem, tetapi apakah mungkin melakukannya tanpa terlalu banyak kesulitan?
Katakanlah saya membuka program tertentu dengan hotkey, dan ketika saya menekan hotkey itu lagi, jendela program dibawa ke depan.
Saya ingin melakukan ini di Ubuntu 9.04.
Mungkin dengan D-Bus? Adakah pakar?
Pembaruan : Inilah yang saya hasilkan seandainya bermanfaat bagi seseorang:
#!/bin/bash
if [ -f "/tmp/myterm.pid" ]; then
WID=`cat /tmp/myterm.pid`
xdotool windowactivate $WID
if [ "$?" != "0" ]; then
WID=""
fi
else
WID=`xdotool search --title "UNIQUE TITLE" | head -1`
fi
if [ "$WID" == "" ]; then
/usr/bin/gnome-terminal --window-with-profile=MYPROFILE "$@"
WID=`xdotool search --title "UNIQUE TITLE" | head -1`
echo $WID > /tmp/myterm.pid
else
xdotool windowactivate $WID
fi
Tentunya itu bisa disederhanakan, tapi saya bukan bash
ahli. Juga, agar contoh saya berfungsi, saya membuat profil khusus di Terminal yang menerapkan judul unik ke jendela sehingga dapat ditemukan nanti. Kemungkinannya tidak terbatas!
Jawaban:
The
wmctrl
Program hanya apa yang Anda cari (sudo apt-get install wmctrl
). Anda dapat menggunakanwmctrl -a "AppTitle"
perintah untuk membawa aplikasi ke depan.wmctrl -l
akan mencantumkan semua jendela yang tersedia, jadi seharusnya mudah untuk menulis skrip shell yang memeriksa apakah program Anda berjalan dan apakah meluncurkan atau membawanya ke depan. Kemudian Anda bisa mengikatnya ke pintasan keyboard.Pertama-tama simpan skrip berikut di suatu tempat, saya akan gunakan
/home/jtb/code/bringToFront
. Dibutuhkan dua argumen, yang pertama adalah apa yang Anda ketik di terminal untuk meluncurkan program, yang kedua adalah substring dari judul jendela program. Jika tidak ada string unik konstan dalam judul maka Anda harus melakukan sedikit lebih banyak pekerjaan untuk menemukan jendela program.Dengan skrip di direktori Anda saat ini, jalankan
chmod +x bringToFront
untuk membuat skrip dapat dieksekusi. Kemudian pastikan itu berfungsi; untuk meluncurkan / memfokuskan firefox Anda dapat menjalankan./bringToFront firefox "Mozilla Firefox"
.Sekarang kita perlu mengikat tombol pintas. Jalankan
gconf-editor
dan navigasikan struktur folder ke kiri ke/apps/metacity/keybinding_commands
.Klik dua kali pada yang pertama
command
dengan nilai kosong, mungkincommand_1
. Ketikkan path lengkap ke skrip dan berikan dua parameter, mis/home/jtb/code/bringToFront firefox Firefox
.Dari panel di sebelah kiri, pilih
global_keybindings
, folder berikutnya ke atas. Carirun
entri yang cocok dengan perintah yang baru saja Anda tentukan, mungkinrun_command_1
. Klik dua kali dan ketik pintasan keyboard yang ingin Anda gunakan. Letakkan pengubah dalam kurung sudut, misalnya<Ctrl><Alt>F
.Sekarang Control+ Alt+ Fakan membawa jendela firefox Anda ke depan, atau meluncurkannya jika belum berjalan.
sumber
Inilah cara lain untuk melakukannya
xdotools
. Proses pop-up dikenali oleh baris perintah yang dikeluarkan untuk menjalankannya (tidak perlu file pid atau judul jendela unik).sumber
Terima kasih untuk itu. Saya menggunakan versi modifikasi untuk membuat skrip shortcut jendela yang juga mendukung bersepeda melalui beberapa instance. Jika Anda tertarik:
http://somanov.wordpress.com/2009/12/02/window-shortcuts-for-linux-desktops/
Bersulang :)
sumber
Jawaban yang diposting oleh jtb sebelumnya sangat baik tetapi kadang-kadang Anda ingin mencocokkan judul yang tepat (misalnya Anda ingin membuka "GitKraken" tetapi judul browser Anda "GitKraken vs CLI" juga cocok dengan kueri).
Jadi sekarang Anda dapat memanggil skrip bringToFront Anda seperti berikut:
sumber
Solusi ini tidak diparameterisasi, tetapi saya telah menggunakannya untuk membawa-ke-fokus atau memulai kalkulator gnome.
Opsi -R menemukan jendela atau gagal, jika ditemukan dipindahkan ke desktop saat ini, dinaikkan dan diberikan fokus. Nama gnome-calculator adalah window dengan nama Calculator , ini dapat dengan mudah diparameterisasi, tetapi saya belum pernah menemukan kebutuhan untuk melakukannya. Saya sudah memetakannya
Ctrl-Alt-c
.sumber