फोकस प्राप्त होने पर ग्राहक को उठने का संकेत


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

कॉलबैक को लागू करने के कई तरीके हैं। सादगी और लचीलेपन के लिए, मैंने एक शेल उर्फ ​​के लिए चुना है जो कॉलबैक को आमंत्रित करता है और फिर नियमित रूप से सुरक्षित है:

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

आशा है कि यह अभी भी उपयोगी होगा;)

संदेश-प्रकार और मूल्यों पर आगे के संदर्भ के लिए, विंडो प्रबंधक संकेत देखें

इस संदेश को संभालने के लिए बहुत बढ़िया है, ऐसा लगता है कि इस घटना को नियंत्रित किया गया है। स्रोत कोड है यहाँ

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.