나는 사용하고있다wmctrl예를 들어 여러 텍스트 편집기, 웹 브라우저, PDF 뷰어 및 터미널에 대해 수동으로 수행할 필요가 없도록 응용 프로그램을 시작한 후 이동합니다. 응용 프로그램을 이동하기 위해 다음 wmctrl 명령을 실행하고 있습니다.
wmctrl -r <title> -e <x>,<y>,0,-1,-1
여기서 < x > 및 < y >는 수평 및 수직 대상 좌표이고 < title >은 에서 반환된 애플리케이션의 이름입니다 wmctrl -l
. 아래 명령을 통해 두 개의 Google 크롬 사본을 실행하면
google-chrome &
google-chrome &
그런 다음 명령을 실행
wmctrl -l
반환된 창 이름은 다음과 같습니다.
0x03c06fd9 0 main New Tab - Google Chrome
0x03c0703d 0 main New Tab - Google Chrome
이제 다음 명령을 사용하여 그 중 하나를 임의의 좌표(100,100)로 이동하려고 하면
wmctrl -r "Google Chrome" -e 100,100,0,-1,-1
아직 짐작하지 못했다면 현재 입력 중인 이 Google 크롬 창을 다른 두 창보다 먼저 열었으므로 이동합니다.
명령줄에서 시작할 때 이러한 창 제목을 할당하거나 나중에 재설정할 수 있는 방법이 있습니까? 이름을 다음과 같이 변경해야합니다.
Google Chrome 1
Google Chrome 2
Google Chrome 3
내가 알고 있는 이 문제에 대한 두 가지 방법이 있지만 둘 중 어느 것도 마음에 들지 않습니다. 왜냐하면 OS가 백그라운드에서 프로그램을 시작할 경우 문제가 발생할 수 있기 때문입니다.
- 제목을 사용하는 대신
-i
명령을 통해 숫자 창 ID를 사용하십시오. :ACTIVE:
활성 창을 사용하려면 문자열을 사용하십시오.
답변1
xttitle
패키지 의 프로그램을 사용하십시오 xttitle
. x에 두 개의 "t"가 있음을 참고하세요.ㅜㅜ일. 사실, "t"가 3개 있습니다... 하지만 처음 두 개만 잘못 입력하는 데 문제가 있었습니다.
~/.bashrc
다음은 내장 기능 을 재정의하고 창 제목에 현재 디렉터리를 넣는 데 cd
사용하는 my 의 예입니다 .xttitle
# from the "xttitle(1)" man page - put info in window title
update_title()
{
[[ $TERM = xterm ]] || [[ $TERM = xterm-color ]] && xttitle "[$$] ${USER}@${HOSTNAME}:$PWD"
}
cd()
{
[[ -z "$*" ]] && builtin cd $HOME
[[ -n "$*" ]] && builtin cd "$*"
update_title
}