나는 그것이 불가능하다는 것을 확신합니다. 그놈과 같은 창 환경이 소프트웨어가이를 처리 할 것으로 기대하고 소프트웨어 제조업체가 창 환경이이를 처리 할 것으로 기대하기 때문에 이음새가없는 이유가 있습니다.
Devilspie는 좋은 생각이지만 패턴 일치를 수행합니다 (예 : name == 'google-chrome'인 경우). 두 개의 브라우저를 열면 어떻게됩니까? 둘 다 같은 작업 공간으로 이동합니까? 6x3 = 18 작업 공간이 있으며 각 작업 공간에는 특정 크롬 인스턴스가 있습니다. 이 프로그램의 이름을 바꿀 수 있으면 (예 : 'google-chrome1', 'google-chrome2'...) 도움이되지만 그렇게하는 방법을 찾을 수 없습니다. wmctrl을 사용해야합니다.
wmctrl은 창 제목을 사용하는 것 외에도 약간 더 나은 b / c입니다. 창 ID를 사용하거나 현재 강조 표시된 창을 사용할 수도 있습니다. 창 ID는 즉시 생성되지 않는 B / C를 얻는 데 어려움이 있습니다. 아래 참조
gedit 1.txt
#get window ID by looking at wmctrl -l store in windowID
wmctrl -i -r $windowID -e 0,3660,0,-1,-1
그러나 AFTER gedit가 종료 될 때까지 명령 행으로 제어가 리턴되지 않습니다. 우리가 해결하기 위해해야 할 일은 이것을 넣고 &
기호를
gedit 1.txt &
#get window ID by looking at wmctrl -l store in windowID
wmctrl -i -r $windowID -e 0,3660,0,-1,-1
그러나 이제 창 관리자가 창을 시작하고 창 ID를 찾을 수있는 방법이 없기 전에 99.999 %의 시간 동안 제어가 명령 행으로 리턴됩니다. 새로운 윈도우가 생성되었는지, 그리고 그것이 우리가 찾고있는 윈도우인지 추측하기 위해 테스트하기 위해 매우 복잡한 루핑 기술을 설정해야합니다.
플래그를 통해 활성 창을 확인 :ACTIVE:
하면 동일한 문제가 발생하지만 프로그램 실행이 완료 될 때까지 기다리지 않습니다.
wmctrl
나를 매우 이상한 프로그램으로 생각합니다. 마우스가 없거나 작업 공간을 통해 프로그램을 물리적으로 끌 수없는 사람들을 위해 설계된 것처럼 보입니다.