Awesome WM 포커스를 훔치는 애플리케이션을 비활성화하는 방법은 무엇입니까?

Awesome WM 포커스를 훔치는 애플리케이션을 비활성화하는 방법은 무엇입니까?

기본적으로 모든 새 창에 초점이 맞춰지는 것 같습니다. 이는 좋은 일입니다. 그러나 특정 앱이 때때로 주목을 받습니다. 예를 들어 JetBrains IDEA는 시작 중에 이 작업을 여러 번 수행합니다. 이 초점 도용을 피할 수 있습니까?

답변1

Awesome WM에서 프로그램이 포커스를 훔치는 것을 방지하려면 rc.lua에 다음 줄을 추가하세요.

awful.ewmh.add_activate_filter(function() return false end, "ewmh")
awful.ewmh.add_activate_filter(function() return false end, "rules")

첫 번째 줄은 이미 열려 있는 프로그램에서 포커스를 "훔치기" 위해 수행한 모든 요청을 거부하는 필터를 추가합니다(이러한 요청에는 "ewmh" 컨텍스트가 있음).

두 번째 줄은 새로 열린 응용 프로그램이 포커스를 훔치는 것을 방지하는 필터를 추가합니다(컨텍스트 "규칙").

보다선적 서류 비치add_activate_filter더 많은 정보를 알고 싶습니다.

맨 위 줄은 다음 코드와 동일하지만 더 간결합니다.

function filter_activation(c, context, hints)
    if context == 'ewmh' or context == 'rules' then
        return false
    else
        return true
    end
 end
 awful.ewmh.add_activate_filter(filter_activation)
 

답변2

~에서API 문서:
기본적으로 신규 고객이 긴급한 이유는 무엇입니까?

rc.lua에서 bad.ewmh.activate(c)를 다시 정의하여 이 설정을 변경할 수 있습니다. 기본적으로 새 클라이언트가 긴급하게 처리되는 것을 원하지 않으면 rc.lua에 다음을 입력하세요.

client.disconnect_signal("request::activate", awful.ewmh.activate)
function awful.ewmh.activate(c)
    if c:isvisible() then
        client.focus = c
        c:raise()
    end
end
client.connect_signal("request::activate", awful.ewmh.activate)

관련 정보