summaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
authorjao <jao@gnu.org>2025-10-01 17:23:20 +0100
committerjao <jao@gnu.org>2025-10-01 17:23:50 +0100
commit3e96ae1ade23eee42b63ed047682b7cbf430f7d8 (patch)
tree886508504f2d17f9f717557b1e23fce5135dae3b /lib
parent1a54f3532dcd812b5b4c1c1ecfcf366d9aa10669 (diff)
downloadelibs-3e96ae1ade23eee42b63ed047682b7cbf430f7d8.tar.gz
elibs-3e96ae1ade23eee42b63ed047682b7cbf430f7d8.tar.bz2
jao-mpc tweaks (mainly notifications)
Diffstat (limited to 'lib')
-rw-r--r--lib/doc/jao-mac.el9
-rw-r--r--lib/eos/jao-notify.el31
-rw-r--r--lib/media/jao-mpc.el15
3 files changed, 43 insertions, 12 deletions
diff --git a/lib/doc/jao-mac.el b/lib/doc/jao-mac.el
index b9da4ab..06d6ad3 100644
--- a/lib/doc/jao-mac.el
+++ b/lib/doc/jao-mac.el
@@ -20,7 +20,7 @@
(require 'jao-shell)
-;;; Applescript
+;;; applescript
(defun jao-mac-applescript-prepare (&rest lines)
(let ((script (mapconcat 'identity lines "\r"))
(start))
@@ -74,6 +74,13 @@
(format "keystroke %s" (or page 1))
"delay 0.1\rkeystroke return\rend tell")))
+;;; notifications
+
+(defun jao-mac-notify (title subtitle msg)
+ (jao-mac-run-applescript*
+ (format "display notification %S with title %S subtitle %S"
+ msg title subtitle)))
+
;;; Skim
(defvar jao-skim--current-file-script
(jao-mac-applescript-prepare
diff --git a/lib/eos/jao-notify.el b/lib/eos/jao-notify.el
index 623b8cc..8389b3a 100644
--- a/lib/eos/jao-notify.el
+++ b/lib/eos/jao-notify.el
@@ -1,6 +1,6 @@
;; jao-notify.el -- Interacting with notification daemon
-;; Copyright (c) 2017, 2019, 2020, 2021, 2024 Jose Antonio Ortega Ruiz
+;; Copyright (c) 2017, 2019, 2020, 2021, 2024, 2025 Jose Antonio Ortega Ruiz
;; Author: Jose Antonio Ortega Ruiz <jao@gnu.org>
;; Start date: Sun Jan 08, 2017 20:24
@@ -17,21 +17,30 @@
(defvar jao-notify-audio-icon (jao-data-file "music-player-icon.png"))
(declare-function notifications-notify "notifications")
+(declare-function alert "alert")
+(declare-function jao-mac-notify "jao-mac")
;; "/usr/share/icons/Papirus/64x64/mimetypes/audio-x-generic.svg"
;; "/usr/share/icons/Tango/scalable/mimetypes/audio-x-generic.svg"
-(defun jao-notify (msg &optional title icon)
+(defun jao-notify (msg &optional title icon subtitle)
(let ((title (when (and title (not (string-blank-p title))) title)))
- (if jao-notify-use-messages
- (message "%s%s%s" (or title "") (if title ": " "") (or msg ""))
- (let* ((args `(:timeout ,jao-notify-timeout))
- (args (append args
- (if title `(:title ,title :body ,msg) `(:title ,msg))))
- (args (if (and (stringp icon) (file-exists-p icon))
- (append args `(:app-icon ,(format "%s" icon)))
- args)))
- (apply 'notifications-notify args)))))
+ (cond ((eq jao-notify-use-messages t)
+ (message "%s%s%s" (or title "") (if title ": " "") (or msg "")))
+ ((eq jao-notify-use-messages 'notification)
+ (let* ((args `(:timeout ,jao-notify-timeout))
+ (args (append args
+ (if title
+ `(:title ,title :body ,msg)
+ `(:title ,msg))))
+ (args (if (and (stringp icon) (file-exists-p icon))
+ (append args `(:app-icon ,(format "%s" icon)))
+ args)))
+ (apply 'notifications-notify args)))
+ ((eq jao-notify-use-messages 'alert)
+ (alert msg :title title :icon icon :never-persist t))
+ ((eq jao-notify-use-messages 'mac)
+ (jao-mac-notify title subtitle msg)))))
(provide 'jao-notify)
diff --git a/lib/media/jao-mpc.el b/lib/media/jao-mpc.el
index 82c38ba..2dfec76 100644
--- a/lib/media/jao-mpc.el
+++ b/lib/media/jao-mpc.el
@@ -30,6 +30,7 @@
(require 'jao-themes)
(require 'jao-lyrics)
(require 'jao-random-album)
+(require 'jao-notify)
(defconst jao-mpc--albums "*MPC Albums*")
(defconst jao-mpc--playlist "*MPC Playlist*")
@@ -257,6 +258,20 @@
(message "Playing time: %s" (jao-mpc--current-timestr t)))
;;;###autoload
+(defun jao-mpc-notify (&optional port)
+ (interactive)
+ (when-let* ((current (jao-mpc--current)))
+ (let* ((artist (alist-get 'artist current))
+ (title (alist-get 'title current))
+ (album (alist-get 'album current))
+ (track (alist-get 'track current))
+ (times (jao-mpc--current-timestr t current)))
+ (jao-notify (format "%s -- %s" artist times)
+ (format "%s %s" track title)
+ jao-notify-audio-icon
+ album))))
+
+;;;###autoload
(defun jao-mpc-add-url (url)
(interactive "sURL: ")
(jao-mpc--cmd (format "add %s" url)))