Saya ingin tahu atau mungkin untuk mengatur Terminal GNOME dengan cara bahwa ketika saya membuka terminal dan sudah ada instance terbuka itu akan menunjukkan contoh itu dan tidak membuka yang baru.
Saya ingin tahu atau mungkin untuk mengatur Terminal GNOME dengan cara bahwa ketika saya membuka terminal dan sudah ada instance terbuka itu akan menunjukkan contoh itu dan tidak membuka yang baru.
Jawaban:
Saya menulis skrip shell sederhana menggunakan wmctrl untuk memberikan fokus Terminal. Itu tepat seperti yang saya inginkan.
Pertama, instal wmctrl sudo apt-get install wmctrl
.
Selanjutnya, jalankan editor teks, salin baris berikut.
#!/bin/sh
SERVICE='gnome-terminal'
if ps ax | grep -v grep | grep $SERVICE > /dev/null
then
wmctrl -xa $SERVICE
else
$SERVICE
fi
Simpan file di suatu tempat di mana Anda biasanya menyimpan skrip shell Anda. Dalam kasus saya saya lakukan: ~/bin/single_instance.sh
cd ke direktori ( cd ~/bin
) dan membuat file dapat dieksekusichmod +x single_instance.sh
Sekarang, buka Menu Utama pilih Accessories »Terminal pers sifat dan mengganti perintah dengan script:~/bin/single_instance.sh
Buka Pengaturan Sistem »Keyboard» Pintasan . Nonaktifkan luncurkan pintasan Terminal dengan memberinya backspace. Buat pintasan khusus. Sekali lagi isi lintasan dan nama untuk naskah dan berikan kombinasi tombol ctrl + alt + t .
Anda sudah selesai, terminal instance tunggal ...
Tambahkan --tab ke perintah peluncur. Maka Anda berakhir hanya dengan satu aplikasi. Buka.
~$ gnome-terminal --help-all
:
--tab Open a new tab in the last-opened window with the default profile
Ini adalah perilaku default jika Anda menggunakan pintasan Mod4+#
( Mod4
= Super = "Windows", #
adalah pintasan dalam peluncur) untuk membuka aplikasi apa pun.
Saya ingin menambahkan skrip saya sendiri, karena menurut saya ini sangat berguna:
Saya mengkonfigurasi pintas Ctrl + Alt + T untuk menjalankan skrip ini dan saya merasa lebih nyaman daripada Guake atau Tilda.
#!/usr/bin/env sh
# APP is the binary name you see when you do ps
APP="gnome-terminal"
# WIN_CLASS is the window class you see when you do wmctrl -lx
WIN_CLASS="gnome-terminal-server.Gnome-terminal"
# Use the app from current workpace first, or any if not available
WORKSPACE=$(wmctrl -d | grep '\*' | cut -d ' ' -f1)
TPID=$(ps aux | pgrep $APP)
if [ "$TPID" ]
then
QTERM_WIN=$(wmctrl -lx | grep $WIN_CLASS | grep $WORKSPACE | awk 'NR == 1 {print $1}')
if [ "$QTERM_WIN" ]
then
wmctrl -ia $QTERM_WIN
else
# No valid app found in the current workspace, switch to any
QTERM_WIN=$(wmctrl -lx | grep $WIN_CLASS | awk 'NR == 1 {print $1}')
wmctrl -ia $QTERM_WIN
fi
else
$APP &
fi
Saya menggunakannya dengan QTerminal tetapi saya memodifikasi agar sesuai dengan kebutuhan Anda. Semoga berhasil