私がHammerspoonで遊び始めたとき、私はそれで何ができるかを見るためにAPI全体を閲覧しました。 私の目はカテゴリhs.sound
に落ち、私はその瞬間に響板を構築しなければならないことを知っていました。 私は私のハイパーキーといくつかの本当に便利なキーバインドを設定したら、私は仕事に行きました。
しばらくして、私はボタンを押すだけで”BA-DUM-TISS”という音で同僚のしゃれを完成させることができました。 またはWarcraftのPeonとの会議を終了して”仕事の仕事”と言っています。 私の個人的なお気に入りは、完全に恣意的な”エレベーターの音楽”と”Driving home for Christmas”の紹介でした。
セットアップ
私が言うとき、私を信頼して、コードは難しい部分ではありません。 難しい部分は、使用する良いオーディオ断片を見つけることです。 あなたがインスピレーションを探しているなら、見て私の瞬間のウェブサイトを持っています。 彼らは様々な映画、歌、さらにはゲームからの小さなサウンドスニペットの華麗なコレクションを持っています。
あなたはいくつかの音を収集したら、Hammerspoonであなたの響板の構築を開始することができます。 物事を管理しやすくするために、キーとサウンドファイルの間のマッピングはテーブルに格納されます。 このテーブルは、指定されたキーにサウンドファイルをバインドし、関数によって読み取られます。 ここに私の設定の一部があります:
local soundBoard = {
badumtiss = { key = '1', file = 'badumtiss.mp3' },
metalgearsolid = { key = '2', file = 'metalgearsolid.mp3' },
winError = { key = '3', file = 'windows-error.mp3' },
sadtrombone = { key = '4', file = 'sadtrombone.mp3' },
crickets = { key = '5', file = 'crickets.mp3' },
batman = { key = '6', file = 'batman-transition.mp3' },
shocked = { key = '7', file = 'shocked.mp3' },
inception = { key = '8', file = 'inceptionbutton.mp3' },
haGay = { key = '9', file = 'ha-gay.mp3' },
workwork = { key = '0', file = 'wc-work-work.mp3' },
workComplete = { key = '-', file = 'wc-work-complete.mp3' },
ns = { key = '=', file = 'ns-ding-dong.mp3' },
-- ... many more here
}-- Initialise Soundboard!
for n,s in pairs(soundBoard) do
-- Change the path here to where your sound files are stored:
s.sound = hs.sound.getByFile(os.getenv("HOME") .. '/.hammerspoon-assets/soundboard/' .. s.file) -- Bind to Hyper+Cmd+s.key
hyper.bindKeyWithModifiers(s.key, {'cmd'}, function()
s.sound:stop()
s.sound:play()
end)
end
私のファイルのテーブルは、ほぼすべてのキーのエントリを保持していますが、このサンプルではアイデアが十分に説明されているため、それらの大部分 その下のforループ(-- Initialise Soundboard!
と表示されます)は、このテーブルをループし、指定されたキーを指定されたサウンドを再生する関数にバインドします。 指定されたパス(~/.hammerspoon-assets/soundboard/
)にサウンドを入れるか、それに応じてパスを調整してください。