@@ -764,48 +764,37 @@ alsa = {};
764764FALLBACK_EOF
765765 fi
766766
767- # Now edit the config file to set our values
767+ # Now edit the config file to set our values using simple, reliable sed commands
768768 log " Configuring AirPlay name: $airplay_name "
769769
770- # Set the AirPlay device name
771- sudo sed -i ' /general =/,/^}/{ s|//[[:space:]]*name = .*| name = "' " $airplay_name " ' ";|; /^[[:space:]]*name = /d; /general =/a\ name = "' " $airplay_name " ' ";
772- }' /etc/shairport-sync.conf
770+ # Set the AirPlay device name - uncomment and set it
771+ sudo sed -i " s|^//[[:space:]]*name = .*| name = \" $airplay_name \" ;|" /etc/shairport-sync.conf
773772
774- # Set output device
773+ # Set output device - uncomment and set it
775774 log " Configuring audio output: $audio_device_plug "
776- sudo sed -i ' /alsa =/,/^}/{
777- s|//[[:space:]]*output_device = .*| output_device = "' " $audio_device_plug " ' ";|
778- s|^[[:space:]]*output_device = .*| output_device = "' " $audio_device_plug " ' ";|
779- }' /etc/shairport-sync.conf
775+ sudo sed -i " s|^[[:space:]]*output_device = .*| output_device = \" $audio_device_plug \" ;|" /etc/shairport-sync.conf
776+ sudo sed -i " s|^//[[:space:]]*output_device = .*| output_device = \" $audio_device_plug \" ;|" /etc/shairport-sync.conf
780777
781778 # Set mixer control if available
782779 if [ -n " $mixer_control " ]; then
783780 log " Configuring mixer control: $mixer_control on hw:$card_number "
784- sudo sed -i ' /alsa =/,/^}/{
785- s|//[[:space:]]*mixer_control_name = .*| mixer_control_name = "' " $mixer_control " ' ";|
786- s|^[[:space:]]*mixer_control_name = .*| mixer_control_name = "' " $mixer_control " ' ";|
787- s|//[[:space:]]*mixer_device = .*| mixer_device = "hw:' " $card_number " ' ";|
788- s|^[[:space:]]*mixer_device = .*| mixer_device = "hw:' " $card_number " ' ";|
789- }' /etc/shairport-sync.conf
781+ sudo sed -i " s|^//[[:space:]]*mixer_control_name = .*| mixer_control_name = \" $mixer_control \" ;|" /etc/shairport-sync.conf
782+ sudo sed -i " s|^[[:space:]]*mixer_control_name = .*| mixer_control_name = \" $mixer_control \" ;|" /etc/shairport-sync.conf
783+ # Also set mixer_device if needed (usually commented out by default)
784+ sudo sed -i " s|^//[[:space:]]*mixer_device = .*| mixer_device = \" hw:$card_number \" ;|" /etc/shairport-sync.conf
785+ sudo sed -i " s|^[[:space:]]*mixer_device = .*| mixer_device = \" hw:$card_number \" ;|" /etc/shairport-sync.conf
790786 fi
791787
792788 # Set output format
793- sudo sed -i ' /alsa =/,/^}/{
794- s|//[[:space:]]*output_rate = .*| output_rate = "auto";|
795- s|^[[:space:]]*output_rate = .*| output_rate = "auto";|
796- s|//[[:space:]]*output_format = .*| output_format = "S16";|
797- s|^[[:space:]]*output_format = .*| output_format = "S16";|
798- }' /etc/shairport-sync.conf
789+ sudo sed -i " s|^//[[:space:]]*output_rate = .*| output_rate = \" auto\" ;|" /etc/shairport-sync.conf
790+ sudo sed -i " s|^[[:space:]]*output_rate = .*| output_rate = \" auto\" ;|" /etc/shairport-sync.conf
791+ sudo sed -i " s|^//[[:space:]]*output_format = .*| output_format = \" S16\" ;|" /etc/shairport-sync.conf
792+ sudo sed -i " s|^[[:space:]]*output_format = .*| output_format = \" S16\" ;|" /etc/shairport-sync.conf
799793
800794 # Set volume settings
801- sudo sed -i ' /general =/,/^}/{
802- s|//[[:space:]]*volume_max_db = .*| volume_max_db = 4.0;|
803- s|^[[:space:]]*volume_max_db = .*| volume_max_db = 4.0;|
804- s|//[[:space:]]*default_airplay_volume = .*| default_airplay_volume = -6.0;|
805- s|^[[:space:]]*default_airplay_volume = .*| default_airplay_volume = -6.0;|
806- s|//[[:space:]]*high_volume_idle_timeout_in_minutes = .*| high_volume_idle_timeout_in_minutes = 1;|
807- s|^[[:space:]]*high_volume_idle_timeout_in_minutes = .*| high_volume_idle_timeout_in_minutes = 1;|
808- }' /etc/shairport-sync.conf
795+ sudo sed -i " s|^//[[:space:]]*volume_max_db = .*| volume_max_db = 4.0;|" /etc/shairport-sync.conf
796+ sudo sed -i " s|^//[[:space:]]*default_airplay_volume = .*| default_airplay_volume = -6.0;|" /etc/shairport-sync.conf
797+ sudo sed -i " s|^//[[:space:]]*high_volume_idle_timeout_in_minutes = .*| high_volume_idle_timeout_in_minutes = 1;|" /etc/shairport-sync.conf
809798
810799 # Verify config file was created
811800 if [ ! -f /etc/shairport-sync.conf ]; then
0 commit comments