From 3e4e160d3226d42477b242a2a2da9c90ed0ae894 Mon Sep 17 00:00:00 2001 From: Andreas Gerler Date: Fri, 11 Feb 2022 16:15:29 +0100 Subject: [PATCH] play sound on osx classic bell Signed-off-by: Andreas Gerler --- bba.org | 12 ++++++++++ bell.wav | Bin 0 -> 4212 bytes lisp/play-sound.el | 53 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 bell.wav create mode 100644 lisp/play-sound.el 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 0000000000000000000000000000000000000000..9b6214f475fa084edf023e527cc8fa6c6996591e GIT binary patch literal 4212 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 literal 0 HcmV?d00001 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 -- 2.47.3