Awesome-wm 포커스가 수신되면 클라이언트를 상승시키는 신호입니다.

Awesome-wm 포커스가 수신되면 클라이언트를 상승시키는 신호입니다.

worker나는 발사 된 태그에서 내 Emacs를 실행하고 있습니다 server-start. 다른 곳(예: 다른 모니터)에 파일 관리자를 열었고 텍스트 파일을 열면 emacsclientemacs에서 성공적으로 열리지만 전환되지 않고 올라가지 않습니다.

내가 찾고 있는 것은 rc.lua. 다음과 같은 것 :

client.add_signal("focus", function(c) c:raise() end)

나는 그것이 Emacs에만 국한되기를 원합니다. worker동시에 태그 로 전환합니다 . 아니면 Emacs 규칙 콜백에서 수행할 수 있나요?

어떤 아이디어가 있나요? :)

답변1

나도 똑같은 것을 원했고, emacs 콜백에 대한 당신의 아이디어가 마침내 효과가 있었습니다. 나는 그것을 awesome에서 테스트하지는 않았지만 dwm을 사용하고 있으며 이것이 작동하기에 충분히 유사하다고 생각합니다.

이것은 emacs의 콜백 함수입니다:

(defun raiseme ()
  (x-send-client-message
   nil                ; DISPLAY - nil is selected frame
   0                  ; DEST - 0 is root window of display
   nil                ; FROM - nil is selected frame
   "_NET_ACTIVE_WINDOW"    ; MESSAGE-TYPE - name of an Atom as a string
   32                 ; FORMAT  - size of the values in bits
   '(1 "_NET_WM_USER_TIME" 0) ; VALUES
   )
  )

콜백을 호출하는 방법에는 여러 가지가 있습니다. 단순성과 유연성을 위해 콜백과 일반 emacsclient를 호출하는 셸 별칭을 선택했습니다.

$ alias edi
alias edi='emacsclient -e "(raiseme)"; emacsclient -n'

여전히 유용할 것으로 예상됩니다. ;)

메시지 유형 및 값에 대한 자세한 내용은 다음을 참조하세요.창 관리자 힌트.

이 메시지에 대한 awesome의 처리에 관해서는 이 이벤트가 처리된 것으로 보입니다. 소스 코드는여기.

관련 정보