Chỉ hiển thị thông tin pin khi rút phích cắm?


8

display-battery-mode hiển thị thông tin về pin, nhưng tôi chỉ muốn sử dụng nó khi máy tính của tôi được rút phích cắm và hết pin.

  1. Có cách nào để đặt chế độ hiển thị theo chế độ cấp nguồn không?

  2. Tôi cũng có thể nhận được nhiệt độ được báo cáo trong modeline?

Câu trả lời:


6

Tôi không chắc liệu bạn có thể làm điều đó với tích hợp không display-battery-mode. Về mặt này, nó không thể tùy biến nhiều và bạn có thể phải dùng đến những lời khuyên nặng nề để thay đổi chế độ tích hợp theo ý muốn.

Tôi đã viết Fancy-pin.el một thời gian trước để cung cấp một chỉ báo tùy chỉnh hơn cho tình trạng pin. Đáng chú ý, tôi muốn chỉ ra trạng thái của pin với màu sắc, nhưng gói đủ linh hoạt để cho phép sử dụng cho trường hợp sử dụng của bạn, bằng cách thay đổi fancy-battery-mode-linetương ứng:

(setq fancy-battery-mode-line
      '(:eval (unless (equal (cdr (assq ?b fancy-battery-last-status)) "+")
                (fancy-battery-default-mode-line))))

Đừng hỏi, trạng thái xuất phát từ pin.el, có API khủng khiếp. Chỉ cần tin tôi rằng đó ?blà trạng thái pin và "+"ít nhất là sạc, cho hầu hết các phụ trợ.

Cài đặt này sẽ hiển thị trạng thái pin, nhưng chỉ khi pin hết. Để sử dụng định dạng khác, hãy viết chức năng của riêng bạn để thay thế fancy-battery-default-mode-line. Hãy lấy của tôi làm bảo hiểm.

Về nhiệt độ, bạn có thể gặp may mắn với một phụ trợ khác. Hãy xem các phần phụ trợ hiện có battery.el, tìm kiếm một phần có nhiệt độ pin và cố gắng đáp ứng các yêu cầu của nó. Tuy nhiên, battery.elthường thành công trong việc chọn phần phụ trợ tốt nhất cho hệ thống của bạn, do đó, rất có thể phần cứng của bạn không báo cáo nhiệt độ pin hoặc không được hệ điều hành của bạn hỗ trợ đúng cách.


2

Bạn có thể đạt được điều này bằng cách khuyến khích battery-update, chức năng thực sự cập nhật modeline để hiển thị trạng thái pin. Lời khuyên kiểm tra xem pin hiện đang sạc trong trường hợp mà nó gọi battery-updatebattery-mode-line-formatràng buộc với nil(có hiệu lực che giấu thông tin về pin), nếu không thì battery-updateđược gọi với giá trị không đổi làbattery-mode-line-format

(defun my-skip-battery-display-if-charging (original-func)
  (let ((battery-mode-line-format (unless (string= (downcase (cdr (assoc ?B (funcall battery-status-function)))) "charging")
                                    battery-mode-line-format)))
          (funcall original-func)))

(advice-add 'battery-update :around #'my-skip-battery-display-if-charging)

Lời khuyên hơi khó hiểu vì chúng tôi gọi battery-status-functionmột lần trong khi buffer-updatechức năng đã gọi chức năng đó một lần vì vậy chúng tôi đang thực hiện một cuộc gọi chức năng bổ sung nhưng đây là những gì tôi có thể nghĩ ra.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.