আমি ইমাক্সকে সক্রিয় করতে বাধ্য করতে চাই, কিছু পরিস্থিতিতে কিনে ফেলা উচিত এবং নির্দিষ্ট পরিস্থিতিতে 'চুরি' করতে চাই। উদাহরণস্বরূপ, যখন আমি একটি org-Pomodoro শেষ করি বা কোনও গুরুত্বপূর্ণ অ্যাপয়েন্টমেন্ট অনুস্মারক চলাকালীন।
এখন, আমি বাহ্যিক নির্ভরতা হ্রাস করার জন্য এটি করার একটি 'দেশীয়' উপায় অনুসন্ধান করছি। (কেবল লিনাক্স আমার পক্ষে ঠিক আছে, ক্রস-প্ল্যাটফর্ম আরও ভাল হবে)।
ইমাকের অভ্যন্তর থেকে এটি কি প্রযুক্তিগতভাবে সম্ভব?
সমাধান [সম্পাদনা]
যদি জিইউআই ব্যবহার করে তবে এটি ভালভাবে কাজ করে:
(x-focus-frame nil)
[Reasonsতিহাসিক কারণে ...] আমি চেষ্টা করেছি:
ফ্রেমের দৃশ্যমানতা (কাজ করে না)
(make-frame-visible)
এবং যদিও:
(make-frame-invisible)
(make-frame-visible)
তবে এগুলি কেবল ইমাক্স ইতিমধ্যে সক্রিয় করা থাকলে কাজ করবে বলে মনে হচ্ছে।
ফ্রেম উত্থাপন (কাজ করে না)
ফ্রেম হ্রাস করার ফলে বাস্তবে ইম্যাকগুলি লুকানো রয়েছে।
(lower-frame)
কিন্তু একটি টাইমার থেকে ফ্রেম উত্থাপন না। অর্থাৎ কিছুই হয় না।
(raise-frame)
দেখে মনে হচ্ছে এটি উত্থাপনের আগে একটি অ্যাক্টিভেট-ইম্যাকস রয়েছে।
[বাহ্যিক সমাধানের জন্য দ্রষ্টব্য]
বর্তমানে, (ওয়ার্কআরাউন্ড / সলিউশন?) হিসাবে আমি কিছুটা এলিস্প ব্যবহার করি:
(call-process "activateEmacs")
এবং সম্পর্কিত বাশ স্ক্রিপ্ট: (আপনাকে প্রথমে আপনার সিস্টেমে এক্সডটুল ইনস্টল করতে হতে পারে)
#!/bin/sh
sleep 0.5
xdotool search --onlyvisible --class emacs windowactivate
(defvar my-timer (run-with-idle-timer 5 t (lambda () (raise-frame))))
। সঙ্গে ফ্রেম স্থগিত করুন M-x (suspend-frame)
। 5 সেকেন্ডের মধ্যে, সেই ফ্রেমটি আবার উপস্থিত হবে।
(suspend-frame)
এবং অন্য উইন্ডোতে ক্লিক না করে সেখানে অপেক্ষা করেন। তবে যদি আপনি ফ্রেমটি স্থগিত করে এবং অন্য কোনও অ্যাপ্লিকেশনটিতে কাজ করেন, তবে ইমাসগুলি আবার উপস্থিত হবে না। কমপক্ষে আমার সিস্টেমে নেই (ফেডোরা 21 মেট ডেস্কটপ সহ)। একটি সাধারণ উদাহরণ হ'ল এটি : (run-at-time "5 sec" nil '(lambda () (interactive) (message "trying to raise frame") (raise-frame)))
এবং অন্য অ্যাপ্লিকেশনটিতে Alt-ট্যাব চালান। বার্তাটি বাফারে উপস্থিত হবে তবে ইমাসগুলি উত্থাপিত হবে না ... চিন্তাভাবনা?
raise-frame
।