ikmnjrd.github.io

alacrittyでbeep音を鳴らす(Mac,Linux)

目次

自分のLinux(X Window)環境ではハマったのでそれの紹介。Macでも設定したが得に難しいことはなかった。

前提

beepと度々出てくるがエイリアスでそれぞれの環境で次の設定を.zshenvにしている

# Mac
alias beep="afplay /System/Library/Sounds/Submarine.aiff"

# Linux
alias beep="paplay /usr/share/sounds/freedesktop/stereo/bell.oga"

Macでの設定

[bell]
command = { program = "osascript", args = ["-e", "beep"] }

Linuxでの設定

[bell]
command  = { program = "/usr/local/bin/alacritty-bell", args = [] }

yamlに書いたスクリプトを自分で書いてインストール(以下の例では/usr/local/bin/にしているがお好きなところで。不要になったらrmでOK)

# /usr/local/bin/alacritty-bell
#!/bin/sh
# 最初の 2 つの引数 "-e" "beep" を捨てて残りを無視
shift 2
exec paplay /usr/share/sounds/freedesktop/stereo/bell.oga
sudo install -m 755 alacritty-bell /usr/local/bin/alacritty-bell

# テストとして
printf '\a'
設定のポイント

以下のように設定しても実行時には鳴らない。

[bell]
command = { program = "paplay", args = ["/usr/share/sounds/freedesktop/stereo/bell.oga"] }

alacrittyのログをalacritty -vvvで起動してprintf '\a'を実行してみると次のように、-e beepというオプションが追加されてしまっている。(今思ったがosascriptに渡したいargsをLinux環境でも渡されてることが原因?未検証です)

[75.645577126s] [DEBUG] [alacritty] Launched paplay with args ["-e", "beep", "/usr/share/sounds/freedesktop/stereo/bell.oga"]

おまけ

tmuxのコンフィグ

参考文献