Skip to content

Instantly share code, notes, and snippets.

@dsanson
Last active May 29, 2024 21:12
Show Gist options
  • Save dsanson/9907c07b1441c676720c34f02301225b to your computer and use it in GitHub Desktop.
Save dsanson/9907c07b1441c676720c34f02301225b to your computer and use it in GitHub Desktop.
cli activation of built-in white noise on macos
#!/usr/bin/env bash
declare -A noises
# to get these hashes, using the system to select the sound, then run:
#
# defaults export com.apple.ComfortSounds -
#
# Convert the base64 data field to hex.
noises["rain"]="62706C6973743030D4010203040506070A582476657273696F6E592461726368697665725424746F7058246F626A6563747312000186A05F100F4E534B657965644172636869766572D1080954726F6F748001AF10280B0C17181E1F2538393A5E5F606162636465666768696A6B6C6D166E6F7071373273747576777B7E55246E756C6CD50D0E0F101112131415165F10164855436F6D666F7274536F756E6441737365744B65795624636C6173735F10154855436F6D666F7274536F756E644E616D654B65795F10154855436F6D666F7274536F756E64506174684B65795F10164855436F6D666F7274536F756E6447726F75704B657980068027800280031005545261696ED3190E1A1B1C1D574E532E626173655B4E532E72656C61746976658000800580045F108366696C653A2F2F2F53797374656D2F4C6962726172792F41737365747356322F636F6D5F6170706C655F4D6F62696C6541737365745F436F6D666F7274536F756E64734173736574732F353033303231663562363033373561343766643762393130373830303866333361303963613938312E61737365742F4173736574446174612FD2202122235A24636C6173736E616D655824636C6173736573554E5355524CA22224584E534F626A656374DA262728290E2A2B2C2D2E2F15313233343235363757617373657449645B6F726967696E616C55524C596173736574547970655D666F726D617456657273696F6E5D6973446F776E6C6F6164696E675F1014636F6D7061746962696C69747956657273696F6E5E636F6E74656E7456657273696F6E5A70726F706572746965735B6973496E7374616C6C6564800780038008100180260810008009095F1028353033303231663562363033373561343766643762393130373830303866333361303963613938315F1029636F6D2E6170706C652E4D6F62696C6541737365742E436F6D666F7274536F756E6473417373657473D33B3C0E3D4D5D574E532E6B6579735A4E532E6F626A65637473AF100F3E3F404142434445464748494A4B4C800A800B800C800D800E800F801080118012801380148015801680178018AF100F4E4F505152535455551458545A5B5C8019801A801B801C801D801E801F8020802080028021801F80228023802480255F100F5F556E617263686976656453697A655A536F756E6447726F7570554275696C645E5F5F52656C6174697665506174685F10155F4D6561737572656D656E74416C676F726974686D5F10155F436F6D7072657373696F6E416C676F726974686D5F10185F5F43616E5573654C6F63616C43616368655365727665725D466F726D617456657273696F6E5F1014436F6D7061746962696C69747956657273696F6E59536F756E644E616D65595F5F4261736555524C5F10105F49735A697053747265616D61626C655D5F446F776E6C6F616453697A655C5F4D6561737572656D656E745F10105F4D6173746572656456657273696F6E12040C700056394D363339385F1056636F6D5F6170706C655F4D6F62696C6541737365745F436F6D666F7274536F756E64734173736574732F353033303231663562363033373561343766643762393130373830303866333361303963613938312E7A6970555348412D31537A6970095F105F68747470733A2F2F757064617465732E63646E2D6170706C652E636F6D2F323032322F6D6F62696C656173736574732F3037312D30373136322F31423036424243452D364446412D343631412D394436442D4146303741303833463841452F1203FA7C7D4F1014089E773A6E6C4F0B0F9C018FB55FF24A7092DB515436333938D2202178795F10134E534D757461626C6544696374696F6E617279A3787A245C4E5344696374696F6E617279D220217C7D5741584173736574A27C24D220217F805E4855436F6D666F7274536F756E64A281245E4855436F6D666F7274536F756E6400080011001A00240029003200370049004C00510053007E0084008F00A800AF00C700DF00F800FA00FC00FE010001020107010E0116012201240126012801AE01B301BE01C701CD01D001D901EE01F60202020C021A0228023F024E0259026502670269026B026D026F027002720274027502A002CC02D302DB02E602F802FA02FC02FE03000302030403060308030A030C030E03100312031403160328032A032C032E03300332033403360338033A033C033E03400342034403460348035A0365036B037A039203AA03C503D303EA03F403FE0411041F042C043F0444044B04A404AA04AE04AF05110516052D05320537054D0551055E0563056B056E0573058205850000000000000201000000000000008200000000000000000000000000000594"
noises["balanced"]="62706C6973743030D4010203040506070A582476657273696F6E592461726368697665725424746F7058246F626A6563747312000186A05F100F4E534B657965644172636869766572D1080954726F6F748001AF10270B0C17181E1F253738395D5E5F606162636465666768696A6B6C166D6E6F703672737475767A7D55246E756C6CD50D0E0F101112131415165F10164855436F6D666F7274536F756E6441737365744B65795624636C6173735F10154855436F6D666F7274536F756E644E616D654B65795F10154855436F6D666F7274536F756E64506174684B65795F10164855436F6D666F7274536F756E6447726F75704B6579800680268002800310015950696E6B4E6F697365D3190E1A1B1C1D574E532E626173655B4E532E72656C61746976658000800580045F108366696C653A2F2F2F53797374656D2F4C6962726172792F41737365747356322F636F6D5F6170706C655F4D6F62696C6541737365745F436F6D666F7274536F756E64734173736574732F626263643131336432373934323533303665343535616633643835646132616663663832633532622E61737365742F4173736574446174612FD2202122235A24636C6173736E616D655824636C6173736573554E5355524CA22224584E534F626A656374DA262728290E2A2B2C2D2E2F15311632331634353657617373657449645B6F726967696E616C55524C596173736574547970655D666F726D617456657273696F6E5D6973446F776E6C6F6164696E675F1014636F6D7061746962696C69747956657273696F6E5E636F6E74656E7456657273696F6E5A70726F706572746965735B6973496E7374616C6C656480078003800880250810008009095F1028626263643131336432373934323533303665343535616633643835646132616663663832633532625F1029636F6D2E6170706C652E4D6F62696C6541737365742E436F6D666F7274536F756E6473417373657473D33A3B0E3C4C5C574E532E6B6579735A4E532E6F626A65637473AF100F3D3E3F404142434445464748494A4B800A800B800C800D800E800F801080118012801380148015801680178018AF100F4D4E4F505152534E4E145753595A5B8019801A801B801C801D801E801F801A801A80028020801F80218022802380245F100F5F556E617263686976656453697A655A536F756E6447726F7570554275696C645E5F5F52656C6174697665506174685F10155F4D6561737572656D656E74416C676F726974686D5F10155F436F6D7072657373696F6E416C676F726974686D5F10185F5F43616E5573654C6F63616C43616368655365727665725D466F726D617456657273696F6E5F1014436F6D7061746962696C69747956657273696F6E59536F756E644E616D65595F5F4261736555524C5F10105F49735A697053747265616D61626C655D5F446F776E6C6F616453697A655C5F4D6561737572656D656E745F10105F4D6173746572656456657273696F6E12001EE00056394D363339385F1056636F6D5F6170706C655F4D6F62696C6541737365745F436F6D666F7274536F756E64734173736574732F626263643131336432373934323533303665343535616633643835646132616663663832633532622E7A6970555348412D31537A6970095F105F68747470733A2F2F757064617465732E63646E2D6170706C652E636F6D2F323032322F6D6F62696C656173736574732F3037312D30373136322F31423036424243452D364446412D343631412D394436442D4146303741303833463841452F12001D38CC4F10145F0BF2903F9860B94BA6CA39E7F76F3EEE4F24905436333938D2202177785F10134E534D757461626C6544696374696F6E617279A37779245C4E5344696374696F6E617279D220217B7C5741584173736574A27B24D220217E7F5E4855436F6D666F7274536F756E64A280245E4855436F6D666F7274536F756E6400080011001A00240029003200370049004C00510053007D0083008E00A700AE00C600DE00F700F900FB00FD00FF0101010B0112011A01260128012A012C01B201B701C201CB01D101D401DD01F201FA02060210021E022C02430252025D0269026B026D026F0271027202740276027702A202CE02D502DD02E802FA02FC02FE03000302030403060308030A030C030E03100312031403160318032A032C032E03300332033403360338033A033C033E03400342034403460348034A035C0367036D037C039403AC03C703D503EC03F6040004130421042E04410446044D04A604AC04B004B105130518052F05340539054F055305600565056D05700575058405870000000000000201000000000000008100000000000000000000000000000596"
noises["bright"]="62706C6973743030D4010203040506070A582476657273696F6E592461726368697665725424746F7058246F626A6563747312000186A05F100F4E534B657965644172636869766572D1080954726F6F748001AF10280B0C17181E1F2538393A5E5F606162636465666768696A6B6C6D166E6F7071373273747576777B7E55246E756C6CD50D0E0F101112131415165F10164855436F6D666F7274536F756E6441737365744B65795624636C6173735F10154855436F6D666F7274536F756E644E616D654B65795F10154855436F6D666F7274536F756E64506174684B65795F10164855436F6D666F7274536F756E6447726F75704B6579800680278002800310025A57686974654E6F697365D3190E1A1B1C1D574E532E626173655B4E532E72656C61746976658000800580045F108366696C653A2F2F2F53797374656D2F4C6962726172792F41737365747356322F636F6D5F6170706C655F4D6F62696C6541737365745F436F6D666F7274536F756E64734173736574732F376235653263323261623966333162373130633563633538663034373537313261323763383037302E61737365742F4173736574446174612FD2202122235A24636C6173736E616D655824636C6173736573554E5355524CA22224584E534F626A656374DA262728290E2A2B2C2D2E2F15313233343235363757617373657449645B6F726967696E616C55524C596173736574547970655D666F726D617456657273696F6E5D6973446F776E6C6F6164696E675F1014636F6D7061746962696C69747956657273696F6E5E636F6E74656E7456657273696F6E5A70726F706572746965735B6973496E7374616C6C6564800780038008100180260810008009095F1028376235653263323261623966333162373130633563633538663034373537313261323763383037305F1029636F6D2E6170706C652E4D6F62696C6541737365742E436F6D666F7274536F756E6473417373657473D33B3C0E3D4D5D574E532E6B6579735A4E532E6F626A65637473AF100F3E3F404142434445464748494A4B4C800A800B800C800D800E800F801080118012801380148015801680178018AF100F4E4F505152535455551458545A5B5C8019801A801B801C801D801E801F8020802080028021801F80228023802480255F100F5F556E617263686976656453697A655A536F756E6447726F7570554275696C645E5F5F52656C6174697665506174685F10155F4D6561737572656D656E74416C676F726974686D5F10155F436F6D7072657373696F6E416C676F726974686D5F10185F5F43616E5573654C6F63616C43616368655365727665725D466F726D617456657273696F6E5F1014436F6D7061746962696C69747956657273696F6E59536F756E644E616D65595F5F4261736555524C5F10105F49735A697053747265616D61626C655D5F446F776E6C6F616453697A655C5F4D6561737572656D656E745F10105F4D6173746572656456657273696F6E12001F900056394D363339385F1056636F6D5F6170706C655F4D6F62696C6541737365745F436F6D666F7274536F756E64734173736574732F376235653263323261623966333162373130633563633538663034373537313261323763383037302E7A6970555348412D31537A6970095F105F68747470733A2F2F757064617465732E63646E2D6170706C652E636F6D2F323032322F6D6F62696C656173736574732F3037312D30373136322F31423036424243452D364446412D343631412D394436442D4146303741303833463841452F12001DE9EC4F101448EA405886340B681EEFB499FD78F23AD914BC1D5436333938D2202178795F10134E534D757461626C6544696374696F6E617279A3787A245C4E5344696374696F6E617279D220217C7D5741584173736574A27C24D220217F805E4855436F6D666F7274536F756E64A281245E4855436F6D666F7274536F756E6400080011001A00240029003200370049004C00510053007E0084008F00A800AF00C700DF00F800FA00FC00FE01000102010D0114011C0128012A012C012E01B401B901C401CD01D301D601DF01F401FC020802120220022E02450254025F026B026D026F02710273027502760278027A027B02A602D202D902E102EC02FE03000302030403060308030A030C030E03100312031403160318031A031C032E03300332033403360338033A033C033E03400342034403460348034A034C034E0360036B03710380039803B003CB03D903F003FA04040417042504320445044A045104AA04B004B404B50517051C05330538053D05530557056405690571057405790588058B000000000000020100000000000000820000000000000000000000000000059A"
noises["dark"]="62706C6973743030D4010203040506070A582476657273696F6E592461726368697665725424746F7058246F626A6563747312000186A05F100F4E534B657965644172636869766572D1080954726F6F748001AF10280B0C17181E1F2538393A5E5F606162636465666768696A6B6C6D166E6F7071373273747576777B7E55246E756C6CD50D0E0F101112131415165F10164855436F6D666F7274536F756E6441737365744B65795624636C6173735F10154855436F6D666F7274536F756E644E616D654B65795F10154855436F6D666F7274536F756E64506174684B65795F10164855436F6D666F7274536F756E6447726F75704B6579800680278002800310035A42726F776E4E6F697365D3190E1A1B1C1D574E532E626173655B4E532E72656C61746976658000800580045F108366696C653A2F2F2F53797374656D2F4C6962726172792F41737365747356322F636F6D5F6170706C655F4D6F62696C6541737365745F436F6D666F7274536F756E64734173736574732F346262313932333236346532356236396165663566613339656632346638363839323233343239382E61737365742F4173736574446174612FD2202122235A24636C6173736E616D655824636C6173736573554E5355524CA22224584E534F626A656374DA262728290E2A2B2C2D2E2F15313233343235363757617373657449645B6F726967696E616C55524C596173736574547970655D666F726D617456657273696F6E5D6973446F776E6C6F6164696E675F1014636F6D7061746962696C69747956657273696F6E5E636F6E74656E7456657273696F6E5A70726F706572746965735B6973496E7374616C6C6564800780038008100180260810008009095F1028346262313932333236346532356236396165663566613339656632346638363839323233343239385F1029636F6D2E6170706C652E4D6F62696C6541737365742E436F6D666F7274536F756E6473417373657473D33B3C0E3D4D5D574E532E6B6579735A4E532E6F626A65637473AF100F3E3F404142434445464748494A4B4C800A800B800C800D800E800F801080118012801380148015801680178018AF100F4E4F505152535455551458545A5B5C8019801A801B801C801D801E801F8020802080028021801F80228023802480255F100F5F556E617263686976656453697A655A536F756E6447726F7570554275696C645E5F5F52656C6174697665506174685F10155F4D6561737572656D656E74416C676F726974686D5F10155F436F6D7072657373696F6E416C676F726974686D5F10185F5F43616E5573654C6F63616C43616368655365727665725D466F726D617456657273696F6E5F1014436F6D7061746962696C69747956657273696F6E59536F756E644E616D65595F5F4261736555524C5F10105F49735A697053747265616D61626C655D5F446F776E6C6F616453697A655C5F4D6561737572656D656E745F10105F4D6173746572656456657273696F6E12001F300056394D363339385F1056636F6D5F6170706C655F4D6F62696C6541737365745F436F6D666F7274536F756E64734173736574732F346262313932333236346532356236396165663566613339656632346638363839323233343239382E7A6970555348412D31537A6970095F105F68747470733A2F2F757064617465732E63646E2D6170706C652E636F6D2F323032322F6D6F62696C656173736574732F3037312D30373136322F31423036424243452D364446412D343631412D394436442D4146303741303833463841452F12001D7FA74F10141EFC55CCE0E4ED508962DBA19558B900622DA93E5436333938D2202178795F10134E534D757461626C6544696374696F6E617279A3787A245C4E5344696374696F6E617279D220217C7D5741584173736574A27C24D220217F805E4855436F6D666F7274536F756E64A281245E4855436F6D666F7274536F756E6400080011001A00240029003200370049004C00510053007E0084008F00A800AF00C700DF00F800FA00FC00FE01000102010D0114011C0128012A012C012E01B401B901C401CD01D301D601DF01F401FC020802120220022E02450254025F026B026D026F02710273027502760278027A027B02A602D202D902E102EC02FE03000302030403060308030A030C030E03100312031403160318031A031C032E03300332033403360338033A033C033E03400342034403460348034A034C034E0360036B03710380039803B003CB03D903F003FA04040417042504320445044A045104AA04B004B404B50517051C05330538053D05530557056405690571057405790588058B000000000000020100000000000000820000000000000000000000000000059A"
noises["ocean"]="62706C6973743030D4010203040506070A582476657273696F6E592461726368697665725424746F7058246F626A6563747312000186A05F100F4E534B657965644172636869766572D1080954726F6F748001AF10280B0C17181E1F2538393A5E5F606162636465666768696A6B6C6D166E6F7071373273747576777B7E55246E756C6CD50D0E0F101112131415165F10164855436F6D666F7274536F756E6441737365744B65795624636C6173735F10154855436F6D666F7274536F756E644E616D654B65795F10154855436F6D666F7274536F756E64506174684B65795F10164855436F6D666F7274536F756E6447726F75704B657980068027800280031004554F6365616ED3190E1A1B1C1D574E532E626173655B4E532E72656C61746976658000800580045F108366696C653A2F2F2F53797374656D2F4C6962726172792F41737365747356322F636F6D5F6170706C655F4D6F62696C6541737365745F436F6D666F7274536F756E64734173736574732F363466366162656466633933653836646665613663383264356232643835613332396333383666302E61737365742F4173736574446174612FD2202122235A24636C6173736E616D655824636C6173736573554E5355524CA22224584E534F626A656374DA262728290E2A2B2C2D2E2F15313233343235363757617373657449645B6F726967696E616C55524C596173736574547970655D666F726D617456657273696F6E5D6973446F776E6C6F6164696E675F1014636F6D7061746962696C69747956657273696F6E5E636F6E74656E7456657273696F6E5A70726F706572746965735B6973496E7374616C6C6564800780038008100180260810008009095F1028363466366162656466633933653836646665613663383264356232643835613332396333383666305F1029636F6D2E6170706C652E4D6F62696C6541737365742E436F6D666F7274536F756E6473417373657473D33B3C0E3D4D5D574E532E6B6579735A4E532E6F626A65637473AF100F3E3F404142434445464748494A4B4C800A800B800C800D800E800F801080118012801380148015801680178018AF100F4E4F505152535455551458545A5B5C8019801A801B801C801D801E801F8020802080028021801F80228023802480255F100F5F556E617263686976656453697A655A536F756E6447726F7570554275696C645E5F5F52656C6174697665506174685F10155F4D6561737572656D656E74416C676F726974686D5F10155F436F6D7072657373696F6E416C676F726974686D5F10185F5F43616E5573654C6F63616C43616368655365727665725D466F726D617456657273696F6E5F1014436F6D7061746962696C69747956657273696F6E59536F756E644E616D65595F5F4261736555524C5F10105F49735A697053747265616D61626C655D5F446F776E6C6F616453697A655C5F4D6561737572656D656E745F10105F4D6173746572656456657273696F6E1203F2200056394D363339385F1056636F6D5F6170706C655F4D6F62696C6541737365745F436F6D666F7274536F756E64734173736574732F363466366162656466633933653836646665613663383264356232643835613332396333383666302E7A6970555348412D31537A6970095F105F68747470733A2F2F757064617465732E63646E2D6170706C652E636F6D2F323032322F6D6F62696C656173736574732F3037312D30373136322F31423036424243452D364446412D343631412D394436442D4146303741303833463841452F1203E673ED4F1014DC2A7ECC86F7BD051CDB9B66BE3FF02512652BCD5436333938D2202178795F10134E534D757461626C6544696374696F6E617279A3787A245C4E5344696374696F6E617279D220217C7D5741584173736574A27C24D220217F805E4855436F6D666F7274536F756E64A281245E4855436F6D666F7274536F756E6400080011001A00240029003200370049004C00510053007E0084008F00A800AF00C700DF00F800FA00FC00FE010001020108010F0117012301250127012901AF01B401BF01C801CE01D101DA01EF01F70203020D021B02290240024F025A02660268026A026C026E0270027102730275027602A102CD02D402DC02E702F902FB02FD02FF03010303030503070309030B030D030F03110313031503170329032B032D032F03310333033503370339033B033D033F03410343034503470349035B0366036C037B039303AB03C603D403EB03F503FF04120420042D04400445044C04A504AB04AF04B005120517052E05330538054E0552055F0564056C056F0574058305860000000000000201000000000000008200000000000000000000000000000595"
noises["stream"]="62706C6973743030D4010203040506070A582476657273696F6E592461726368697665725424746F7058246F626A6563747312000186A05F100F4E534B657965644172636869766572D1080954726F6F748001AF10280B0C17181E1F2538393A5E5F606162636465666768696A6B6C6D166E6F7071373273747576777B7E55246E756C6CD50D0E0F101112131415165F10164855436F6D666F7274536F756E6441737365744B65795624636C6173735F10154855436F6D666F7274536F756E644E616D654B65795F10154855436F6D666F7274536F756E64506174684B65795F10164855436F6D666F7274536F756E6447726F75704B6579800680278002800310065653747265616DD3190E1A1B1C1D574E532E626173655B4E532E72656C61746976658000800580045F108366696C653A2F2F2F53797374656D2F4C6962726172792F41737365747356322F636F6D5F6170706C655F4D6F62696C6541737365745F436F6D666F7274536F756E64734173736574732F666334383464656136643931366266316638353732396531633932653933336433616164346462312E61737365742F4173736574446174612FD2202122235A24636C6173736E616D655824636C6173736573554E5355524CA22224584E534F626A656374DA262728290E2A2B2C2D2E2F15313233343235363757617373657449645B6F726967696E616C55524C596173736574547970655D666F726D617456657273696F6E5D6973446F776E6C6F6164696E675F1014636F6D7061746962696C69747956657273696F6E5E636F6E74656E7456657273696F6E5A70726F706572746965735B6973496E7374616C6C6564800780038008100180260810008009095F1028666334383464656136643931366266316638353732396531633932653933336433616164346462315F1029636F6D2E6170706C652E4D6F62696C6541737365742E436F6D666F7274536F756E6473417373657473D33B3C0E3D4D5D574E532E6B6579735A4E532E6F626A65637473AF100F3E3F404142434445464748494A4B4C800A800B800C800D800E800F801080118012801380148015801680178018AF100F4E4F505152535455551458545A5B5C8019801A801B801C801D801E801F8020802080028021801F80228023802480255F100F5F556E617263686976656453697A655A536F756E6447726F7570554275696C645E5F5F52656C6174697665506174685F10155F4D6561737572656D656E74416C676F726974686D5F10155F436F6D7072657373696F6E416C676F726974686D5F10185F5F43616E5573654C6F63616C43616368655365727665725D466F726D617456657273696F6E5F1014436F6D7061746962696C69747956657273696F6E59536F756E644E616D65595F5F4261736555524C5F10105F49735A697053747265616D61626C655D5F446F776E6C6F616453697A655C5F4D6561737572656D656E745F10105F4D6173746572656456657273696F6E120499780056394D363339385F1056636F6D5F6170706C655F4D6F62696C6541737365745F436F6D666F7274536F756E64734173736574732F666334383464656136643931366266316638353732396531633932653933336433616164346462312E7A6970555348412D31537A6970095F105F68747470733A2F2F757064617465732E63646E2D6170706C652E636F6D2F323032322F6D6F62696C656173736574732F3037312D30373136322F31423036424243452D364446412D343631412D394436442D4146303741303833463841452F120481ED234F1014F0F31F74632B40C5F4F9AF7DD1096830ECBC71595436333938D2202178795F10134E534D757461626C6544696374696F6E617279A3787A245C4E5344696374696F6E617279D220217C7D5741584173736574A27C24D220217F805E4855436F6D666F7274536F756E64A281245E4855436F6D666F7274536F756E6400080011001A00240029003200370049004C00510053007E0084008F00A800AF00C700DF00F800FA00FC00FE01000102010901100118012401260128012A01B001B501C001C901CF01D201DB01F001F80204020E021C022A02410250025B02670269026B026D026F0271027202740276027702A202CE02D502DD02E802FA02FC02FE03000302030403060308030A030C030E03100312031403160318032A032C032E03300332033403360338033A033C033E03400342034403460348034A035C0367036D037C039403AC03C703D503EC03F6040004130421042E04410446044D04A604AC04B004B105130518052F05340539054F055305600565056D05700575058405870000000000000201000000000000008200000000000000000000000000000596"
function enable_noise() {
defaults write com.apple.ComfortSounds comfortSoundsEnabled -bool YES
defaults write com.apple.ComfortSounds lastEnablementTimestamp $(date +%s)
launchctl kill SIGHUP gui/$(id -u)/com.apple.accessibility.heard
}
function disable_noise() {
defaults write com.apple.ComfortSounds comfortSoundsEnabled -bool NO
launchctl kill SIGHUP gui/$(id -u)/com.apple.accessibility.heard
}
function change_volume() {
if [[ "$2" =~ ^[0-9]+$ ]]; then
inc="$2"
else
inc=1
fi
case "$1" in
up)
vol=$(defaults read com.apple.ComfortSounds relativeVolume)
new_vol=$(echo "scale=3; if ( $vol + .1 * $inc > 1 ) 1 else $vol + .1 * $inc" | bc)
defaults write com.apple.ComfortSounds relativeVolume -float "$new_vol"
enable_noise
;;
down)
vol=$(defaults read com.apple.ComfortSounds relativeVolume)
new_vol=$(echo "scale=3; if ( $vol - .1 * $inc < 0 ) 0 else $vol - .1 * $inc" | bc)
defaults write com.apple.ComfortSounds relativeVolume -float "$new_vol"
enable_noise
;;
*)
defaults read com.apple.ComfortSounds relativeVolume
;;
esac
}
function list_noises() {
echo "${!noises[@]}"
}
function select_noise() {
if [[ "$1" == "list" ]]; then
list_noises
else
defaults write com.apple.ComfortSounds ComfortSoundsSelectedSound -data "${noises["$1"]}"
enable_noise
fi
}
function toggle() {
status=$(defaults read com.apple.ComfortSounds comfortSoundsEnabled)
if [[ "$status" -eq 1 ]]; then
disable_noise
else
enable_noise
fi
}
function show_help() {
cat <<EOF
usage: noise [-d|-e|-t|-v [up|down]|-s [noise]|-l|-h] <noise>
-d: disable noise
-e: enable noise
-t: toggle noise
-v [up|down]: volume up|down
-s [noise]: switch to noise
-l: noises
-h: show this help
EOF
}
case "$1" in
-d*)
disable_noise
;;
-e*)
enable_noise
;;
-t)
toggle
;;
-v*)
shift
change_volume "$@"
;;
-s*)
select_noise "${2,,}" #convert to lowercase
;;
-l*)
list_noises
;;
-h|"")
show_help
;;
*)
select_noise "${1,,}"
;;
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment