setup, pulseaudio, git: Add PulseAudio configuration; substituted dotfiles.
authorMark Wooding <mdw@distorted.org.uk>
Mon, 12 Apr 2010 15:30:30 +0000 (16:30 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Mon, 12 Apr 2010 15:32:27 +0000 (16:32 +0100)
Add a notion of a `substituted dotfile', which is installed by applying
a simple sed(1) script to a skeleton rather than messing with symbolic
links.

Install some basic PulseAudio configuration.  Pulse needs this hacking
because it doesn't let us refer to our home directory without an absolute
pathname, which is a total nuisance.

Adopt .gitconfig under this scheme.  The source moves to dot/gitconfig.in
now.

dot/gitconfig.in [moved from git/gitconfig with 100% similarity]
dot/pulse-default.pa.in [new file with mode: 0644]
setup

similarity index 100%
rename from git/gitconfig
rename to dot/gitconfig.in
diff --git a/dot/pulse-default.pa.in b/dot/pulse-default.pa.in
new file mode 100644 (file)
index 0000000..b1187b1
--- /dev/null
@@ -0,0 +1,14 @@
+### -*-conf-*-
+###
+### PulseAudio configuration
+
+## Include system configuration.  This fairly sane on most systems.
+.include /etc/pulse/default.pa
+
+## Take over the system feep.  We can just about twiddle the feep sample
+## using the Gnome thing, because it fiddles the symlink in this directory.
+## PulseAudio only rechecks the link after evicting the sample from its
+## cache, but that's good enough.  What is annoying is that we have to
+## hardwire the home directory here.
+load-sample-dir-lazy @home@/.local/share/sounds/__custom
+load-module module-x11-bell sample=bell-window-system.ogg
diff --git a/setup b/setup
index 162ede5..94dc65d 100755 (executable)
--- a/setup
+++ b/setup
@@ -167,6 +167,32 @@ for d in $dotfiles; do
 done
 echo " all done."
 
+## Substitute things which need substituting.
+dotfilessubst="
+  gitconfig
+  pulse-default.pa.in:.pulse/default.pa"
+echo "Installing dotfiles with substitutions..."
+for d in $dotfilessubst; do
+  case $d in
+    *:*) target=${d#*:} d=${d%%:*};;
+    *) target=.$d d=$d.in;;
+  esac
+  ft=$HOME$sub/$target
+  dir=${ft%/*}
+  mkdir -p $dir
+  sed "
+1i\
+### generated by $here/setup; do not edit!\
+
+/@home@/ s\a\a$HOME\ag
+/@releasekey@/ s\a\a$(bin/mdw-conf release-key 481334C2)\ag
+/@gitignore@/ s\a\a$(bin/mdw-conf gitignore $here/git/gitignore)\ag
+" dot/$d >$ft.new
+  mv $ft.new $ft
+  echo "  $target"
+done
+echo "  all done."
+
 ## Symlink backgrounds.
 backgrounds="
   jue-peek.jpg
@@ -192,20 +218,6 @@ if [ "$xstuff" ]; then
 fi
 
 ###--------------------------------------------------------------------------
-### Process the Git configuration.
-
-echo -n "Installing Git configuration:"
-sed "
-1i\
-### generated by $here/setup; do not edit!\
-
-/@releasekey@/ s::$(bin/mdw-conf release-key 481334C2):g
-/@gitignore@/ s::$(bin/mdw-conf gitignore $here/git/gitignore):g
-" git/gitconfig >$HOME/.gitconfig.new
-mv $HOME/.gitconfig.new $HOME/.gitconfig
-echo " done."
-
-###--------------------------------------------------------------------------
 ### Install useful scripts included in this package.
 
 scripts="