Batterieinformationen nur anzeigen, wenn der Netzstecker gezogen ist?


8

display-battery-mode Zeigt Informationen zum Akku an, ich möchte sie jedoch nur verwenden, wenn mein Computer vom Stromnetz getrennt ist und der Akku leer ist.

  1. Gibt es eine Möglichkeit, den Anzeigemodus entsprechend dem Stromversorgungsmodus einzustellen?

  2. Kann ich auch die im Modell angegebene Temperatur erhalten?

Antworten:


6

Ich bin mir nicht sicher, ob Sie das mit dem eingebauten machen können display-battery-mode. Es ist in dieser Hinsicht nicht sehr anpassbar, und Sie müssen möglicherweise auf umfangreiche Ratschläge zurückgreifen, um den integrierten Modus nach Ihren Wünschen zu ändern.

Ich habe vor einiger Zeit Fancy-Battery.el geschrieben, um eine anpassbarere Anzeige für den Batteriestatus bereitzustellen. Insbesondere wollte ich den Zustand des Akkus mit Farben anzeigen, aber das Paket ist flexibel genug, um auch Ihren Anwendungsfall zu berücksichtigen, indem es entsprechend geändert fancy-battery-mode-linewird:

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

Fragen Sie nicht, der Status kommt von batterie.el, die eine schreckliche API hat. Vertrauen Sie mir einfach, dass dies ?bder Batteriezustand ist und "+"zumindest für die meisten Backends das Aufladen anzeigt.

Diese Einstellung zeigt den Batteriestatus an, jedoch nur, wenn die Batterie entladen ist. Um ein anderes Format zu verwenden, schreiben Sie Ihre eigene Funktion zum Ersetzen fancy-battery-default-mode-line. Fühlen Sie sich frei, meine als Inschrift zu nehmen.

In Bezug auf die Temperatur haben Sie möglicherweise Glück mit einem anderen Backend. Schauen Sie sich die vorhandenen Backends in an battery.el, suchen Sie nach einem, das die Batterietemperatur enthält, und versuchen Sie, die Anforderungen zu erfüllen. In der battery.elRegel gelingt es jedoch, das beste Backend für Ihr System auszuwählen. Daher meldet Ihre Hardware wahrscheinlich einfach nicht die Akkutemperatur oder wird von Ihrem Betriebssystem nicht ordnungsgemäß unterstützt.


2

Sie können dies erreichen, indem Sie battery-updatedie Funktion angeben , die das Modell tatsächlich aktualisiert, um den Batteriestatus anzuzeigen. Der Hinweis prüft, ob der Akku gerade aufgeladen wird. In diesem Fall ruft er battery-updatemit battery-mode-line-formatgebunden an an nil(was die Akkuinformationen tatsächlich verbirgt), andernfalls battery-updatewird er mit unverändertem Wert von aufgerufenbattery-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)

Der Rat ist etwas umständlich, da wir battery-status-functioneinmal aufrufen , während die buffer-updateFunktion diese Funktion bereits einmal aufruft, sodass wir einen zusätzlichen Funktionsaufruf durchführen, aber das könnte ich mir einfallen lassen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.