앱을 열거 나 가져 오기위한 사용자 정의 단축키 / 바로 가기


11

이것이 시스템에 내장되어 있다고는 생각하지 않지만 너무 번거 로움없이 할 수 있습니까?

핫키를 사용하여 특정 프로그램을 열고 해당 핫키를 다시 누르면 프로그램 창이 맨 앞에옵니다.

우분투 9.04에서 이것을하고 싶습니다.

아마도 D- 버스와 함께? 전문가?

업데이트 : 누군가에게 도움이되는 경우를 대비하여 마무리했습니다.

#!/bin/bash
if [ -f "/tmp/myterm.pid" ]; then
  WID=`cat /tmp/myterm.pid`
  xdotool windowactivate $WID
  if [ "$?" != "0" ]; then
    WID=""
  fi
else
  WID=`xdotool search --title "UNIQUE TITLE" | head -1`
fi

if [ "$WID" == "" ]; then
  /usr/bin/gnome-terminal --window-with-profile=MYPROFILE "$@"
  WID=`xdotool search --title "UNIQUE TITLE" | head -1`
  echo $WID > /tmp/myterm.pid
else
  xdotool windowactivate $WID
fi

분명히 단순화 될 수는 있지만 나는 bash마법사가 아닙니다 . 또한 예제가 작동하도록 터미널에 고유 한 제목을 창에 적용하여 나중에 찾을 수 있도록 사용자 지정 프로필을 만들었습니다. 가능성은 끝이 없습니다!


1
이 간단한 작업의 경우, xdotools가 때때로 X 오류를 발생시키고 wmctrl이 더 빠르기 때문에 jtb의 방법이 더 잘 작동합니다.
Ivan

답변:


10

wmctrl프로그램은 당신이 찾고있는 것입니다 ( sudo apt-get install wmctrl). wmctrl -a "AppTitle"명령을 사용하여 앱을 맨 앞으로 가져올 수 있습니다 . wmctrl -l사용 가능한 모든 창을 나열하므로 프로그램이 실행 중인지 확인하고 프로그램을 시작하거나 앞쪽으로 가져 오는 쉘 스크립트를 작성하는 것이 쉬워야합니다. 그런 다음 키보드 단축키에 바인딩하면됩니다.

먼저 다음 스크립트를 어딘가에 저장하십시오 /home/jtb/code/bringToFront. 두 개의 인수가 필요합니다. 첫 번째는 터미널에서 프로그램을 시작하기 위해 입력하는 것이고, 두 번째는 프로그램 창 제목의 하위 문자열입니다. 제목에 상수 고유 문자열이 없으면 프로그램 창을 찾기 위해 약간의 작업을 수행해야합니다.

#!/bin/bash
if [ `wmctrl -l | grep -c "$2"` != 0 ]  
then
    wmctrl -a "$2"
else
    $1 &
fi
  1. 현재 디렉토리에 스크립트가 있으면 실행 chmod +x bringToFront하여 스크립트를 실행 가능하게하십시오. 그런 다음 작동하는지 확인하십시오. 파이어 폭스를 시작 / 초점을 맞추려면 실행할 수 있습니다 ./bringToFront firefox "Mozilla Firefox".

  2. 이제 바로 가기 키를 바인딩해야합니다. gconf-editor폴더 구조를 실행 하고 왼쪽으로 이동하십시오 /apps/metacity/keybinding_commands.

  3. command아마도 빈 값으로 첫 번째 를 두 번 클릭하십시오 command_1. 스크립트의 전체 경로를 입력하고 두 개의 매개 변수를 제공하십시오 (예 :) /home/jtb/code/bringToFront firefox Firefox.

  4. 왼쪽 패널에서 global_keybindings다음 폴더를 위로 선택하십시오 . run방금 정의한 명령과 일치 하는 항목을 찾으십시오 run_command_1. 두 번 클릭하고 사용하려는 키보드 단축키를 입력하십시오. 수정자를 꺾쇠 괄호 안에 넣습니다 (예 :) <Ctrl><Alt>F.

이제 Control+ Alt+ F는 파이어 폭스 창을 맨 앞으로 가져 오거나 아직 실행되지 않은 경우 실행합니다.


예, 몇 분 전에 알았지 만 xdotool과 함께갔습니다. 감사!
Ivan

나는 gconf의 전역 단축키와 명령을 사용하여 효과를 완전히 달성하기 위해 언급 한 것을 잊어 버렸습니다 (가난한 사람의 Quake 콘솔!).
Ivan

아, 그래 xdotool을 직접 사용하지는 않았지만 좀 더 융통성있는 것처럼 보입니다. gconf에 대한 좋은 지적. 그것이 명백한 것은 아니기 때문에, 다른 사람을 위해 더 자세한 내용을 포함하도록 답변을 편집 할 수도 있습니다.
jtb

Poort Man 's Quake 콘솔? 틸다를 의미합니까? freshmeat.net/projects/tilda
prestomation

예, 나도 Tilda를 사용하지만 일주일 내내 여러 프로젝트를 수행하고 있으며, 각각 1 개씩 항상 3 개 또는 4 개의 탭을 열므로 Tilda를 방해하지 않고 프로젝트 콘솔 ( "작업 공간")로 빠르게 전환하는 것이 매우 유용합니다.
Ivan

3

여기에 다른 방법이 있습니다 xdotools. 팝업 프로세스는이를 실행하기 위해 실행 된 명령 행에 의해 인식됩니다 (pid 파일 또는 고유 창 제목 필요 없음).

#!/bin/bash

cmd="$@"
# command line to be run. Note that the resulting
# process will hold this in /proc/PID/cmdline 

pid=`pgrep -nf "^$cmd$"`
# most recent process having "$cmd" in /proc/PID/cmdline

if [ -z "$pid" ]; then # no pid
    exec $cmd
    # run command
else
    winid=`xdotool search --all --pid $pid --onlyvisible | head -1`
    # first visible window owned by pid
    xdotool windowactivate $winid
    # give window focus
fi


0

이전 에 jtb 가 게시 한 답변 은 훌륭하지만 때로는 정확한 제목과 일치 시키려고합니다 (예 : "GitKraken"을 열지 만 브라우저의 제목 "GitKraken vs CLI"도 쿼리와 일치 함).

#!/bin/bash
if [ $1 == "-exact" ]
then
    additional_arguments="-F "
    app_launch_command=$2
    app_title=$3
else
    additional_arguments=""
    app_launch_command=$1
    app_title=$2
fi

if [ `wmctrl -l $additional_arguments| grep -c "$app_title"` != 0 ]
then
    wmctrl $additional_arguments -a "$app_title"
else
    $app_launch_command &
fi

이제 다음과 같이 bringToFront 스크립트를 호출 할 수 있습니다.

#exact match
./bringToFront.sh -exact "flatpak run com.axosoft.GitKraken" "GitKraken"
#or
./bringToFront.sh -exact <command_to_launch_the_app> <app_title

#partial match like the old script
./bringToFront.sh "flatpak run com.axosoft.GitKraken" "GitKraken"
#or
./bringToFront.sh <command_to_launch_the_app> <app_title>


0

이 솔루션은 매개 변수화되어 있지 않지만 그놈 계산기를 사용하여 초점을 맞추 거나 시작 하는 데 사용했습니다 .

-R 옵션은 창을 찾거나 실패하면 창을 현재 바탕 화면으로 이동하여 올려 놓고 초점을 맞 춥니 다. gnome-calculator는 창 이름을 Calculator 라는 이름으로 지정 하며 쉽게 매개 변수화 할 수는 있지만 그렇게 할 필요는 없었습니다. 에 매핑했습니다 Ctrl-Alt-c.

#!/bin/bash
# start the calculator and raise and focus (requires wmctrl)
# X Tian 06sep2017 created

wmctrl -R Calculator
if [[ $? -ne 0 ]]
  then 
    gnome-calculator &
fi

0

나는 같은 문제가 있었고 적절한 해결책을 찾지 못했기 때문에 하나를 만들었다.

https://hyperkeys.xureilab.com

https://github.com/xurei/hyperkeys

정의한 바로 가기로 창을 고정 할 수 있습니다. 개인적으로 SHIFT + ALT + [QWER]를 사용하여 고정하고 ALT + [QWER]를 사용하여 정면으로 가져옵니다. 하지만 앱이 열려 있지 않으면 열 수 없습니다.

이것은 오픈 소스 리눅스 우선 도구입니다. Windows 버전도 제공됩니다.

그것이 도움이되기를 바랍니다! 의견을 찾고 있으므로 질문이 있으시면 문제를 만드십시오. ;-)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.