Bài đăng gốc liên quan đến việc sử dụng tập lệnh để làm cho ứng dụng xuất hiện trên một không gian làm việc cụ thể, sao cho tập lệnh khác có thể được sử dụng trong tập lệnh Start Up để cho phép người dùng tiếp tục làm việc trong khi ứng dụng bắt đầu rất chậm được tải trên không gian làm việc khác. Kịch bản của tôi hoạt động tuyệt vời như giao diện người dùng cho cú pháp wmctrl khá cồng kềnh, để khởi chạy bất kỳ một ứng dụng nào trên bất kỳ không gian làm việc cụ thể nào, từ bất kỳ dấu nhắc lệnh nào. Do đó, một kịch bản tiếp theo chỉ đơn giản là liệt kê một cái gì đó như, lh 1 thunderbird; lh 2 firefox; lh 3 calculator
...., hoặc bất cứ điều gì, bây giờ dễ dàng. Tuy nhiên, có một số khó khăn với thời gian, do đó, giấc ngủ trong kịch bản của tôi. Dưới đây là phiên bản cập nhật mà tôi sẽ không duy trì hoặc đăng lại. Sử dụng AS IS, không đảm bảo sự phù hợp cho bất kỳ mục đích sử dụng cụ thể nào. Sửa đổi như bạn muốn. Tôi đề nghị tiết kiệm như /usr/local/bin/lh
, đơn giản vìlh
không phải là bất kỳ tên chương trình đã biết nào khác, ít nhất là không có trên Mint 18. Đối với các biến, tôi đã trích dẫn các biến tôi thấy cần thiết để được trích dẫn.
#!/bin/sh
## Author: B.A. Computer Services www.ba-computer.com
## Purpose: Frontend to launch anything on a specific desktop/workspace.
## lh is short for LaunchHere
USAGE="USAGE: $(basename $0) [-r] workspace(1,2,..) command\
LaunchHere launches COMMAND on specific workspace.\
-r option returns to current workspace"
[ -z "$1" ] && echo $USAGE && exit 0
ISRETURN=$(false); [ "$1" = "-r" ] && ISRETURN=true && shift;
WRKSPC=$1;[ -z "$WRKSPC" ] && echo $USAGE && exit 0
WSN=$(expr $WRKSPC - 1) ## wmctrl starts with 0 as first wrkspc
shift; CMD="$*"; [ -z "$CMD" ] && echo $USAGE && exit 0
WM=$(which wmctrl);[ -z "$WM" ] && echo MISSING wmctrl && exit 1
CURRENT=$(wmctrl -d | grep '*' | cut -c1)
# Switch to desired workspace
$WM -s $WSN
$CMD &
PID=$!
echo Executed $CMD on workspace $WRKSPC, PID=$PID
sleep 3
# Return to CURRENT workspace ?
# [ $ISRETURN ] && echo TRUE || echo FALSE
[ $ISRETURN ] && $WM -s $CURRENT