원격 디스플레이용 wmctrl

원격 디스플레이용 wmctrl

다른 디스플레이에 wmctrl을 사용하려면 명령줄은 무엇입니까?

다음과 같은 것: su 사용자 이름 -c "DISPLAY:50 wmtrl -r :ACTIVE: -b 전환, 전체 화면"이 작동하지 않았습니다.

감사합니다. 우분투 12.04를 실행 중입니다.

답변1

위의 명령이 작동하지 않는 데에는 몇 가지 이유가 있습니다.

  1. wmtrl이 아니라 이어야 합니다 wmctrl.

  2. 그것은해야한다

           su -c command username
    

    대신에su username-c command

  3. 그럴 수도 있지~ 아니다다른 사용자의 세션에서 활성 창이 되어야 합니다.

  4. 그러나 가장 중요한 점은 su다른 창이 아닌 GUI 내에서 현재 텍스트 창의 사용자를 전환하도록 설계되었다는 것입니다. 예를 들어,수 매뉴얼상태:

... su가 터미널 창(예: GUI의 텍스트 전용 창)에서 사용되는 경우 해당 터미널 창과 여기에서 시작되는 프로그램만 새 사용자 계정(예: 루트)으로 실행됩니다. .. .

당신이 염두에 두고 있는 것과 같은 일을 수행하는 적절한 방법은 다른 사용자의 X 서버와 대화하는 것입니다. 그러나 모든 X 세션에는 이에 대한 기능이 잘 갖추어져 있습니다. 예를 들어, 사용자 A로 원격 시스템에 로그인한 경우 sshB는 다음을 통해 해당 작업을 수행하도록 허용해야 합니다.

     xhost +

그런 다음 다음을 통해 그의 X 세션에 액세스할 수 있습니다.

    export DISPLAY=:0.0 

이제 당신의 명령은,

     wmctrl -r :ACTIVE: -b toggle,fullscreen

작동합니다.

원하는 것이 다른 사용자와 터미널을 공유하여 사용자가 입력하는 내용을 볼 수 있도록 하는 것이라면 을 설치하고 로 screen세션을 시작한 다음 screen이스케이프 시퀀스 Ctrl+A를 누른 다음 두 명령과 를 입력해야 multiuser on합니다 acladd B. 이제 사용자 B는 를 통해 화면 세션에 참여할 수 있습니다 screen -x A/.

마지막으로 귀하의 질문은 와 관련된 것 같습니다 multi seat arrangement. 이는 극히 드물며 솔루션을 테스트할 대상이 없습니다. 당신은 정말로 이러한 상황 중 하나에 처해 있습니까? 그렇다면 OP 제목에 이를 지정하는 것이 가치가 있을 것입니다. 그렇게 하려면 자주 사용되지 않는 구성에 대한 지식이 필요하기 때문입니다.

그러나 어쨌든,아마도(= 이것을 테스트할 다중 좌석 배열이 없습니다.) 연결과 동일한 방법으로 이를 달성할 수 있습니다 ssh. 단, 이 경우 사용자 B는 다음 명령을 실행해야 합니다.

     xhost +SI:localuser:A

그의 디스플레이에 대한 액세스 권한을 부여합니다.

관련 정보