해결책:

해결책:

위에서 언급한 대로 Openbox에서 "터미널을 바탕 화면 배경 무늬로" 설정하려고 합니다.여기

<layer>below</layer>Openbox는 창이 데스크탑 배경으로 실행되고, 상태 표시줄에 표시되지 않으며, "창 최소화"의 영향을 받지 않도록 설정할 수 있습니다 . 그래서 쓸모없는 이미지를 배경화면으로 표시하는 대신 실제로 터미널을 가지고 있습니다.

제가 백그라운드로 실행하고 있는 실제 터미널은 입니다 terminator. 방금 심볼릭 링크를 만들었고 terminator-wallpaper-1a, terminator-wallpaper-1b이는 터미네이터 바이너리에 대한 심볼릭 링크일 뿐입니다. 이름이 다르기 때문에 차이점을 알 수 있습니다.

듀얼 모니터 설정이 있고 각 모니터에 터미네이터 배경화면을 갖고 싶습니다.

openbox 창 속성은 다음과 같은 방법으로 설정됩니다 devilspie:

(if
(matches (application_name) "terminator-wallpaper")
(begin
(wintype "desktop")
)
)

그런 다음 각 배경화면이 해당 모니터/데스크톱으로 이동되도록 Openbox 구성에 다음을 포함합니다.

<application name="terminator-wallpaper-1a">
  <focus>yes</focus>
  <layer>below</layer>
  <desktop>1</desktop>
  <position>
    <y>0</y>
    <x>0</x>
    <monitor>1</monitor>
  </position>
  <skip_taskbar>yes</skip_taskbar>
  <maximized>true</maximized>
</application>

<application name="terminator-wallpaper-1b">
  <focus>yes</focus>
  <layer>below</layer>
  <desktop>1</desktop>
  <position>
    <y>0</y>
    <x>0</x>
    <monitor>2</monitor>
  </position>
  <skip_taskbar>yes</skip_taskbar>
  <maximized>true</maximized>
</application>

마지막으로 이것이 제가 모든 일을 시작한 방법입니다.

devilspie &
terminator-wallpaper-1a -b &
terminator-wallpaper-1b -b &

xdotool set_desktop 0

xdotool search --class 'Terminator-wallpaper-1a' windowunmap --sync windowmap windowsize %1 1920 1180
xdotool search --class 'Terminator-wallpaper-1b' windowunmap --sync windowmap windowsize %1 1920 1180

모든 것이 잘 작동하고 다른 모든 창을 최소화하면 실제로 터미네이터 배경 화면이 표시됩니다. 하지만 실제로는 그 중 하나만 사용할 수 있습니다. 즉, 세심하거나 활동적이어야 합니다. 다른 하나는 입력할 수 없습니다. 마우스로 클릭해도 커서가 비활성 상태로 유지되므로 창에 초점이 맞춰지지 않습니다.

이 문제를 어떻게 해결할 수 있나요?

해결책:

@intika 사용자와 철저한 문제 해결을 마친 후 문제를 확인했습니다. <mouse>Openbox 구성 파일에 다음 코드 조각을 추가하면 문제가 해결되었습니다.

<context name="Desktop">
  <mousebind button="Left" action="Press">
    <action name="Focus"/>
    <action name="Raise"/>
  </mousebind>
</context>

답변1

한 번에 하나의 창/응용 프로그램에만 포커스를 가질 수 있습니다.

Openbox 구성에서는 두 앱/배경화면에 모두 초점이 있지만 기술적으로는 이것이 불가능하므로 Openbox는 하나의 앱에만 초점을 주어 구성을 용이하게 합니다(그렇지 않으면 이 작업을 수행할 수 없습니다).

<application name="terminator-wallpaper-1a">
  <focus>yes</focus>
...
<application name="terminator-wallpaper-1b">
  <focus>yes</focus>

이 문제를 해결할 수 있는 가능성은 다양하며 초점을 첫 번째 또는 두 번째 화면 데스크탑/응용 프로그램/배경화면으로 전환하는 방법을 구현하는 방향으로 발전합니다.

가능한 해결 방법 1:

초점 값을 no로 설정하거나 초점 선을 모두 제거한 다음 마우스 클릭을 통해 초점 전환을 테스트해 볼 수 있습니다.

가능한 해결 방법 2:

마우스 위치를 사용하여 초점을 설정하세요. 여기 있습니다.오픈박스 위키해당 문제에 대해서는 먼저 두 배경화면 앱의 포커스 항목을 제거한 다음 <focus></focus>링크된 문서에 설명된 대로 기본 섹션 아래의 openbox 구성에 다음을 추가하세요.

<followMouse>yes</followMouse>
<!-- move focus to a window when you move the mouse into it -->

이는 다른 창에도 영향을 미칩니다.

응용 프로그램 섹션에서 사용해 볼 수도 있지만 followMouse이것이 openbox에서 처리되지 않는 것 같습니다.

가능한 해결 방법 2:

초점을 전환하려면 xdotool 또는 키보드 단축키와 함께 다른 수단을 사용하십시오. 실제로 아래와 같은 명령에 키보드 단축키를 할당할 수 있으며 이 솔루션을 사용하려면 이중 삭제/편집을 통해 구성을 수정해야 합니다. <focus>yes</focus>

xdotool search --class 'Terminator-wallpaper-1b' windowactivate

xdotool과 마찬가지로 wmctrl도 이 목적으로 사용할 수 있습니다.

#Lists currently open windows 
wmctrl -l 

#Set focus to windows with title containing STRING
wmctrl -a STRING

노트:

<focus>yes</focus>
# if the window should try be given focus when it appears. if this is set
# to yes it doesn't guarantee the window will be given focus. some
# restrictions may apply, but Openbox will try to

노트 2:

그 밖에도 가능한 해결 방법이 많이 있습니다. 답변에 댓글을 달면 이에 따라 편집하겠습니다. ;)

관련 정보