From: Andreas Gerler Date: Fri, 11 Feb 2022 15:15:29 +0000 (+0100) Subject: play sound on osx X-Git-Url: http://git.bundesbrandschatzamt.de/?a=commitdiff_plain;h=3e4e160d3226d42477b242a2a2da9c90ed0ae894;p=emacsconfig.git play sound on osx classic bell Signed-off-by: Andreas Gerler --- diff --git a/bba.org b/bba.org index 152bd3e2..7b946478 100644 --- 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 index 00000000..9b6214f4 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 index 00000000..514c356c --- /dev/null +++ b/lisp/play-sound.el @@ -0,0 +1,53 @@ +;;; play-sound.el --- play sound files on OSX -*- lexical-binding: t; -*- + +;; Copyright (C) 2011-2013 Leo Liu + +;; Author: Leo Liu +;; 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 . + +;;; 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