Có thể nâng một cửa sổ bằng phím tắt trong Gnome3 không?


8

Gần đây tôi đã chuyển từ KDE4 sang Gnome3. Trong KDE, bạn có thể tạo các phím tắt cụ thể cho ứng dụng để nâng cao các cửa sổ. Tôi thường tạo mỗi cái cho firefox, thunderbird, thiết bị đầu cuối của mình, v.v ... Cách đó chuyển đổi giữa các cửa sổ rất nhanh. Gnome dường như không có loại chức năng đó. Ngoài ra, tôi không thích sơ đồ chuyển đổi cửa sổ của Gnome3 (tab alt).

Do đó tôi đã tự hỏi nếu nó có thể nâng cao các cửa sổ thông qua DBUS? Nếu có, thì có thể viết một tập lệnh và gán một phím tắt cho nó.


1
Nếu bạn muốn nâng cao và tập trung cửa sổ, wmctrlcó thể làm điều đó.
Gilles 'SO- ngừng trở nên xấu xa'

1
Làm thế nào "thông minh" là phương pháp phím tắt KDE? ví dụ. Làm thế nào để nó xử lý nhiều cửa sổ của cùng một ứng dụng? Có một số công cụ X hoạt động đơn lẻ hoặc cùng nhau có thể làm những gì bạn muốn .. Nhưng những công cụ bạn sử dụng có thể phụ thuộc vào mức độ tinh vi mà bạn muốn thực hiện.
Peter.O

@Gilles, nhờ những đầu mối, wmctrl đã làm các trick @fred phương pháp KDE shortcut chỉ hoạt động cho các cửa sổ duy nhất, nhưng thats đủ tốt đối với tôi, vì tôi chỉ sử dụng cửa sổ duy nhất cho firefox, thunderbird, vv
tự do tư tưởng

Câu trả lời:


3

Tôi đã tìm thấy một tập lệnh trên wiki fluxbox sử dụng wmctrlđể tìm một ứng dụng và nâng cao cửa sổ của nó nếu nó đang chạy. Nếu không, script sẽ khởi chạy ứng dụng. Tôi đang sử dụng tập lệnh đó với các tinh chỉnh để hỗ trợ các đối số mà tôi đã ghi lại trên blog của mình .

  1. Hãy chắc chắn rằng đã wmctrlđược cài đặt.

    sudo apt-get install wmctrl
    
  2. Thêm đoạn mã sau vào đường dẫn của bạn (có thể trong $HOME/bin/find_app.sh) và làm cho nó có thể thực thi được.

    #!/bin/bash
    # Find_app
    
    # Author: Lucas van Staden (lvs at dedmeet.com / http://www.dedmeet.com)
    # This little script will try and find the application attempting to start
    # in the running processes, and if found, focus the application
    # if not found, a new instance will start
    
    # usage:
    # find_app.sh <application with full path>
    
    # params
    # 1 - application to start (full path)
    
    # helper applications
    DOLLARONE=$(echo $1 | sed -e 's/[\t ]*$//') #Delete trailing spaces
    WMCTRL=`which wmctrl`;
    GREP=`which grep`;
    APPLICATION=$(echo $DOLLARONE | cut -d ' ' -f 1)
    if [ "x$APPLICATION" != "x$DOLLARONE" ]; then
      APPARGS=$(echo $DOLLARONE | cut -d ' ' -f 2)
    fi
    BASENAME=`basename $APPLICATION`;
    BASENAME=`echo $BASENAME | tr "[:upper:]" "[:lower:]"`
    FOUND=0;
    function findwindow {
    # 1 = BASENAME
    # 2 = WMCTRL
    # 3 = GREP
            IFS=$'\n';
            for RUNNING in `$2 -l -x`
            do
                    if [ `echo $RUNNING | tr "[:upper:]" "[:lower:]" | $3 -c $DOLLARONE` -gt 0 ]
                    then
                            HOSTNAME=`hostname`
                            WINDOW=${RUNNING#*${HOSTNAME} }
                            $2 -a $WINDOW
                            FOUND=1;
                    fi;
            done
    }
    if [ "x$APPARGS" = "x" ]; then
      findwindow $BASENAME $WMCTRL $GREP;
      if [ $FOUND -eq 0 ]
      then
              $APPLICATION &
              sleep 2;
              # Try and find the application, after opened
              findwindow $BASENAME $WMCTRL $GREP;
              if [ $FOUND -eq 0 ]
              then
                      # Still not found, wait a bit more, and try again
                      sleep 3;
                      findwindow $BASENAME $WMCTRL $GREP;
              fi
      fi
    else
      $APPLICATION $APPARGS &
    fi
    
  3. Cập nhật các tệp mục trên máy tính để bàn của các ứng dụng bạn muốn có một lối tắt đơn để khởi chạy cũng như nâng cao, để các ứng dụng được gọi thông qua tập lệnh trên.

    Ví dụ:

    cp /usr/share/applications/firefox.desktop ~/.local/share/applications/
    

    Chỉnh sửa firefox.desktoptrong ~/.local/share/applications/và thay đổi Execdòng để tham khảo find_app.sh:

    Exec=find_app.sh "firefox %u"
    
  4. Bây giờ thêm một phím tắt cho trình duyệt mặc định của bạn:

    Cài đặt hệ thống | Bàn phím | Phím tắt | Bệ phóng | Khởi chạy trình duyệt web

  5. Khởi động lại gnome shell: Nhấn Alt rđể hiển thị hộp thoại chạy. Gõ rvà bấm Enter.

Bây giờ bạn có thể khởi chạy / nâng trình duyệt của mình bằng một phím tắt duy nhất.


@Gilles Đó là một kịch bản mã nguồn mở, không phụ thuộc vào tôi có phát hành hay không, tôi nghĩ rằng nó chỉ là một giải pháp quá dài để được đăng ở đây. Sẽ cập nhật câu trả lời của tôi với nhiều chi tiết hơn
freethinker

tôi nghĩ nên có một cách riêng để thực hiện điều này bằng thư viện libbamf.
freethinker

2

Có một công cụ tương tự gọi là xdotool . Nó có vẻ rất giống với wmctrl. Ưu điểm chính so với cái sau có lẽ là nó sử dụng ID X Window chứ không phải chuỗi để xử lý các cửa sổ. Tôi không biết nếu nó quan trọng trong trường hợp của bạn mặc dù. Nhưng giả sử bạn đang sử dụng Chrome, được mở trên một trang web, tiêu đề có Mozilla, thì bạn có thể không xác định được ứng dụng từ tiêu đề của cửa sổ.

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.