macOSの電源操作をpmsetで行う
macOS
は pmset
というコマンドを提供している。このコマンドは macOS
の電源管理を行う。僕はmacをクラムシェルモード1で使用する事がある。そういう時はコマンドの使い方をだいたい忘れているため、その都度 pmset
のサブコマンドの意味を調べて実行していた。そのコマンドをまとめる。
MacBookを閉じてもスリープさせない
スリープさせないようにする(つまり閉じてもスリープしない)
sudo pmset -a disablesleep 1
スリープさせないようにしない(つまり閉じるとスリープする)
sudo pmset -a disablesleep 0
macOSを即座にスリープする
macOSを即座にスリープするには sleepnow
を指定する。
pmset sleepnow
Emacsのコマンドを提供する
pmset
の使い方を毎回調べるのは面倒なので、Emacs上から M-x
で呼び出せるEmacsのコマンドを用意する事にした。
;;; macos-pmset --- macOS Power Utility. -*- lexical-binding: t -*-
;; Copyright (C) 2024 TakesxiSximada
;; Author: TakesxiSximada <[email protected]>
;; Maintainer: TakesxiSximada <[email protected]>
;; Version: 3
;; Package-Version: 20240314.0000
;; Package-Requires: ((emacs "29.1"))
;; Date: 2024-03-14
;; This file is not part of GNU Emacs.
;;; License:
;; This program is free software: you can redistribute it and/or
;; modify it under the terms of the GNU Affero General Public License as
;; published by the Free Software Foundation, either version 3 of the
;; License, or (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;; Affero General Public License for more details.
;; You should have received a copy of the GNU Affero General Public
;; License along with this program. If not, see
;; <https://www.gnu.org/licenses/>.
;;; Code:
(defvar macos-pmset-buffer-name "*macOS pmset*")
;;;###autoload
(defun macos-pmset-set-sleep (state)
(interactive (list (intern (completing-read "Sleep: " '(enable disable)))))
(let ((shell-command-buffer-name-async macos-pmset-buffer-name)
(async-shell-command-buffer 'confirm-kill-process))
(async-shell-command
(format "sudo pmset -a disablesleep %s"
(cond ((equal state 'enable) 0)
((equal state 'disable) 1)
(t (error "Bad parameter: %s" state)))))))
(defalias #'macos-pmset-disable-sleep (apply-partially #'macos-pmset-set-sleep 'disable))
(defalias #'macos-pmset-enable-sleep (apply-partially #'macos-pmset-set-sleep 'enable))
;;;###autoload
(defun macos-pmset-sleepnow ()
(interactive)
(let ((shell-command-buffer-name-async macos-pmset-buffer-name)
(async-shell-command-buffer 'confirm-kill-process))
(async-shell-command "pmset sleepnow")))
;;; macos-pmset.el ends here
1
ノートパソコンをを閉じた状態で使う事。