
worker
나는 발사 된 태그에서 내 Emacs를 실행하고 있습니다 server-start
. 다른 곳(예: 다른 모니터)에 파일 관리자를 열었고 텍스트 파일을 열면 emacsclient
emacs에서 성공적으로 열리지만 전환되지 않고 올라가지 않습니다.
내가 찾고 있는 것은 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의 처리에 관해서는 이 이벤트가 처리된 것으로 보입니다. 소스 코드는여기.