Tôi muốn biết hoặc có thể thiết lập Terminal Gnome theo cách mà khi tôi mở thiết bị đầu cuối và đã có một phiên bản mở, nó sẽ hiển thị trường hợp đó và không mở một thiết bị hoàn toàn mới.
Tôi muốn biết hoặc có thể thiết lập Terminal Gnome theo cách mà khi tôi mở thiết bị đầu cuối và đã có một phiên bản mở, nó sẽ hiển thị trường hợp đó và không mở một thiết bị hoàn toàn mới.
Câu trả lời:
Tôi đã viết một kịch bản shell đơn giản bằng cách sử dụng wmctrl để lấy tiêu điểm Terminal. Nó làm chính xác những gì tôi muốn.
Đầu tiên, cài đặt wmctrl sudo apt-get install wmctrl
.
Tiếp theo, kích hoạt trình soạn thảo văn bản, sao chép các dòng sau.
#!/bin/sh
SERVICE='gnome-terminal'
if ps ax | grep -v grep | grep $SERVICE > /dev/null
then
wmctrl -xa $SERVICE
else
$SERVICE
fi
Lưu tệp ở một nơi mà bạn thường giữ các tập lệnh shell của mình. Trong trường hợp của tôi, tôi đã làm: ~/bin/single_instance.sh
cd vào thư mục ( cd ~/bin
) và làm cho tập tin thực thichmod +x single_instance.sh
Bây giờ, hãy mở Menu chính chọn Phụ kiện »Thuộc tính nhấn thiết bị đầu cuối và thay thế lệnh bằng tập lệnh:~/bin/single_instance.sh
Mở Cài đặt hệ thống »Bàn phím» Phím tắt . Vô hiệu hóa phím tắt Launch Terminal bằng cách cho nó một khoảng lùi. Tạo một phím tắt tùy chỉnh. Một lần nữa điền vào đường dẫn và tên cho tập lệnh và cung cấp cho nó tổ hợp phím ctrl + alt + t .
Bạn đã hoàn thành, thiết bị đầu cuối đơn ...
Thêm --tab vào lệnh launcher. Sau đó, bạn kết thúc chỉ với một ứng dụng. mở.
~$ gnome-terminal --help-all
:
--tab Open a new tab in the last-opened window with the default profile
Đó là hành vi mặc định nếu bạn sử dụng phím Mod4+#
( Mod4
= Super = "Windows", #
là số trong trình khởi chạy) để mở bất kỳ ứng dụng nào.
Tôi muốn thêm tập lệnh của riêng mình, vì tôi thấy nó cực kỳ hữu ích:
Tôi đã cấu hình phím tắt Ctrl + Alt + T để chạy tập lệnh này và tôi thấy nó thậm chí còn thoải mái hơn Guake hoặc 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
Tôi sử dụng nó với QTerminal nhưng tôi đã sửa đổi để phù hợp với nhu cầu của bạn. Chúc may mắn