DEV Community

Takaya Kobayashi
Takaya Kobayashi

Posted on

published: false の記事供養 (2018/05 版)

忙しさにかまけて、書き出しだけ書いてそのまま仕上がらなかった記事は Chrome のタブに開きっぱなしになっているのだけど、だいぶ日数が経って書き上がる気がしなくなってしまったのでまとめて放流して供養する。


Slack から Google Home を喋らせる

3月のはじめごろに Google Home Mini を買った。スマートスピーカーがブームになってきた頃は、みんなそんなに喋るスピーカーがほしいんだろうか?と懐疑的だったが、お試しで1台買った。我が家では、喋るラジオみたいな役職に就いて便利だったので1台買い増して居間と寝室の2台構成となった。

ところで、とても無益な話になってしまうのだが、私の妻は大変なものぐさで Slack で連絡をして通知音が鳴っても「なんか言ってるんだろうなー」とおもうだけで中身を確認してくれない習性がある。当人もその自覚があり、「Google Home 買ったんだしなんか伝えたい時は Google Home が喋れば聞いてやらんこともない(意訳)」というオーダーが入ったので日曜大工をがんばることになった。

いろいろ調べたが Google Homeの喋らせ方 に書かれているように Google Home と同じネットワークの中に何らかの司令塔がないと喋れないようだった。

そこで、随分長らく買いそびれていた Raspberry Pi を買った。これもざざっと調べてスイッチサイエンスさんのスターターキット( https://www.switch-science.com/catalog/3559/ )を買った。ちゃちゃっと組み立てて刺すだけで Linux が立ち上がって少し感動した。ただ、我が家は HDMI のディスプレイを置いている位置には使える LAN ケーブルがなくて、運用の際には別の位置に置いて有線で使いたかったので、最初のセットアップを無線でやって ssh でログインできるところまでやって、勢いで有線で切り替える少々トリッキーなセットアップをした。祈りながら ssh がつながった時も少し感動した。

ささっと Node.js をインストールして、前掲の記事で紹介されていた https://github.com/noelportugal/google-home-notifier で様子を探ってみる。試しに喋らせてみると

Please fix your application to use the native API of Avahi!
Enter fullscreen mode Exit fullscreen mode

というような WARN が出るが、調べると https://github.com/thkl/homebridge-homematic/issues/41 なんか大変らしい。

それはそれとして、google-home-notifier が日本語を話してくれない問題があってコード読んだらそんなに大したことをしてなかったので、自分で再実装することにした。

https://github.com/e-jigsaw/google-home-notifier


ここまで書いて力尽きていた。現在我が家は Slack から Telegram に移行してしまったので、Slack のシステムは止めてしまった。


Electron のアプリから TouchBar に UI をつくる

MacbookPro を新調して、TouchBar が搭載されたので何かできないかな〜とぼんやりおもってたら Electron で TouchBar を操作できる API が搭載されていることを知ったので触ってみる。Chrome Extension で特定ページで TouchBar に何らかを出して便利になったりすると面白そう。

https://github.com/electron/electron/blob/master/docs/api/touch-bar.md

この辺の Doc を読みつつ。

// ...
const touchBar = new TouchBar([
  new TouchBarLabel({
    label: 'test'
  })
])
// ...
mainWindow.setTouchBar(touchBar)
// ...
Enter fullscreen mode Exit fullscreen mode

こんな感じで書くだけで Label が表示できた。

  new TouchBarButton({
    label: '➡️',
    click: () => {
      console.log('yo')
    }
  })
Enter fullscreen mode Exit fullscreen mode

これで yo yo できるボタンが作れた。


  new TouchBarScrubber({
    items: [{
      label: 'foo'
    }, {
      label: 'bar'
    }],
    select: index => console.log(index),
    showArrowButtons: true,
    selectedStyle: 'background'
  })
Enter fullscreen mode Exit fullscreen mode

セレクタはこんな感じ。


これもここで力尽きている。そもそも TouchBar まわりのドキュメントが少なくて、すぐにソース掘ったりしなきゃいけなくなったりしてまだ望みの UI というか、システムが作れていない。

Electron 製のアプリは2コぐらい並列して開発を続けているが、どちらもあまり時間が取れていなくて進捗がない...。


もっと下書きがあった気がしたんだけど、dev.to で下書いていたのはこの2本だった。
もっと継続的にアウトプットをデリバリーしていきたい...。

Top comments (0)