回答:
組み込みのでそれを実行できるかどうかはわかりませんdisplay-battery-mode
。この点についてはあまりカスタマイズできません。また、組み込みモードを好きなように変更するには、重いアドバイスに頼らなければならない場合があります。
少し前にfancy-battery.elを書いて、バッテリーステータスのよりカスタマイズ可能なインジケーターを提供しました。特に、私は色でバッテリーの状態を示したかったのですが、パッケージはfancy-battery-mode-line
それに応じて変更することで、ユースケースにも対応できるように十分に柔軟です:
(setq fancy-battery-mode-line
'(:eval (unless (equal (cdr (assq ?b fancy-battery-last-status)) "+")
(fancy-battery-default-mode-line))))
質問しないでください。ステータスは、恐ろしいAPIを持つbattery.elから取得されます。少なくともほとんどのバックエンドで?b
は、それがバッテリーの状態であり、"+"
充電中であることを示しています。
この設定はバッテリーの状態を表示しますが、バッテリーが放電している場合のみです。別の形式を使用するには、独自の関数を記述してを置き換えfancy-battery-default-mode-line
ます。私の考えを自由に使ってください。
温度に関しては、別のバックエンドで運が良いかもしれません。で既存のバックエンドを確認し、battery.el
バッテリー温度を含むものを検索して、その要件を満たしてみてください。ただし、battery.el
通常はシステムに最適なバックエンドを選択することに成功するため、ハードウェアが単にバッテリー温度を報告しないか、OSが適切にサポートしていない可能性があります。
これを実現するには、モードラインbattery-update
を実際に更新してバッテリーのステータスを表示する関数をadvicingします。アドバイスチェック電池は、現在、それが呼び出した場合には充電されている場合battery-update
とbattery-mode-line-format
に結合してnil
それ以外の場合、(実際に電池情報を非表示にする)battery-update
の不変の値で呼び出され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)
関数が既にその関数を1回呼び出しているbattery-status-function
間に1回呼び出すので、アドバイスは少し不格好ですbuffer-update
。1つの追加の関数呼び出しを行っていますが、これは私が思いつくことです。