Cách thực hiện lệnh đầu cuối mỗi khi cửa sổ firefox đóng


8

Tôi cần phải thực hiện điều này:

rm -rf ~/.wine-pipelight/*;
rm -rf ~/.wine-pipelight/./.*;
cp -a ~/viewright_backup/. ~/.wine-pipelight

mỗi khi cửa sổ Firefox đóng lại. Nhưng không nhất thiết khi tất cả các cửa sổ đóng, nhưng trên mỗi cửa sổ được đóng lại. Ví dụ: nếu tôi có một cửa sổ Firefox và một cửa sổ bật lên Firefox. Nếu tôi đóng ít nhất một cửa sổ, tôi muốn thực hiện lệnh này. Điều này có thể không? Cảm ơn!


1
tại sao bạn muốn làm việc này? Có lẽ sẽ dễ dàng giải quyết vấn đề hơn là sử dụng cách giải quyết như vậy. Phiên bản Pipelight và Wine-compholio nào bạn sử dụng?
Michael Müller

Tôi theo dấu vết này . Nó ở tại thành phố này, nhưng có những mã được sử dụng trong phần mô tả.
Dusan Milosevic

Đây là một dịch vụ của công ty băng thông rộng Serbia không được hỗ trợ đặc biệt trên linux.
Dusan Milosevic

Câu trả lời:


11

Cách duy nhất tôi có thể nghĩ là không thanh lịch. Bạn có thể có một tập lệnh chạy trong nền đếm số lượng cửa sổ firefox đang mở mỗi giây và khởi chạy lệnh của bạn nếu số đó thay đổi. Cái gì đó như:

#!/usr/bin/env bash


## Run firefox
/usr/bin/firefox &

## Initialize the variable to 100
last=100;

## Start infinite loop, it will run while there
## is a running firefox instance.
while pgrep firefox >/dev/null;
do
    ## Get the number of firefox windows    
    num=$(xdotool search --name firefox | wc -l)

    ## If this number is less than it was, launch your commands
    if [ "$num" -lt "$last" ]
    then
        rm -rf ~/.wine-pipelight/*;
        ## I included this since you had it in your post but it
        ## does exactly the same as the command above.
        rm -rf ~/.wine-pipelight/./.*;
        cp -a ~/viewright_backup/. ~/.wine-pipelight      
    fi

    ## Save the number of windows as $last for next time
    last=$num

    ## Wait for a second so as not to spam your CPU.
    ## Depending on your use, you might want to make it wait a bit longer,
    ## the longer you wait, the lighter the load on your machine
    sleep 1

done

Lưu tập lệnh ở trên như firefox, đặt nó vào ~/binthư mục của bạn và làm cho nó thực thi được chmod a+x ~/bin/firefox. Do Ubuntu thêm ~/binvào $PATHmặc định của bạn và thêm nó trước bất kỳ thư mục nào khác, nên việc chạy firefoxsẽ khởi chạy tập lệnh đó thay vì tệp thực thi firefox thông thường. Bây giờ, vì tập lệnh đang khởi chạy /usr/bin/firefox, điều này có nghĩa là firefox bình thường của bạn sẽ xuất hiện, đúng như bạn mong đợi, chỉ với tập lệnh đang chạy. Kịch bản sẽ thoát ngay khi bạn đóng firefox.

TUYÊN BỐ TỪ CHỐI:

Kịch bản này là

  1. Không thanh lịch, nó cần phải được chạy như một vòng lặp vô hạn trong nền.
  2. Yêu cầu xdotool, cài đặt nó vớisudo apt-get install xdotool
  3. Không hoạt động cho các tab, chỉ cửa sổ.

cách giải quyết tốt đẹp
kenn

Cảm ơn! Tôi sẽ không làm cho nó tự khởi động, mà là làm cho nó bắt đầu khi firefox bắt đầu. Cảm ơn bạn rất nhiều, tôi sẽ thử nó.
Dusan Milosevic

@terdon Vì tôi dự định làm cho nó khởi động khi firefox khởi động, có thể làm cho nó dừng lại khi firefox đóng. Có lẽ một cái gì đó như : while ["0" -lt "$(xdotool search --name firefox | wc -l)" ]. Tôi không biết liệu sintax có đúng không nhưng bạn có được điểm ... Bạn có thể viết lại để đáp ứng điều kiện này không? Cảm ơn!
Dusan Milosevic

@DusanMilosevic xem câu trả lời cập nhật. Tôi viết lại nó để kịch bản tự khởi chạy firefox và chỉ chạy miễn là có ít nhất một phiên bản firefox đang chạy.
terdon
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.