위에서 언급한 대로 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:
그 밖에도 가능한 해결 방법이 많이 있습니다. 답변에 댓글을 달면 이에 따라 편집하겠습니다. ;)