66 lines
2.1 KiB
EmacsLisp
66 lines
2.1 KiB
EmacsLisp
;;; system-util.el --- System utilities for GNU/Linux -*- lexical-binding: t -*-
|
|
|
|
;; This file is not part of GNU Emacs
|
|
|
|
;; This program is free software: you can redistribute it and/or modify
|
|
;; it under the terms of the GNU 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 General Public License for more details.
|
|
|
|
;; You should have received a copy of the GNU General Public License
|
|
;; along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
|
|
;;; Commentary:
|
|
|
|
;; commentary
|
|
|
|
;;; Code:
|
|
|
|
(require 'transient)
|
|
|
|
(defcustom theurgy-system-utils-enabled
|
|
t
|
|
"Whether to enable theurgy system utilities suite for GNU/Linux."
|
|
:type 'boolean
|
|
:group 'theurgy
|
|
:group 'theurgy-compat)
|
|
|
|
(when (and theurgy-system-utils-enabled
|
|
(equal system-type 'gnu/linux))
|
|
(use-package restart-emacs)
|
|
|
|
(use-package system-packages)
|
|
|
|
(use-package nm
|
|
:straight (nm :type git :host github :repo "theesfeld/nm")
|
|
:ensure t)
|
|
|
|
(use-package bluetooth
|
|
:straight (bluetooth :type git :host github :repo "emacsmirror/bluetooth")
|
|
:ensure t)
|
|
|
|
(transient-define-prefix system-interactions-transient ()
|
|
"Transient menu for interfacing with the system via system-packages and restart."
|
|
["Emacs system actions" ("R" "Restart" restart-emacs)]
|
|
["Package..." ("s" "Search" system-packages-search)
|
|
("u" "Update" system-packages-update)
|
|
("i" "Install" system-packages-install)
|
|
("r" "Uninstall" system-packages-uninstall)
|
|
("o" "Remove Orphans" system-packages-remove-orphaned)]
|
|
["Networking" ("d" "Dashboard" nm-ui-dashboard)
|
|
("S" "Status" nm-status)
|
|
("w" "WiFi Browser" nm-ui-wifi-list)
|
|
("c" "Connections" nm-ui-connections)]
|
|
["Bluetooth" ("l" "List Devices" bluetooth-list-devices)])
|
|
|
|
(define-key global-map (kbd "C-c o s") #'system-interactions-transient))
|
|
|
|
(provide 'system-util)
|
|
|
|
;;; system-util.el ends here
|