]> git.bundesbrandschatzamt.de Git - emacsconfig.git/commitdiff
play sound on osx
authorAndreas Gerler <baronNOSPAMbundesbrandschatzamt.de>
Fri, 11 Feb 2022 15:15:29 +0000 (16:15 +0100)
committerAndreas Gerler <baronNOSPAMbundesbrandschatzamt.de>
Sat, 26 Feb 2022 10:48:21 +0000 (11:48 +0100)
classic bell

Signed-off-by: Andreas Gerler <baronNOSPAMbundesbrandschatzamt.de>
bba.org
bell.wav [new file with mode: 0644]
lisp/play-sound.el [new file with mode: 0644]

diff --git a/bba.org b/bba.org
index 152bd3e247a9d8da2c9db0ae6a43990c3b41d7dc..7b9464783f4a4a9c83482769ae171dfd3f6aef80 100644 (file)
--- a/bba.org
+++ b/bba.org
@@ -164,6 +164,18 @@ from bash.
             (push "/opt/local/share/info" Info-directory-list)))
 #+END_SRC
 
+* [[https://github.com/leoliu/play-sound-osx][play sound on osx]]
+[2021-01-22 Fri 11:58]
+
+#+begin_src emacs-lisp
+  (if (string-equal system-type "darwin")
+          (progn
+            (unless (and (fboundp 'play-sound-internal)
+                         (subrp (symbol-function 'play-sound-internal)))
+              (require 'play-sound))
+    (setq ring-bell-function (lambda ()
+                               (play-sound-file "~/.emacs.d/bell.wav")))))
+#+end_src
 * move files to trash on osx
 [2017-02-10 Fri 15:12]
 
diff --git a/bell.wav b/bell.wav
new file mode 100644 (file)
index 0000000..9b6214f
Binary files /dev/null and b/bell.wav differ
diff --git a/lisp/play-sound.el b/lisp/play-sound.el
new file mode 100644 (file)
index 0000000..514c356
--- /dev/null
@@ -0,0 +1,53 @@
+;;; play-sound.el --- play sound files on OSX  -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2011-2013  Leo Liu
+
+;; Author: Leo Liu <sdl.webNOSPAMgmail.com>
+;; Version: 1.0
+;; Keywords: comm, tools, convenience
+
+;; 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 <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Provide a compatibility layer for play-sound on OSX since
+;; play-sound-internal is not implemented.
+
+;;; To install:
+
+;; (unless (and (fboundp 'play-sound-internal)
+;;              (subrp (symbol-function 'play-sound-internal)))
+;;   (require 'play-sound))
+
+;;; Code:
+
+(eval-when-compile (require 'cl))
+
+(defun play-sound-internal (sound)
+  "Internal function for `play-sound' (which see)."
+  (or (eq (car-safe sound) 'sound)
+      (signal 'wrong-type-argument (list sound)))
+
+  (destructuring-bind (&key file data volume device)
+      (cdr sound)
+
+    (and (or data device)
+         (error "DATA and DEVICE arg not supported"))
+
+    (apply #'start-process "afplay" nil
+           "afplay" (append (and volume (list "-v" volume))
+                            (list (expand-file-name file data-directory))))))
+
+(provide 'play-sound)
+;;; play-sound.el ends here