터미널에 다음 두 명령을 입력하면:
xfce4-terminal --hide-menubar --hide-borders --hide-toolbars --title=dt
wmctrl -r dt -e 0,10,10,720,720
원하는 결과를 얻었습니다(제목이 있는 창의 위치 및 크기 dt
, 와는 달리 수동 gnome-terminal
으로 xfce4-terminal
할당된 제목은 재정의되지 않습니다).
당연히 이것이 효과가 있기를 바랍니다.
#! /bin/bash
xfce4-terminal --hide-menubar --hide-borders --hide-toolbars --title=dt && wmctrl -r dt -e 0,10,10,720,720
터미널은 자체적으로 올바른 설정과 제목을 표시하지만 wmctrl
아무런 효과가 없습니다.
답변1
연결 &&
연산자는 첫 번째 명령( )이 종료될 때까지 두 번째 명령이 실행되지 않도록 합니다 xfce4-terminal
(단락 논리 연산자이므로 종료 상태가 성공을 나타내는 경우에만).
&&
스크립트의 별도 줄에 명령을 변경하거나 ;
입력하면 예상한 동작을 얻을 수 있습니다.wmctrl
답변2
명령이 종료된 후 직접 wmctrl을 실행하십시오 xfce4-terminal
. 그러나 이미 열려 있는 Xfce 터미널 인스턴스가 있으면 xfce4-terminal
실제 터미널 화면을 설정하는 과정이 진행되는 동안 자체적으로 배경에 놓였다가 즉시 명령 프롬프트로 돌아갑니다. 따라서 wmctrl
실행 시 제목이 포함된 창이 rd
아직 존재하지 않을 수 있습니다.
(예제와 같이) 명령을 입력할 필요가 없으면 너무 빨리 시작됩니다 &&
. wmctrl
첫 번째 예에서는 입력하거나 기록에서 선택하는 데 지연이 발생하면 터미널 창에 올바른 제목이 표시됩니다.
첫 번째 예에서 두 개의 명령줄 입력을 잘라내어 붙여넣는 경우에도 이 문제가 발생할 수 있습니다.
sleep
를 호출하기 전에 명령을 입력 해야 합니다 wmctrl
. 기간을 실험해 볼 수 있습니다. 시작된 셸이 시작 파일을 처리해야 하기 전에 터미널 제목이 설정되므로 1초이면 충분합니다. (검색해야 하는 URL을 사용하여 Firefox/Chrom을 실행하는 경우 예상 제목을 기다리는 데 몇 초가 걸릴 수 있으며 네트워크 오류가 발생할 때 표시되지 않을 수 있습니다.)
균일한 동작을 얻으려면 xfce4-terminal
처음 실행하는 인스턴스라도 차단되지 않도록 백그라운드에서 실행하세요.
xfce4-terminal --hide-menubar --hide-borders --hide-toolbars --title=dt &
sleep 1
wmctrl -r dt -e 0,10,10,720,720
답변3
안톤의 대답무슨 일이 일어나고 있는지 설명했습니다. wmctrl
하지만 나중에 창 크기를 조정하거나 이동하는 것은 문제가 됩니다. 타이머에 의존해야 하므로 창이 짧은 시간 동안 잘못된 위치에 있다가 이동하게 됩니다(또는 기계가 정말 느린 경우; 창이 wmctrl
너무 일찍 실행되기 때문에 전혀 움직이지 않습니다 ). 또한 동일한 제목을 가진 다른 창이 있을 수 있습니다(임의의 문자열이나 타임스탬프를 사용하는 등 고유한 제목을 생성하지 않는 한).
다행히 xfce4-terminal
초기 위치와 크기를 설정하는 옵션이 있습니다. 그것은 표준을 따른다X11 기하학 구문. 를 호출하는 대신 이것을 사용하십시오 wmctrl
. 크기는 픽셀이 아닌 문자 단위로 표시됩니다.
xfce4-terminal --geometry 80x40+10+10 --hide-menubar --hide-borders --hide-toolbars --title=dt