Ich wollte das Gleiche, und Ihre Idee eines Emacs-Rückrufs hat letztendlich funktioniert. Ich habe es noch nicht auf awesome getestet, aber ich verwende dwm, und ich nehme an, sie sind ähnlich genug, damit dies funktioniert.
Dies ist die Rückruffunktion in 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 ) )
Es gibt verschiedene Möglichkeiten, den Rückruf aufzurufen. Zur Vereinfachung und Flexibilität habe ich mich für einen Shell-Alias entschieden, der den Callback und dann den regulären emacsclient aufruft:
$ alias edi alias edi='emacsclient -e "(raiseme)"; emacsclient -n'
Hoffe es wird noch nützlich sein;)
Weitere Informationen zum Nachrichtentyp und zu den Werten finden Sie in den Fenstermanagerhinweisen .
Für die Behandlung dieser Nachricht durch awesome scheint es, dass dieses Ereignis behandelt wird. Quellcode ist hier .