kakakakakku blog

Weekly Tech Blog: Keep on Learning!

仮想オーディオデバイス「BlackHole」を使って Mac から音楽を配信する

「リモート会議」「リモート研修」のときに,Mac から直接音楽などを配信したかった.具体的には,リモート会議の開始前に無言で待っているのではなく,リラックスのために音楽を流したり,リモート研修の開始前にオーディオテストをするために音楽を流したりしたかった.

仮想オーディオデバイス「BlackHole」

Mac で仮想オーディオデバイス「BlackHole」を使うと簡単に実現できる.同僚に教えてもらった.

github.com

BlackHole のインストールは簡単で brew コマンドを使う.

$ brew cask install blackhole

インストールをすると,Mac のサウンドアイコンから「BlackHole 16ch」を確認できる.なお,メニューバーからサウンド設定を変更する Tips は前回の記事を見てもらえればと!

f:id:kakku22:20200511235805p:plain

kakakakakku.hatenablog.com

「BlackHole」を使う

BlackHole を使うフローを簡単に図解した.ポイントは2点ある.

  1. Mac 側は「出力装置」BlackHole を選ぶ
  2. Zoom などのビデオ配信ツール側は「入力装置(マイク)」BlackHole を選ぶ

設定をすると,例えば YouTube で流した音楽を Zoom に配信できる.

f:id:kakku22:20200512002255p:plain

まとめ

Mac で仮想オーディオデバイス「BlackHole」を使うと,Mac から直接音楽などを配信できる.便利!

便利すぎる!Mac のメニューバーでサウンド設定を変更するときは「Option キー」を使う

最近「リモート会議」「リモート研修」も多く,オーディオインタフェース(入出力)をよく切り替えている.今回は Mac で簡単にオーディオインタフェースを切り替える Tips を紹介する.なんと「Option キー」を使うだけ!

サウンドアイコンをメニューバーに追加する

まず,基本的な設定として,サウンドアイコンを Mac のメニューバーに追加する.「システム環境設定」「サウンド」と開き,1番下にある「メニューバーに音量を表示」を有効化する.

f:id:kakku22:20200508170302p:plain

すると,メニューバーにサウンドアイコンが表示される.

f:id:kakku22:20200508230934p:plain

クリックするとデフォルトは「内蔵スピーカー」しかなく,以下のような表示になる.

f:id:kakku22:20200508170314p:plain

例えば「AirPods Pro」を使って出力する場合は,以下のような表示になり,サウンドアイコンから直接「AirPods Pro」に切り替えられる.

f:id:kakku22:20200508170328p:plain

Option キー + サウンドアイコン

しかし,サウンドアイコンをクリックしても「出力装置」しか切り替えられず,マイクを使って話すなど「入力装置」を切り替える場合は,サウンドアイコンから「サウンド環境設定」をクリックして,切り替える必要がある.正直言って,面倒だった.

f:id:kakku22:20200508170338p:plain

そこで「Option キーを押しながらサウンドアイコンをクリック」すると,なんと「入力装置」も切り替えられるようになる!これは便利!以下は出力を「内蔵スピーカー」に切り替えて,入力を「Yeti」に切り替えた.

f:id:kakku22:20200508170351p:plain

まとめ

Mac で「Option キーを押しながらサウンドアイコンをクリック」すれば「出力装置」「入力装置」を簡単に切り替えられる!便利!

リモート環境 関連

デジタルホワイトボード環境を作るなら以下の記事も参考になるはず!

kakakakakku.hatenablog.com

Karabiner で「command + クリック」が動かなくなったら karabiner.json を確認しよう

数日前から,突然 Karabiner で「command + クリック」の組み合わせが動かなくなってしまった.事象としては,Karabiner 単体ではなく,以下の「日本語環境設定 (Complex Modifications)」を使っている場合に起きていた.ただし,Mac で US 配列を使っているため,左右の「command」を使って入力切替をする操作は必須となり,今まで通り使えるように戻すことを考えていた.

コマンドキーを単体で押したときに、英数・かなキーを送信する。(左コマンドキーは英数、右コマンドキーはかな) (rev 3)

前提

  • macOS Mojave
  • Karabiner-Elements 12.9.0

karabiner.json を修正したら解決した

結論を先に書くと,Karabiner の設定ファイル ~/.config/karabiner/karabiner.json を開き,to -> left_command -> lazyfalse に修正したら解決した.以下の karabiner.json は一部を抜粋している.もし「右 command + クリック」を使う場合は,同様に to -> right_command -> lazyfalse にする.

{
  "rules": [
    {
      "description": "コマンドキーを単体で押したときに、英数・かなキーを送信する。(左コマンドキーは英数、右コマンドキーはかな) (rev 3)",
      "manipulators": [
        {
          "from": {
            "key_code": "left_command",
            "modifiers": {
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "left_command",
              "lazy": false
            }
          ],
          "to_if_alone": [
            {
              "key_code": "japanese_eisuu"
            }
          ]
        }
      ]
    }
  ]
}

なお,ターミナルから ~/.config/karabiner/karabiner.json を直接開いても良いし,Karabiner 設定画面の Misc から,右下にある「Open config folder」をクリックして,慣れたテキストエディタを使うこともできる.

f:id:kakku22:20200203210021p:plain

EventViewer

Karabiner の動作に違和感を感じたら,EventViewer を使うと問題判別を素早くできる.例えば「command」を押しながら,EventViewer の右下にある Mouse Area をクリックすれば,イベントを確認できる.

f:id:kakku22:20200203210032p:plain

正常時は以下のように click_count:1 flags:cmd となる.

type:button_down     code:0          name:button1         misc:{x:729,y:111} click_count:1 flags:cmd
type:button_up       code:0          name:button1         misc:{x:729,y:111} click_count:1 flags:cmd

動かなくなったときは click_count:1 になっていた.ようするに「command + クリック」と操作しても,実際には「command」のイベントが送信されず,認識されていなかった.

type:button_down     code:0          name:button1         misc:{x:729,y:111} click_count:1 
type:button_up       code:0          name:button1         misc:{x:729,y:111} click_count:1 

lazy とは?

最後に Karabiner のドキュメントを読んで,lazy の意味を調べておく.個人的な意訳も含めて整理すると,lazy とは「別のキーと一緒に押すまで,該当のキーのイベントを送信しない設定」と言える.より具体的に left_command + c を例にすると,lazy: true の場合は left_command を押している間はイベントを送信せず,続いて c を押したタイミングで合わせてイベントを送信する.よって,lazy「command + クリック」の相性が悪かったんだと思う.

karabiner-elements.pqrs.org

まとめ

  • Karabiner で違和感を感じたら EventViewer を使うと問題判別を素早くできる
  • もし「command + クリック」の組み合わせが動かなくなってしまった場合は karabiner.jsonlazy の設定を確認する

シンタックスハイライトをしたコードを PowerPoint / Keynote に載せる

日頃からプレゼンテーション資料を作る場面が多く,PowerPoint と Keynote をよく使う.さらにプレゼンテーション資料にシンタックスハイライトをしたコード(JSON / YAML なども含む)を載せることもある.今まで何度も「どうやってシンタックスハイライトをしてる?」と聞かれたため,毎回同じことを教えるのではなく,サッと URL を渡せるようにブログにまとめることにした.

なお,2017年に公開した 「個人的な Keynote ベストプラクティス 2017」 highlight コマンド と pbcopy コマンドを組み合わせる方法を載せているけど,今回はさらに選択肢を増やして「計3種類」紹介したいと思う.

  1. Visual Studio Code を使う
  2. highlight コマンド と pbcopy コマンドを組み合わせて使う
  3. Carbon を使う

kakakakakku.hatenablog.com

1. Visual Studio Code を使う

最もお手軽に使えるのは Visual Studio Code (VS Code) だと思う.VS Code から直接コピーすると,PowerPoint / Keynote にシンタックスハイライトをしたコードをペーストできる.案外知られてなく,紹介すると驚かれることもある.なお,IntelliJ IDEA / GoLand なども同様に使えるため,慣れたエディタから直接コピーすると良いと思う.以下は A Tour of Go のサンプルコードを Keynote に載せている.

f:id:kakku22:20191001233130p:plain

2. highlight コマンド と pbcopy コマンドを組み合わせて使う

次に紹介するのは highlight コマンド と pbcopy コマンドを組み合わせる方法で,数年前から個人的にずっと使っている.以下のようにファイルを指定してコマンドを実行すると,自動的にクリップボードに保存されるため,そのまま PowerPoint / Keynote にペーストできる.以下は同様のサンプルコードを Keynote に載せている.

$ highlight -O rtf main.go | pbcopy

f:id:kakku22:20191001233156p:plain

また highlight コマンドに --style オプションを設定するとデザインを変えることもできる.以下は Moria スタイルを設定し,同様のサンプルコードを Keynote に載せている.

$ highlight -O rtf --style Moria main.go | pbcopy

f:id:kakku22:20191001233215p:plain

highlight コマンドの詳細は以下に載っている.

www.andre-simon.de

3. Carbon を使う

「Carbon」を使うと,シンタックスハイライトをしたコードを画像に変換できる.GitHub の実装を読むと highlight.js というライブラリに依存していた.Carbon はデザインに限らず,ウィンドウサイズ/行数/背景色など自由度高く設定できる点が良く,以下は同様のサンプルコードを Carbon で調整し,Keynote に載せている.

f:id:kakku22:20191001233234p:plain

まとめ

PowerPoint / Keynote にシンタックスハイライトをしたコード(JSON / YAML なども含む)を載せる方法を「計3種類」紹介した.目的により,自分に合った方法を選ぶと良いと思う.よく聞かれることは今後も積極的にブログに書いていくぞ!

関連記事

以下の記事も「プレゼンテーション中にうまくデモを見せる Tips」をよく聞かれるため,まとめた記事となる.

kakakakakku.hatenablog.com

Mac で「なめらかに」デモを見せるために必須なアプリと機能

技術講師としてプレゼンテーションをしながらデモをする場面が多く,無駄な操作をせず,Mac を「なめらかに」操作することを意識している.「なめらかな」操作をするために個人的に必須なアプリと機能があり,最近紹介する機会も増えているため,記事にまとめることにした.

ウィンドウ操作「Magnet」

Mac でウィンドウ操作を「なめらかに」するために「Magnet」を購入している.現時点だと250円で購入できる.ウィンドウの「移動」「リサイズ」なら関連するアプリとして有名な「Spectacle」も便利だけど,Magnet なら Windows でよく使う「スクリーンの端にウィンドウ当ててリサイズするジェスチャー」にも対応していて,適材適所に使える.正直 Magnet に慣れすぎてしまって離れられなくなっている.僕は以下のショートカットをよく使う.

  • 最大 : ^ ⌘ ↑
  • 左 : ^ ⌘ ←
  • ^ ⌘ →

Magnet

Magnet

  • CrowdCafé
  • Productivity
  • $1.99
apps.apple.com

magnet.crowdcafe.com

ズーム「2本指でピンチ」

Chrome を使ってウェブサイトを「なめらかに」ズームする場合,Mac のトラックパッドで「2本指でピンチ」を使う.ブラウザ側の機能(⌘ +)を使うと,ウェブサイトのスタイルが崩れることが多く,基本的に使わなくて良いと思う.

設定は「システム環境設定 → トラックパッド → スクロールとズーム」を開き「拡大/縮小」を有効化する.1日使っていると動かなくなることもあり,その場合は「設定 OFF → 数秒待機 → 設定 ON」で直る.

f:id:kakku22:20190828221052p:plain

ズーム「スクロールジェスチャ」

基本的に「2本指でピンチ」を使うけど,例えば Chrome の DevTools など「2本指でピンチ」に未対応の場所もあり,その場合は Mac の「スクロールジェスチャ」を使う.

設定は「システム環境設定 → アクセシビリティ → ズーム機能」を開き「スクロールジェスチャと修飾キーを使ってズーム」を有効化する.ショートカットはデフォルトのまま ^ Control にしているため ^ を押しながらトラックパッドを上下にスクロールするとズームできるようになる.紹介した2種類のズームを覚えておくと良いと思う.

f:id:kakku22:20190828221108p:plain

ドラッグ「3本指のドラッグ」

「3本指のドラッグ」は去年に記事を書いているけど,まだ未設定の人が多いように思う.記事にも書いているけど,例えば「文字をドラッグしてコピーするとき」「ウィンドウをスクリーン側に移動するとき」など,「3本指のドラッグ」を使うとスムーズに操作できるようになる.PowerPoint や Keynote でスライドを作るときにも使えて,正直「3本指のドラッグ」を使わないと作業の効率さが大きく変わってしまう.

設定は「システム環境設定 → アクセシビリティ → マウスとトラックパッド」を開き「トラックパッドオプション → ドラッグを有効にする → 3本指のドラッグ」を有効化する.本当にオススメ!

f:id:kakku22:20190828223446p:plain

kakakakakku.hatenablog.com

ランチャー「Alfred」

Mac でアプリを「なめらかに」開くために,Dock から選ぶのではなくランチャーから起動する.Spotlight もあるけど,個人的には「Alfred」に慣れてしまっていて,ずっと使っている.起動するときのショートカットは ⌥ Space にしている.

「Alfred」から iTerm2 や Visual Studio Code などのアプリを開くこともできるし,接頭辞に ' を付けるとファイル検索ができるし,Google で検索をするときにも Alfred を使う.ランチャーをうまく使いこなせるとデモに限らず日常的な操作が効率的になる.

www.alfredapp.com

まとめ

Mac を「なめらかに」操作しよう!練習あるのみ!