xmonad-extras-0.13.0: Third party extensions for xmonad with wacky dependencies

Copyright(c) daniel@wagner-home.com
LicenseBSD3-style (see LICENSE)
Maintainerdaniel@wagner-home.com
Stabilityunstable
Portabilityunportable
Safe HaskellNone
LanguageHaskell98

XMonad.Actions.Volume

Contents

Description

A minimal interface to the "amixer" command-line utility.

Synopsis

Usage

You can use this module with the following in your ~/.xmonad/xmonad.hs:

import XMonad.Actions.Volume

then add appropriate keybinds to adjust the volume; for example:

, ((modMask x, xK_F8 ), lowerVolume 3 >> return ())
, ((modMask x, xK_F9 ), raiseVolume 3 >> return ())
, ((modMask x, xK_F10), toggleMute    >> return ())

For detailed instructions on editing your key bindings, see XMonad.Doc.Extending.

Common functions

toggleMute :: MonadIO m => m Bool Source #

Toggle mutedness on the default channels. Returns True when this attempts to mute the speakers and False when this attempts to unmute the speakers.

raiseVolume :: MonadIO m => Double -> m Double Source #

Raise the volume on the default channels the given number of percentage points. Returns the volume it attempts to set.

lowerVolume :: MonadIO m => Double -> m Double Source #

Lower the volume on the default channels the given number of percentage points. Returns the volume it attempts to set.

Low-level interface

getVolume :: MonadIO m => m Double Source #

Get the geometric mean of the volumes on the default channels.

getMute :: MonadIO m => m Bool Source #

Get the mutedness of the default channels. Returns True if any of the channels are muted, and False otherwise.

getVolumeMute :: MonadIO m => m (Double, Bool) Source #

Get both the volume and the mutedness of the default channels.

setVolume :: MonadIO m => Double -> m () Source #

Attempt to set the default channels to a volume given in percentage of maximum.

setMute :: MonadIO m => Bool -> m () Source #

Attempt to set the muting on the default channels.

setVolumeMute :: MonadIO m => Double -> Bool -> m () Source #

Attempt to set both the volume in percent and the muting on the default channels.

modifyVolume :: MonadIO m => (Double -> Double) -> m Double Source #

Apply a function to the volume of the default channels, and return the modified value.

modifyMute :: MonadIO m => (Bool -> Bool) -> m Bool Source #

Apply a function to the muting on the default channels, and return the modified value.

modifyVolumeMute :: MonadIO m => (Double -> Bool -> (Double, Bool)) -> m (Double, Bool) Source #

Apply a function to both the volume and the muting of the default channels, and return the modified values.

Variants that take a list of channels

defaultChannels :: [String] Source #

Channels are what amixer calls "simple controls". The most common ones are "Master", "Wave", and "PCM", so these are included in defaultChannels. It is guaranteed to be safe to pass channel names that don't exist on the default sound device to the *Channels family of functions.

setMuteChannels :: MonadIO m => [String] -> Bool -> m () Source #

defaultOSDOpts :: Bool -> String Source #

Default options for displaying the volume.

osdCat :: MonadIO m => Double -> (Bool -> String) -> m () Source #

Helper function to output current volume via osd_cat. (Needs the osd_cat executable). The second parameter is passed True when the speakers are muted and should return the options to pass to osd_cat.