Gnome3에서 키보드 단축키를 사용하여 창을 열 수 있습니까?

Gnome3에서 키보드 단축키를 사용하여 창을 열 수 있습니까?

최근에 KDE4에서 Gnome3으로 전환했습니다. KDE에서는 창을 띄우는 응용 프로그램별 키보드 단축키를 만들 수 있습니다. 나는 보통 Firefox, Thunderbird, 터미널 등을 위해 하나를 만듭니다. 이렇게 하면 창 사이를 매우 빠르게 전환할 수 있습니다. Gnome에는 그런 기능이 없는 것 같습니다. 또한 나는 Gnome3의 창 전환 방식(alt-tab)을 좋아하지 않습니다.

그렇다면 DBUS를 통해 창을 올리는 것이 가능한지 궁금합니다. 그렇다면 스크립트를 작성하고 여기에 키보드 단축키를 할당할 수 있습니다.

답변1

Fluxbox 위키에서 wmctrl애플리케이션을 찾아 이미 실행 중인 경우 해당 창을 표시하는 스크립트를 찾았습니다. 그렇지 않으면 스크립트가 애플리케이션을 시작합니다. 나는 이 스크립트를 사용하고 내가 가지고 있는 매개변수를 지원하도록 조정하고 있습니다.내 블로그에 기록됨.

  1. wmctrl설치되어 있는지 확인하세요 .

    sudo apt-get install wmctrl
    
  2. 경로(아마도 $HOME/bin/find_app.sh)에 다음 스크립트를 추가하고 실행 가능하게 만듭니다.

    #!/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. 위 스크립트를 통해 응용 프로그램이 호출되도록 단일 실행 바로 가기를 갖고자 하는 응용 프로그램의 데스크톱 항목 파일을 업데이트합니다.

    예를 들어:

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

    이 줄을 편집하고 firefox.desktop인용하도록 변경합니다.~/.local/share/applications/Execfind_app.sh

    Exec=find_app.sh "firefox %u"
    
  4. 이제 기본 브라우저에 키보드 단축키를 추가하세요.

    시스템 설정|키보드|단축키|실행기|웹 브라우저 실행

  5. 그놈 쉘 다시 시작: Alt r실행 대화 상자를 표시하려면 누르십시오. 를 입력 r하고 누릅니다 Enter.

이제 단일 키보드 단축키를 사용하여 브라우저를 시작/실행할 수 있습니다.

답변2

비슷한 도구가 있습니다.xdo 도구. wmctrl과 매우 유사해 보입니다. 아마도 후자에 비해 가장 큰 장점은 문자열 대신 X Window ID를 사용하여 창을 처리한다는 것입니다. 이것이 귀하의 경우에 중요한지 모르겠습니다. 그러나 Chrome을 사용하고 제목에 Mozilla가 포함된 웹사이트를 열었다고 가정하면 창 제목에서 앱을 식별하지 못할 수도 있습니다.

관련 정보