Tôi đang sử dụng terminator 0.96 làm trình giả lập thiết bị đầu cuối. Làm cách nào tôi có thể làm cho nó chạy trong nền và làm cho nó xuất hiện / biến mất như thiết bị đầu cuối guake (tức là sử dụng phím tắt).
Tôi đang sử dụng terminator 0.96 làm trình giả lập thiết bị đầu cuối. Làm cách nào tôi có thể làm cho nó chạy trong nền và làm cho nó xuất hiện / biến mất như thiết bị đầu cuối guake (tức là sử dụng phím tắt).
Câu trả lời:
Tôi đã cố gắng làm điều tương tự (là một fan hâm mộ của cả guake và terminator). Đây là những gì tôi đã đưa ra (một phiên bản tùy chỉnh của câu trả lời của desqua cho câu hỏi này ):
Để khởi chạy một ứng dụng hoặc để hiển thị cửa sổ của nó nếu đã được khởi chạy hoặc để thu nhỏ nếu nó được tập trung
1) Cài đặt wmctrl & xdotool hoặc trong thiết bị đầu cuối:sudo apt-get install wmctrl xdotool
2) Tạo kịch bản:
Và dán cái này:
#!/bin/bash
#
# This script does this:
# launch an app if it isn't launched yet,
# focus the app if it is launched but not focused,
# minimize the app if it is focused.
#
# by desgua - 2012/04/29
# modified by olds22 - 2012/09/16
# - customized to accept a parameter
# - made special exception to get it working with terminator
# First let's check if the needed tools are installed:
tool1=$(which xdotool)
tool2=$(which wmctrl)
if [ -z $tool1 ]; then
echo "Xdotool is needed, do you want to install it now? [Y/n]"
read a
if [[ $a == "Y" || $a == "y" || $a = "" ]]; then
sudo apt-get install xdotool
else
echo "Exiting then..."
exit 1
fi
fi
if [ -z $tool2 ]; then
echo "Wmctrl is needed, do you want to install it now? [Y/n]"
read a
if [[ $a == "Y" || $a == "y" || $a = "" ]]; then
sudo apt-get install wmctrl
else
echo "Exiting then..."
exit 1
fi
fi
# check if we're trying to use an app that needs a special process name
# (because it runs multiple processes and/or under a different name)
app=$1
if [[ $app == terminator ]]; then
process_name=usr/bin/terminator
else
process_name=$app
fi
# Check if the app is running (in this case $process_name)
#pid=$(pidof $process_name) # pidof didn't work for terminator
pid=$(pgrep -f $process_name)
# If it isn't launched, then launch
if [ -z $pid ]; then
$app
else
# If it is launched then check if it is focused
foc=$(xdotool getactivewindow getwindowpid)
if [[ $pid == $foc ]]; then
# if it is focused, then minimize
xdotool getactivewindow windowminimize
else
# if it isn't focused then get focus
wmctrl -x -R $app
fi
fi
exit 0
chmod +x ~/bin/launch_focus_min.sh
3) Tạo phím tắt cho bàn phím của bạn:
Mở cài đặt bàn phím của bạn và tạo một shorcut tùy chỉnh bằng lệnh: /home/<user>/bin/launch_focus_min.sh terminator
(~ / bin sẽ không hoạt động)
gán lệnh này cho Shift + Escape (hoặc bất kỳ phím tắt nào bạn đã sử dụng để thực hiện).
#!/bin/bash
Cách dễ nhất để làm điều này sẽ là sử dụng xdotool
và sử dụng windowunmap/windowmap
lệnh để ẩn / bỏ ẩn lớp cửa sổ mong muốn. (Cách tiếp cận này không được đề cập trong các câu trả lời khác có đề cập xdotool
.) Giải pháp sẽ hoạt động tốt trên tất cả các máy tính để bàn, bất kể trình quản lý cửa sổ nào họ đang sử dụng. Như trang ghi chú ,
Trong thuật ngữ X11, ánh xạ một cửa sổ có nghĩa là làm cho nó hiển thị trên màn hình.
Vì vậy, bỏ sơ đồ một cửa sổ sẽ làm ngược lại và ẩn cửa sổ. Thật không may, không có chuyển đổi có sẵn để sử dụng xdotool
để chuyển đổi giữa các trạng thái ánh xạ / unmap, nhưng hai lệnh bạn cần ở bên dưới. Cái đầu tiên ẩn cửa sổ:
xdotool search --class terminator windowunmap %@
và thứ hai đảo ngược hiệu ứng:
xdotool search --class terminator windowmap %@
Xin lưu ý rằng nếu cửa sổ đã được thu nhỏ, windowunmap
lệnh sẽ không thành công.
Để biết thêm thông tin man xdotool
, hãy xem các trang web Ubuntu trực tuyến và câu trả lời của tôi cho câu hỏi liên quan này .
Bằng cách chọn một nhóm tùy chọn trong Terminator, bạn có thể làm cho nó hoạt động gần giống với Guake.
Tham khảo bài viết sau để được giải thích chi tiết.
http://www.webupd8.org/2011/07/install-terminator-with-built-in-quake.html
Tôi sẽ khuyên bạn làm theo tất cả các bước trong bài viết để có được kết quả mong muốn. Tôi đã bỏ qua một vài bước, nghĩ rằng chúng không cần thiết, nhưng thực sự cần thiết để khắc phục một số lỗi.
Tôi muốn giới thiệu đơn giản là sử dụng yakuake
, một thiết bị đầu cuối có cùng kiểu với guake cho máy tính để bàn kde.
Bạn có thể cài đặt nó bằng cách chạy sudo apt-get install yakuake
.
Tôi đã viết một kịch bản để nâng cao và giảm thiểu thiết bị đầu cuối gnome với byobu trong linux mint, bởi vì guake có một số mớ hỗn độn đầu ra giao diện điều khiển kỳ lạ. Sau đó, tôi đã thêm nó vào các phím tắt trong bàn phím quản trị viên-> phần cắt xén.
tập lệnh có tên guake-toggling-for-gnome-terminal.sh :
#!/usr/bin/env bash
if ! pgrep -x "gnome-terminal" > /dev/null
then
gnome-terminal --app-id us.kirkland.terminals.byobu -e byobu
fi
byobuVisible=$(xdotool search --onlyvisible byobu)
byobuNotVisible=$(xdotool search byobu)
xdotool windowminimize ${byobuVisible}
xdotool windowraise ${byobuNotVisible}
Byobu chỉ là tên cửa sổ ở đây.