Tôi đã cài đặt xdotool bằng cách chạy sudo apt-get install xdotool
và ném xdotool key ctrl+alt+t
lệnh để mở cửa sổ terminal mới từ cửa sổ hiện tại. Nhưng nó không hoạt động.
Lệnh mở cửa sổ terminal mới từ terminal gnome hiện tại là gì?
Tôi đã cài đặt xdotool bằng cách chạy sudo apt-get install xdotool
và ném xdotool key ctrl+alt+t
lệnh để mở cửa sổ terminal mới từ cửa sổ hiện tại. Nhưng nó không hoạt động.
Lệnh mở cửa sổ terminal mới từ terminal gnome hiện tại là gì?
Câu trả lời:
Chỉ cần lệnh này sẽ làm:
gnome-terminal
Thông thường nếu bạn muốn một lệnh mở từ thiết bị đầu cuối và tách ra (để nó trở về dấu nhắc mà không phải đóng chương trình đã mở) , bạn phải sử dụng một cái gì đó như thế này:
gnome-terminal & disown
Tuy nhiên, thiết bị đầu cuối cha mẹ dường như phát hiện ra rằng cùng một lệnh đang được sử dụng, do đó bạn không cần phải làm điều đó và gnome-terminal
sẽ đủ. Điều này cũng có thể xảy ra khi chạy xfce4-terminal
từ thiết bị đầu cuối của Xfce, konsole
từ KDE cũng như (dường như không làm việc khi chạy xterm
từ xterm
(xem thêm xterm xterm
) - Chạy konsole
từ các tác phẩm thiết bị đầu cuối Gnome / Unity & Xfce của cũng , nhưng đối với thiết bị đầu cuối của Xfce trong gnome terminal bạn cần xfce4-terminal & disown
).
Để biết thêm truy cập gnome-terminal
trang hướng dẫn :
gnome-terminal [-e, --command=STRING] [-x, --execute ] [--window-with-profile=PROFILENAME] [--tab-with-profile=PRO‐
FILENAME] [--window-with-profile-internal-id=PROFILEID] [--tab-with-profile-internal-id=PROFILEID] [--role=ROLE]
[--show-menubar] [--hide-menubar] [--geometry=GEOMETRY] [--disable-factory] [-t, --title=TITLE] [--working-direc‐
tory=DIRNAME] [--usage] [-?, --help]
gnome-terminal &
. Nếu không, thiết bị đầu cuối hiện tại sẽ không thể sử dụng được, vì nó sẽ bận chạy cái kia - vì vậy bạn kết thúc chỉ với một thiết bị đầu cuối có thể sử dụng, có thể thiếu điểm.
gnome-terminal
trong khi một phiên bản khác của nó đang chạy (nó có thể là phiên bản tôi đang sử dụng để khởi chạy lệnh này) - nó thực sự kết thúc ngay lập tức, vì thay vì chạy một phiên bản mới gnome-terminal
, nó nói rằng hiện đang chạy một phiên bản mới để mở một phiên bản mới cửa sổ. Khó khăn. Nhưng nếu tôi chạy gnome-terminal
từ bất cứ thứ gì khác , và không có trường hợp nào khác gnome-terminal
chạy, nó sẽ làm như tôi đã giải thích trong bình luận trước đó, chặn thiết bị đầu cuối được sử dụng để khởi chạy nó.
konsole
dường như không cần chút nào ... kỳ lạ. Tôi không biết tại sao câu hỏi / câu trả lời này lại phổ biến đến vậy :)
gnome-terminal .
mate-terminal
Lệnh mở cửa sổ terminal mới từ terminal hiện tại,
xdotool key ctrl+shift+n
Để cài đặt xdotool
,
sudo apt-get install xdotool
xdotool key ctrl+shift+n
trong khi sử dụng gnome-terminal
bạn có nhiều tùy chọn khác; xem man gnome-terminal
theo nghĩa này
Kịch bản sau đây sẽ mở một tab mới trong cửa sổ gnome-terminal hiện tại và tùy chọn cung cấp cho tab đó một tiêu đề. Điều này hoạt động từ bất kỳ cửa sổ nào, bạn không cần phải ở trong cửa sổ gnome-terminal để chạy nó. Và, nếu không có gnome-terminal đang chạy, nó sẽ bắt đầu một. Nhắc nhở duy nhất là nếu bạn thay đổi phím nóng để mở tab mới, bạn có thể phải thay đổi dòng xdotool key ctrl+T
để sử dụng phím nóng thay thế.
#!/bin/bash
DELAY=1
# get title we are going to set tab too, default to Terminal
title="Terminal"
if [ $# -eq 1 ]; then
title="$1"
fi
# get pid of running terminal server
TPID=$(ps -C gnome-terminal-server -o pid | tail -1 | sed -e's/\s//g')
if [ ${TPID} == "PID" ]; then
# no terminal process running yet, so just start one
gnome-terminal -t "$title" --tab
exit 0
fi
# there is a terminal, get window id of the running terminal server
WID=$(wmctrl -lp | awk -v pid=$TPID '$3==pid{print $1;exit;}')
# get title of currently active tab
TTITLE=`xwininfo -id 0x5000006 | grep xwininfo | awk '{print $5;exit}'`
if [ "$TTITLE" == "\"Terminal\"" ]; then
# so we don't go into an infinite loop later
TTITLE="we had a terminal named terminal $$"
fi
# get focus on active terminal tab
xdotool windowfocus $WID
# use keyboard shortcut to open new tab
xdotool key ctrl+T
# see if we have created tab and are in terminal
NTITLE=`xwininfo -id 0x5000006 | grep xwininfo | awk '{print $5;exit}'`
waited=0
while [ "$TTITLE" == "$NTITLE" ]; do
# sleep for 1 second before we try again
xdotool sleep 1
NTITLE=`xwininfo -id 0x5000006 | grep xwininfo | awk '{print $5;exit}'`
if [ $waited == 0 ]; then
echo "Waiting "
waited=1
fi
echo -n "."
done
if [ $waited == 1 ]; then
echo ""
fi
# active tab is the new one we created, wait DELAY seconds just to be sure we can type into it to set tab name
xdotool sleep $DELAY
xdotool type --clearmodifiers "termtitle $title"
xdotool key Return
# make tab the active window and raise it to top
wmctrl -i -a $WID
exit 0