Awesome-wm สัญญาณที่จะเพิ่มขึ้นของลูกค้าเมื่อได้รับโฟกัส


13

ฉันทำให้ Emacs ของฉันทำงานบนแท็กworkerด้วยการserver-startเปิดตัว ฉันได้เปิดตัวจัดการไฟล์ไว้ที่อื่น (เช่นจอภาพอื่น) และเมื่อฉันเปิดไฟล์ข้อความโดยที่emacsclientมันเปิดได้สำเร็จใน emacs แต่ไม่สลับไปที่มันและไม่เพิ่มขึ้น

rc.luaสิ่งที่ผมกำลังมองหาเป็นสัญญาณที่เฉพาะเจาะจงของลูกค้าใน สิ่งที่ต้องการ:

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

ฉันต้องการให้เฉพาะ Emacs เท่านั้น และเปลี่ยนเป็นworkerแท็กพร้อมกัน หรือฉันสามารถทำได้จากการโทรกลับกฎของ Emacs?

ความคิดใด ๆ :)


1
ไม่มีใครเคยเจอเรื่องนี้เลยเหรอ?
platforma

คำตอบ:


0

ฉันต้องการสิ่งเดียวกันและความคิดของคุณในการติดต่อกลับ emacs คือสิ่งที่ได้ผลในที่สุด ฉันยังไม่ได้ทดสอบมันยอดเยี่ยม แต่ฉันใช้ 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'

หวังว่ามันจะยังคงมีประโยชน์;)

สำหรับการอ้างอิงเพิ่มเติมเกี่ยวกับข้อความชนิดและค่าดูคำแนะนำจัดการหน้าต่าง

สำหรับการจัดการกับข้อความนี้ที่ยอดเยี่ยมดูเหมือนว่ากิจกรรมนี้ได้รับการจัดการ รหัสที่มาที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.