별도의 프로그램 - 지정된 모니터에 상주

별도의 프로그램 - 지정된 모니터에 상주

외부 모니터와 메인 모니터의 해상도가 항상 같다면, 각각의 지정된 화면에서 두 프로그램(예: VLC 및 브라우저)을 모두 열 수 있습니까?

외부 모니터와 내부 모니터를 다시 시작해야 하며 때로는 오랜 시간 동안 종료되는 경우도 있다는 점을 언급할 가치가 있습니다.그들이 돌아올 때, 그들은 자신의 모니터에 머물러야 하며, 현재는 일반적으로 나머지 활성 모니터로 이동됩니다.

보너스: Ubuntu 16.04의 Unity와 같은 데스크탑 환경을 사용하여 이를 달성할 수 있습니까? 소프트웨어가 지정된 위치에 유지되는 한 사용자 정의 세션을 생성할 수 있습니다.

답변1

Unity를 사용하는 표준 바닐라 Ubuntu의 경우: CCSM: CompizConfig 설정 관리자가 구출됩니다.

sudo apt install compizconfig-settings-manager
  • CCSM 시작
  • 가다Window Management CCSM 메인 창 관리
  • 그런 다음 Place WindowsFixed Window Placement 고정된 창 배치
  • 두 모니터 모두 하나의 큰 화면 영역이므로 각 창에 필요한 XY 좌표를 계산하십시오.
    • 예를 들어, 640x480의 표준 VGA 모니터 2개가 있는 경우 두 번째 모니터는 X=641에서 시작하고, 두 번째 모니터에 Unity 런처가 없으면 Y=1이고, 그렇지 않으면 X=641+42(화면 너비)입니다. 런처)
  • 목록 항목 아래 Windows with fixed positions에서New
  • 창 이름을 가져오거나 위치를 지정하려는 각 응용 프로그램의 X 및 Y 좌표와 함께 입력하세요.
  • 짜잔: 완료

OP의 특정 사용 사례에서는 screen추가된 디스플레이를 감지하기 위해 전자 API를 사용하여 이 작업을 자동으로 수행했습니다.

중요한: app.on('ready')화면 API가 작동하기 위해 필요한 상태에서 다음 명령문을 발행하십시오.

const electron = require('electron');
electron.screen.on('display-added', (e,d) => { _reposition(); }

async function _reposition() { 
      const util = require('util'); 
      const exec = util.promisify(require('child_process').exec);
       const { stdout, stderr } = await setTimeout(() => { exec('compiz --replace') }, 5000); 
       console.log(stdout); console.log(stderr); 
}
}

관련 정보