Awesome-wm odak alındığında müşteri artırmak için bir sinyal


13

Benim Emacs bir etikete çalışan var workerile server-startbaşlattı. Ben başka bir yerde (örneğin başka bir monitör) açılmış bir dosya yöneticisi var ve emacsclientbaşarıyla bir emacs içinde açılır bir metin dosyası açıldığında ama o geçmez ve yükselmez.

Aradığım şey, istemciye özgü bir sinyal rc.lua. Gibi bir şey:

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

Sadece Emacs'a özgü olmasını istiyorum. workerAynı anda etikete geçin . Alternatif olarak Emacs kuralı geri aramasından yapabilir miyim?

Herhangi bir fikir? :)


1
Hiç kimse buna rastlamadı mı?
platforma

Yanıtlar:


0

Aynı şeyi istedim ve bir emacs geri çağırma fikriniz nihayet işe yaradı. Ben harika üzerinde test etmedim, ama dwm kullanıyorum ve sanırım bu işe yarayacak kadar benzerler.

Bu emacs geri arama işlevidir:

(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
   )
  )

Geri aramayı çağırmanın birkaç yolu vardır. Basitlik ve esneklik için, geri çağrıyı ve ardından düzenli emacclient'i çağıran bir kabuk takma adı seçtim:

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

Umarım yine de faydalı olacaktır;)

İleti türü ve değerleri hakkında daha fazla bilgi için, bkz. Pencere Yöneticisi İpuçları .

Awesome'in bu iletiyi ele almasına gelince, bu olayın ele alındığı anlaşılıyor. Kaynak kodu burada .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.