At Tue, 24 Apr 2012 03:22:01 -0300, Diogo F. S. Ramos wrote: > > I've been using a *very* primitive code to interact with pulseaudio and > I decided to pack it as a "module" [0]. > > This way, I can create symbols outside stumpwm package. > > Unfortunately, by doing all this, I couldn't directly access a function > called `bar', which is not exported by stumpwm, so I had to use `::'. It > looks like a good symbol to export to me.
stumpwm export list is IMHO stale, and its impossible to extend it well without using internal symbols, so I see absolutely no problem with that. > > Also, because the procedure `define-key' only accepts commands, to make > the life of the user easier, I decided to define three of them. To do > it, I had to use `(in-package #:stumpwm)' inside my package. I don't > know if this is OK or not. Same as above, OK in my book, but I'm just a user like you not a maintainer :-) For whatever its worth, I had the same hack for over a year, rather then go all lispy I thrown together a zsh script.. IMHO it is extremely useful to have an "input" parameter that chooses input based on name. This way I have bound super-W and super-R to control amarok volume, s-S and s-F to control master volume, and s-X and s-V to control Alsa volume, which is what firefox/chrome uses. My script is attached, example usage: pavol master +1 pavol Amarok -5 pavol ALSA +5
#!/bin/zsh emulate -L zsh local input_num index vol new_vol cur found voln setcmd if [[ -z $1 ]] ; then print "Usage: pavol <input-number> [[+|-]<volume percent>" return 0 fi input_num=$1 new_vol=$2 index= vol= cur=1 if [[ $input_num != master ]] ; then pacmd list-sink-inputs | while read one two three ; do case $one ; in (index:) index=$two ;; (volume:) vol=${three%%%*} ;; (application.name) if [[ $three == *${input_num}* ]] ; then found=1 break fi ;; esac done setcmd=set-sink-input-volume else pacmd list-sinks | while read one two three four ; do case $one ; in (volume:) vol=${three%*%} ;; esac if [[ -n $vol ]] ; then found=1 break fi done setcmd=set-sink-volume index=0 fi if [[ $found == 1 ]] ; then integer voln (( voln = vol*(65535/100))) if [[ -n $new_vol ]] ; then if [[ $new_vol[1] == '+' ]] ; then (( voln = voln + (new_vol[2,-1] * 65536/100))) elif [[ $new_vol[1] == '-' ]] ; then (( voln = voln - (new_vol[2,-1] * 65536/100))) else (( voln = new_vol * (65536/100))) fi if [[ $voln -gt 65535 ]] ; then voln=65535 fi if [[ $voln -lt 0 ]] ; then voln=0 fi print "Running pacmd $setcmd $index $voln" pacmd $setcmd $index $voln >/dev/null 2>&1 fi print "$vol" else print "Not found" fi
_______________________________________________ Stumpwm-devel mailing list Stumpwm-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/stumpwm-devel