সক্রিয় উইন্ডোটির প্রান্তের রঙ পরিবর্তন করার কোনও উপায় আছে?


15

ফোকাসযুক্ত উইন্ডো এবং বিশ্রামগুলির মধ্যে আরও ভাল পার্থক্য করার জন্য আমি এই উইন্ডোটির প্রান্তের রঙ পরিবর্তন করতে পছন্দ করব না। সজ্জিত কীওয়ার্ড সহ কাস্টমাইজ আবিষ্কার করলাম আমি সক্রিয় ও সক্রিয় নয় ভিন্নরূপে রঙ নির্ধারণের ক্ষমতা ছাড়াই এর বিজি রঙ কীভাবে পরিবর্তন করতে পারি তা কেবলমাত্র খুঁজে পেয়েছি। এটা কি আদৌ সম্ভব? ধন্যবাদ.


আমি সীমানা সম্পর্কে নিশ্চিত নই তবে আপনি নিষ্ক্রিয় উইন্ডোজের মোড-লাইনটি পরিবর্তন করতে পারেন। চেষ্টা M-x customize-face mode-line-inactive
টাইলার

3
এটি ফ্রেম-স্থানীয় বলে মনে হচ্ছে, সুতরাং দেখে মনে হচ্ছে উত্তরটি নেই। আমি চেষ্টা করেছি (face-remap-add-relative 'fringe '((:background "yellow")))যা অন্যান্য মুখগুলির জন্য বাফার-স্থানীয় ব্যবহারের জন্য যথেষ্ট তবে এটি ফ্রেমের সমস্ত উইন্ডোকে যতটা প্রভাবিত হিসাবে প্রভাবিত করে fringe। পরিবর্তনশীল দেখুন - @Tyler পরামর্শে ছাড়াও, এছাড়াও আপনি কার্সার যাতে এটি সক্রিয় উইন্ডোতে প্রদর্শিত হবে শুধুমাত্র কাস্টমাইজ করতে পারেনcursor-in-non-selected-windows
lawlist

আমি মনে করি এটি আপনার প্রয়োজন: http://stackoverflow.com/questions/9446673/asking-emacs-to-hightlight-more-clearly- which
window-pane-

আমি মডেলিন সম্পর্কে জানি, thx। আমি আমার কাছে এটি আরও স্পষ্ট করে তুলতে চেয়েছিলাম।
স্যান্ড্রিক

সক্রিয় উইন্ডোটিকে আরও চাক্ষুষ মনোযোগ আকর্ষণ করতে সহায়তা করার জন্য এখানে কয়েকটি অতিরিক্ত ধারণা দেওয়া হয়েছে: (1) নিষ্ক্রিয় উইন্ডোজের মোড-লাইনের পটভূমিটি বাফার রঙের সাথে মেলে যাতে নিষ্ক্রিয় মোড-লাইনটি কম লক্ষণীয় হয়ে যায়: স্ট্যাকওভারফ্লো.com/ a / 20936397/2112489 এবং (2) mode-line-formatসক্রিয় এবং নিষ্ক্রিয় উইন্ডোজের অভ্যন্তরে নির্দিষ্ট পাঠ্য উপাদানগুলির রঙ পরিবর্তন করে : emacs.stackexchange.com/a/22682/2287
আইনজীবি

উত্তর:


6

যেহেতু আপনি "ফোকাসযুক্ত উইন্ডোর মধ্যে আরও ভাল পার্থক্য করতে চান", তাই আপনি সক্রিয় উইন্ডোটির স্রোতের রঙ পরিবর্তন করার পরিবর্তে এটি করার অন্যান্য উপায়গুলিও ব্যবহার করতে পারেন।

সক্রিয় এবং নিষ্ক্রিয় উইন্ডোজের মধ্যে আরও পার্থক্য করার জন্য আমি তিনটি উপায় একত্রিত করি।

  1. সক্রিয় এবং নিষ্ক্রিয় উইন্ডোগুলির জন্য বিভিন্ন রঙের মোড লাইনের ব্যবহার করুন।
  2. সক্রিয় উইন্ডোতে পয়েন্টটি যেখানে রয়েছে বর্তমান রেখাটি হাইলাইট করুন।
  3. সক্রিয় এবং নিষ্ক্রিয় উইন্ডোগুলির জন্য বিভিন্ন ব্যাকগ্রাউন্ড রঙ ব্যবহার করুন।

নোট করুন যে উপরে বর্ণিত সমস্ত নির্বাচিত রঙগুলি আপনার ইমাস থিমের সাথে ভালভাবে কাজ করা উচিত।

এখানে তিনটি উপায় রয়েছে:

  1. সক্রিয় এবং নিষ্ক্রিয় উইন্ডোগুলির জন্য বিভিন্ন রঙের মোড লাইনের ব্যবহার করুন:

    (custom-set-faces
     '(mode-line ((t (:background "dim gray" :foreground "white"))))
     '(mode-line-inactive ((t (:background nil)))))
    
  2. সক্রিয় উইন্ডোতে পয়েন্টটি রয়েছে যেখানে বর্তমান লাইনটি হাইলাইট করুন:

    (global-hl-line-mode 1)
    ;; underline the current line
    (set-face-attribute hl-line-face nil :underline t)
    
  3. সক্রিয় এবং নিষ্ক্রিয় উইন্ডোগুলির জন্য বিভিন্ন পটভূমির রঙগুলি ব্যবহার করুন:

    (defun highlight-selected-window ()
      "Highlight selected window with a different background color."
      (walk-windows (lambda (w)
                      (unless (eq w (selected-window))
                        (with-current-buffer (window-buffer w)
                          (buffer-face-set '(:background "#111"))))))
      (buffer-face-set 'default))
    (add-hook 'buffer-list-update-hook 'highlight-selected-window)
    

আপনার ইমাস থিমের সাথে কাজ করতে আপনি কোড স্নিপেটে রঙ পরিবর্তন করতে পারেন।

এটিই চূড়ান্ত স্ক্রিনশট:

এক সাথে তিনটি উপায়ে স্ক্রিনশট

এবং সক্রিয় উইন্ডোটি ফ্ল্যাশ করতে আপনি নিজেই ব্যবহার করতে পারেন এমন আরও একটি ফাংশন রয়েছে:

(global-set-key (kbd "<f12>") 'flash-active-buffer)
(make-face 'flash-active-buffer-face)
(set-face-attribute 'flash-active-buffer-face nil
                    :background "blue" :foreground nil)
(defun flash-active-buffer ()
  (interactive)
  (run-at-time "100 millisec" nil
               (lambda (remap-cookie)
                 (face-remap-remove-relative remap-cookie))
               (face-remap-add-relative 'default 'flash-active-buffer-face)))

আপনি কোড স্নিপেটে কী-বাইন্ডিংটি পরিবর্তন করতে পারেন, আপনি যখন সক্রিয় উইন্ডোটি প্রদর্শন করতে চান, কী টিপুন, সক্রিয় উইন্ডোটি নীল হবে, আপনি পয়েন্ট করার পরে, রঙটি চলে যাবে।


0

আমারও একই সমস্যা ছিল। আমি স্মার্ট লাইন মোডটি ব্যবহার করে এটিকে কাস্টমাইজ করেছি যাতে সক্রিয় উইন্ডোতে এমন রঙ পাওয়া যায় যা খুব স্বতন্ত্র। এখানে একটি নমুনা ফ্রেম। সক্রিয় উইন্ডোটি হ'ল সোনার অক্ষরের সাথে কালো মোড লাইনের একটি।

এখানে চিত্র বর্ণনা লিখুন

এই কোডটি ব্যবহার করার আগে আপনার স্মার্ট মোড-লাইনের প্রয়োজন তা নিশ্চিত করুন। আমি আপনাকে আপনার প্রয়োজনীয় রঙগুলিতে কাস্টমাইজ করার পরামর্শ দিচ্ছি:

(deftheme smart-mode-line-dmg "dmg theme for smart-mode-line.")
(custom-theme-set-faces
 'smart-mode-line-dmg
                                        ; '(mode-line-inactive ((t :inverse-video nil)))
                                        ; '(mode-line     ((t :inverse-video nil)))
 '(mode-line     ((t :foreground "grey70" :background "black" :inverse-video nil)))
 '(mode-line-inactive  ((t :foreground "black" :background "white" :inverse-video nil)))
 '(sml/global    ((t :inherit font-lock-preprocessor-face)))
 '(sml/filename  ((t :inherit sml/global :foreground "gold" :weight bold)))
 '(sml/prefix    ((t :inherit (font-lock-variable-name-face sml/global))))
 '(sml/read-only ((t :inherit (font-lock-type-face sml/not-modified))))
 '(sml/modes     ((t :foreground nil :inherit sml/filename :weight normal))))

(sml/setup)

0

আপনি বর্তমানে নির্বাচিত উইন্ডোটি হাইলাইট করতে নীচের মতো কিছু করার চেষ্টা করতে পারেন। সাবধান হন যে একাধিক উইন্ডোজের বাফারগুলি একই রকম হলে এটি কাজ করে না। এটি নির্বাচিত একটি ব্যতীত অন্য সমস্ত উইন্ডোকে ম্লান করে দেয়।

(defvar dim-window-face
  '((t  (:background "grey40")))
  "Face for a dimmed window in the current frame.")

(defvar current-window-face
  '((t  (:background "black")))
  "Face for a dimmed window in the current frame.")

(defvar window->overlay (make-hash-table)
  "A hash table of window to dimmed overlay.")

(defun dim-windows ()
  "Dim all windows except the `selected-window' in current frame."
  (interactive)
  (walk-windows (lambda (w)
                  ;; Delete existing overlay on window W
                  (when-let ((ol (gethash w window->overlay)))
                    (delete-overlay ol))
                  (let ((ol (make-overlay (window-start w)
                                          (window-end w)
                                          (window-buffer w))))
                    (overlay-put ol 'face (if (eql (selected-window) w)
                                              current-window-face
                                            dim-window-face))
                    (puthash w ol window->overlay)))))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.