- 投稿日:2020-05-28T13:13:41+09:00
ビデオチャット中に左シフトキーを押している間だけミュート解除し会話できるアプリをつくった
Google MeetやZOOMでビデオチャットをしているとき、マイクに雑音が入らないよう自分の発言中以外は基本的にミュートしているのですが、
ミュート解除を切り忘れたり、別画面を開いているとすぐにミュート解除できなかったりで、面倒だったのでキーボードの特定のキーを押している間だけミュートを解除してくれるアプリ「Cough Switch」を作成しました。トランシーバーやレコーディングスタジオのトークバック機能のようなイメージです。
AppleScriptでマイクの音量を操作する
Macの場合、
システム環境設定 > サウンド > 入力
でマイク設定を操作することができます。
この入力音量を0にするとミュートされます。applescripttell application "System Events" to set volume input volume 100このスクリプトをjsから実行するにはこんな感じ
javascriptconst applescript = require('applescript'); applescript.execString('tell application "System Events" to set volume input volume 100', function);
iohook
ですべてのキーボードイベントを取得するさくっと作りたいのでまたElectronで簡単にアプリ化していきます。
Webのいつも通りにキーボード操作を取得しようと、
document.addEventListener("keydown", function)
としてしまうと、Windowがアクティブになっていないとキーボードイベントを取得できません。
electron.globalShortcut
ではkeyup
イベントを取得できないので却下。他に探してみたところiohookってやつで取得できるみたいです。
(特定のバージョンのNodeとElectronしかサポートしていないらしくちょっとはまった)javascriptconst iohook = require('iohook'); const KEYCODE = 42; // left shift key iohook.on('keydown', (msg) => { if (msg.keycode === KEYCODE) { talk(); } }); iohook.on('keyup', (msg) => { if (msg.keycode === KEYCODE) { mute(); } });どのキーに割り当てるか悩みましたが2つあるので、左シフトキーにしました。
Electronの最前面の触れない透明なWindowを作成
ミュート解除中のアイコンを表示させるために、最前面に触れないWindowを作成します。
さらに邪魔にならないよう背景を透明にします。javascriptconst appWindow = new BrowserWindow({ transparent: true, frame: false, resizable: false, alwaysOnTop: true, }); appWindow.setIgnoreMouseEvents(true); appWindow.loadURL(`file://${__dirname}/index.html`);これで最前面にHTMLが表示されます。
あとはキーボードイベントに応じて、Windowへ状態を送り、CSSでアイコンを表示させます。javascriptappWindow.webContents.send('talk');おわり
あとは前にやった MacBook Proの充電器の情報をメニューバーに表示するElectronアプリをつくった と同様にアプリケーション化して完成です。
ソースコードはこちら(https://github.com/narikei/cough-switch)
おわりのおわり
デフォルトだとスピーカーの設定しかできないけど、
こういうときこそタッチバーの出番なのではないかな?
バックグラウンドのアプリでタッチバーを使えないのどうにかしてほしい。
- 投稿日:2020-05-28T02:07:06+09:00
Mac OS (Catalina) にHomebrewでgnuplot5をインストール
はじめに
Mac OS (Catalina) でgnuplotを使うためのメモ。
環境
MacOS 10.15.4
Xcode インストール済みHomebrewのインストール
ターミナルで以下を実行。
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"brewでのエラーについては以下「エラーが出る場合」を参照。
gnuplotのインストール
ターミナルで、
$ brew upgrade $ brew install gnuplotを実行。
$ which gnuplot /usr/local/bin/gnuplotとなれば成功。
$ gnuplotで起動する。
エラーが出る場合
Catalinaではrootディレクトリが書き込み不可になり、Homebrewが死んだり、色々な問題が発生する。installかupgradeで以下のエラーが出ることがある。
$ brew install gnuplot Updating Homebrew... Error: The following directories are not writable by your user: /usr/local/bin /usr/local/include /usr/local/lib /usr/local/share /usr/local/share/locale You should change the ownership of these directories to your user. sudo chown -R $(whoami) /usr/local/bin /usr/local/include /usr/local/lib /usr/local/share /usr/local/share/locale And make sure that your user has write permission. chmod u+w /usr/local/bin /usr/local/include /usr/local/lib /usr/local/share /usr/local/share/localeこの場合は、言われるがままに、sudo chownとchmodコマンドを実行する。
ついでに、$ brew cleanup $ brew doctorすると、Xcodeが古いと言われたので、App StoreでXcodeを最新版(11.5)にアップデート。まだ
brew doctor
でWarningがいくつも出てるが、とりあえず無視する。出力ターミナルについて
gnuplotといえば、--with-x11や--with-aquaterm、それと--with-pdfオプションをつけてインストールするのがお決まりだが、
$ brew info gnuplotすると分かるように、HEADオプションしか存在しないので、今回はオプション無しでインストールした。するとデフォルトの出力はqtになる。
gnuplot> set terminalで出力ターミナル一覧をみてもaquatermやx11は存在しない。
一瞬マジかよと思うが、実はqt出力は優秀である。下図がグラフ出力ウィンドウ。左上のアイコンをクリックすると、PDF、画像(PNG)での保存やクリップボードやプリンタへの出力ができるので問題ない。また、sin^2{/symbol q}
のように指定するとギリシャ文字や上付き文字も指定できる。l
で対数目盛、r
でルーラーなどのウィンドウコマンドも健在。epsファイルについては、以下のようにpostscript出力を使って直接生成できる。
gnuplot> set terminal postscript color eps gnuplot> set out "aaa.eps" gnuplot> replot gnuplot> set out #これをしておかないとplotのたびにaaa.epsに出力され続ける。
- 投稿日:2020-05-28T01:43:47+09:00
bashrc改修備忘録
.bashrcalias ll='ls -la' # 出力の後に改行を入れる function add_line { if [[ -z "${PS1_NEWLINE_LOGIN}" ]]; then PS1_NEWLINE_LOGIN=true else printf '\n' fi } PROMPT_COMMAND='add_line' source ~/.git-prompt.sh export PS1='\t \[\e[36m\]\u\[\e[0m\] \[\e[33m\] \W\[\e[0m\]\[\e[1;32m $(__git_ps1 "(%s)") \[\e[0m\] \n\$'
- 投稿日:2020-05-28T01:43:47+09:00
Macのターミナル表示をいじったら幸せになった(.bashrc改修備忘録)
- とりあえずここで幸せになったのでこちらへどうぞ
https://qiita.com/hmmrjn/items/60d2a64c9e5bf7c0fe60
以下備忘録
- Gitフォルダだった場合にいい感じにする為に ~/.git-prompt.shを作成して以下のソースを入れとく
https://github.com/git/git/edit/master/contrib/completion/git-prompt.sh
- 色とかつけたかったら以下の感じ
.bashrc# 出力の後に改行を入れる function add_line { if [[ -z "${PS1_NEWLINE_LOGIN}" ]]; then PS1_NEWLINE_LOGIN=true else printf '\n' fi } PROMPT_COMMAND='add_line' source ~/.git-prompt.sh export PS1='\t \[\e[36m\]\u\[\e[0m\] \[\e[33m\] \W\[\e[0m\]\[\e[1;32m $(__git_ps1 "(%s)") \[\e[0m\] \n\$'
- 投稿日:2020-05-28T01:43:47+09:00
Macのターミナル表示をいじったらモノクロだった私の人生に色がつきました。(.bashrc改修備忘録)
Macで開発しているとターミナルはよく利用しますよね?
デフォルトで表示されている文字列はなんか長いし見づらい!
そんな方は.bashrcを編集して好きな表示にしてしまいましょう!
(編集後はsource .bashrcを忘れずに!)
こちらのページ( https://qiita.com/hmmrjn/items/60d2a64c9e5bf7c0fe60 )を参考にさせていただきました!
詳しくはそちらを見てください。
このページではわたしが利用したものをご紹介します。
書式
sampleexport PS1='Hello Prompt! \# \t \w \$ '表示する内容を選ぶ
記号 意味 例 \h ホスト名 ka2ya's Macbook \u ユーザ名 ka2ya \w ディレクトリ(フルパス) ~/Documents/GitHub \W ディレクトリ GitHub \t 時間 (24形式) 23:29:38 \T 時間 (12形式) 11:29:38 \@ AM / PM PM \d 日付 Wed Jun 20 \D 日時 18/06/20 23:29:38 # コマンドの番号 (1, 2, 3...) 1 \n 改行 \$ 一般ユーザーの時 $、rootの時 # を表示 $ エスケープシーケンスで囲んで色の指定も可能
export PS1='装飾なし \[\e[32m\] ここは緑色 \[\e[0m\] 装飾なし \$ '
値 文字色 値 背景色 30m 黒 40m 背景黒 31m 赤 41m 背景赤 32m 緑 42m 背景緑 33m 黄 43m 背景黄 34m 青 44m 背景青 35m 紫 45m 背景紫 36m 水 46m 背景水 37m 灰 47m 背景灰 設定例(私のやつ)
.bashrc# 出力の後に改行を入れる function add_line { if [[ -z "${PS1_NEWLINE_LOGIN}" ]]; then PS1_NEWLINE_LOGIN=true else printf '\n' fi } PROMPT_COMMAND='add_line' source ~/.git-prompt.sh export PS1='\t \[\e[36m\]\u\[\e[0m\] \[\e[33m\] \W\[\e[0m\]\[\e[1;32m $(__git_ps1 "(%s)") \[\e[0m\] \n\$'※ Gitフォルダだった場合にいい感じにする為に
~/.git-prompt.shを作成して以下のソースを入れとく
https://github.com/git/git/edit/master/contrib/completion/git-prompt.sh感想
「カラーがあれば、まいにちたのしい。」 by.GameboyColor
- 投稿日:2020-05-28T01:43:47+09:00
Macのターミナル表示をいじったらモノクロだった私の人生に色がつきました。
Macで開発しているとターミナルはよく利用しますよね?
デフォルトで表示されている文字列はなんか長いし見づらい!
そんな方は.bashrcを編集して好きな表示にしてしまいましょう!
(編集後はsource .bashrcを忘れずに!)こちらのページ( https://qiita.com/hmmrjn/items/60d2a64c9e5bf7c0fe60 )を参考にさせていただきました!
このページではわたしが利用したものをご紹介します。書式
sampleexport PS1='Hello Prompt! \# \t \w \$ '
記号 意味 例 \h ホスト名 ka2ya's Macbook \u ユーザ名 ka2ya \w ディレクトリ(フルパス) ~/Documents/GitHub \W ディレクトリ GitHub \t 時間 (24形式) 23:29:38 \T 時間 (12形式) 11:29:38 \@ AM / PM PM \d 日付 Wed Jun 20 \D 日時 18/06/20 23:29:38 # コマンドの番号 (1, 2, 3...) 1 \n 改行 \$ 一般ユーザーの時 $、rootの時 # を表示 $ エスケープシーケンスで囲んで色の指定も可能
export PS1='装飾なし \[\e[32m\] ここは緑色 \[\e[0m\] 装飾なし \$ '
値 文字色 値 背景色 30m 黒 40m 背景黒 31m 赤 41m 背景赤 32m 緑 42m 背景緑 33m 黄 43m 背景黄 34m 青 44m 背景青 35m 紫 45m 背景紫 36m 水 46m 背景水 37m 灰 47m 背景灰 設定例(私のやつ)
.bashrc# 出力の後に改行を入れる function add_line { if [[ -z "${PS1_NEWLINE_LOGIN}" ]]; then PS1_NEWLINE_LOGIN=true else printf '\n' fi } PROMPT_COMMAND='add_line' source ~/.git-prompt.sh export PS1='\t \[\e[36m\]\u\[\e[0m\] \[\e[33m\] \W\[\e[0m\]\[\e[1;32m $(__git_ps1 "(%s)") \[\e[0m\] \n\$'※ Gitフォルダだった場合にいい感じにする為に
~/.git-prompt.shを作成して以下のソースを入れとく
https://github.com/git/git/edit/master/contrib/completion/git-prompt.sh感想
「カラーがあれば、まいにちたのしい。」 by.GAMEBOY COLOR
- 投稿日:2020-05-28T01:43:47+09:00
Macのターミナル表示をいじってモノクロな人生に色をつけよう
Macで開発しているとターミナルはよく利用しますよね?
デフォルトで表示されている文字列はなんか長いし見づらい!
そんな方は.bashrcを編集して好きな表示にしてしまいましょう!
(編集後はsource .bashrcを忘れずに!)こちらのページ( https://qiita.com/hmmrjn/items/60d2a64c9e5bf7c0fe60 )を参考にさせていただきました!
このページではわたしが利用したものをご紹介します。書式
sampleexport PS1='Hello Prompt! \# \t \w \$ '
記号 意味 例 \h ホスト名 ka2ya's Macbook \u ユーザ名 ka2ya \w ディレクトリ(フルパス) ~/Documents/GitHub \W ディレクトリ GitHub \t 時間 (24形式) 23:29:38 \T 時間 (12形式) 11:29:38 \@ AM / PM PM \d 日付 Wed Jun 20 \D 日時 18/06/20 23:29:38 # コマンドの番号 (1, 2, 3...) 1 \n 改行 \$ 一般ユーザーの時 $、rootの時 # を表示 $ エスケープシーケンスで囲んで色の指定も可能
export PS1='装飾なし \[\e[32m\] ここは緑色 \[\e[0m\] 装飾なし \$ '
値 文字色 値 背景色 30m 黒 40m 背景黒 31m 赤 41m 背景赤 32m 緑 42m 背景緑 33m 黄 43m 背景黄 34m 青 44m 背景青 35m 紫 45m 背景紫 36m 水 46m 背景水 37m 灰 47m 背景灰 設定例(私のやつ)
.bashrc# 出力の後に改行を入れる function add_line { if [[ -z "${PS1_NEWLINE_LOGIN}" ]]; then PS1_NEWLINE_LOGIN=true else printf '\n' fi } PROMPT_COMMAND='add_line' source ~/.git-prompt.sh export PS1='\t \[\e[36m\]\u\[\e[0m\] \[\e[33m\] \W\[\e[0m\]\[\e[1;32m $(__git_ps1 "(%s)") \[\e[0m\] \n\$'※ Gitフォルダだった場合にいい感じにする為に
~/.git-prompt.shを作成して以下のソースを入れとく
https://github.com/git/git/edit/master/contrib/completion/git-prompt.shまとめ
「カラーがあれば、まいにちたのしい。」 by.GAMEBOY COLOR