창이 다른 창 뒤에 생성되도록 지시할 수 있나요?

창이 다른 창 뒤에 생성되도록 지시할 수 있나요?

Linux에서 빌드한 소프트웨어 프로젝트를 다시 컴파일하고 다시 시작하는 스크립트가 있습니다. 그러나 나는 일반적으로 프로그램이 시작된 직후에 프로그램 창을 보고 싶지 않습니다. 왜냐하면 vim 창에 키보드 포커스를 유지하고 싶기 때문입니다.

일반적으로 내 프로그램은 시작되고 자동으로 포커스를 얻은 다음 작업 공간의 다른 창 위에 나타납니다.

리눅스에서 프로그램을 시작했지만 포커스를 훔치지 않고 다른 모든 창 위에 나타나지 않게 하는 것이 가능합니까?

참고: 중요한 경우 Fedora 13, GNOME, compiz를 실행하고 Emerald 테마를 사용하고 있습니다.

답변1

일부 창 관리자에는 유사한 작업을 수행하기 위한 많은 사용자 정의 기능이 있지만 최근의 많은 창 관리자(메타시티 및 compiz 포함)는 이러한 사용자 정의 기능을 잃었습니다. 나는 비슷한 일을 하기 위해 fvwm을 사용하곤 했습니다. 더 간단한 WM 독립적 접근 방식은 포커스를 오른쪽 창에 다시 할당하는 것입니다. xdotool을 살펴보세요http://www.semicomplete.com/projects/xdotool/xdotool. 배포 저장소에서 사용할 수 있어야 합니다. 무엇보다도 특정 창에 포커스를 할당할 수 있습니다. 나는 당신이 터미널에서 스크립트를 실행하고 있고 초점을 잃고 싶지 않다고 가정합니다. 그렇다면 $WINDOWID를 사용하여 터미널의 창 ID를 검색하고 스크립트 끝에 xdotool을 사용하여 터미널에 다시 초점을 맞출 수 있습니다.

답변2

또 다른 방법은 프로그램을 다른 X 서버에 연결하는 것입니다. 당신은 할 수

  1. 서로 다른 가상 콘솔에서 별도의 X 인스턴스를 실행하세요. 예를 들어 전환하려면 Ctrl-alt-F8을 사용하세요.
  2. Xnest를 실행하여 X 서버가 기본 Xserver에 대한 클라이언트 역할을 하도록 합니다.

어느 쪽이든, 테스트 스크립트는 DISPLAY를 설정하여 프로그램을 다른 X 서버(이름은 1일 수 있음)로 리디렉션해야 합니다.

관련 정보