Moving all of my Emacs-related files into their own directory at the root of this repository.
		
			
				
	
	
		
			66 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			EmacsLisp
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			EmacsLisp
		
	
	
	
	
	
;;; pulse-audio.el --- Control audio with Elisp -*- lexical-binding: t -*-
 | 
						|
;; Author: William Carroll <wpcarro@gmail.com>
 | 
						|
 | 
						|
;;; Commentary:
 | 
						|
;; Because everything in my configuration is turning into Elisp these days.
 | 
						|
 | 
						|
;;; Code:
 | 
						|
 | 
						|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
						|
;; Dependencies
 | 
						|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
						|
 | 
						|
(require 'prelude)
 | 
						|
(require 'string)
 | 
						|
 | 
						|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
						|
;; Constants
 | 
						|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
						|
 | 
						|
(defconst pulse-audio/step-size 5
 | 
						|
  "The size by which to increase or decrease the volume.")
 | 
						|
 | 
						|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
						|
;; Library
 | 
						|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
						|
 | 
						|
(defun pulse-audio/message (x)
 | 
						|
  "Output X to *Messages*."
 | 
						|
  (message (string/format "[pulse-audio.el] %s" x)))
 | 
						|
 | 
						|
(defun pulse-audio/toggle-mute ()
 | 
						|
  "Mute the default sink."
 | 
						|
  (interactive)
 | 
						|
  (prelude/start-process
 | 
						|
   :name "pulse-audio/toggle-mute"
 | 
						|
   :command "pactl set-sink-mute @DEFAULT_SINK@ toggle")
 | 
						|
  (pulse-audio/message "Mute toggled."))
 | 
						|
 | 
						|
(defun pulse-audio/toggle-microphone ()
 | 
						|
  "Mute the default sink."
 | 
						|
  (interactive)
 | 
						|
  (prelude/start-process
 | 
						|
   :name "pulse-audio/toggle-microphone"
 | 
						|
   :command "pactl set-source-mute @DEFAULT_SOURCE@ toggle")
 | 
						|
  (pulse-audio/message "Microphone toggled."))
 | 
						|
 | 
						|
(defun pulse-audio/decrease-volume ()
 | 
						|
  "Low the volume output of the default sink."
 | 
						|
  (interactive)
 | 
						|
  (prelude/start-process
 | 
						|
   :name "pulse-audio/decrease-volume"
 | 
						|
   :command (string/format "pactl set-sink-volume @DEFAULT_SINK@ -%s%%"
 | 
						|
                           pulse-audio/step-size))
 | 
						|
  (pulse-audio/message "Volume decreased."))
 | 
						|
 | 
						|
(defun pulse-audio/increase-volume ()
 | 
						|
  "Raise the volume output of the default sink."
 | 
						|
  (interactive)
 | 
						|
  (prelude/start-process
 | 
						|
   :name "pulse-audio/increase-volume"
 | 
						|
   :command (string/format "pactl set-sink-volume @DEFAULT_SINK@ +%s%%"
 | 
						|
                           pulse-audio/step-size))
 | 
						|
  (pulse-audio/message "Volume increased."))
 | 
						|
 | 
						|
(provide 'pulse-audio)
 | 
						|
;;; pulse-audio.el ends here
 |