Linux で入力デバイスファイルのパスを特定する

入力デバイスの出力(?)を知りたい場合、/dev/input などを見ると思います。 ただ、このディレクトリには event16 みたいなワケわからん名前しかないので困る、ということで ID でリンクしてある /dev/input/by-id を見たりします。 しかし、ID でリンクしてくれないデバイスも結構あったりします。 そこで /proc/bus/input/devices を見たりするんですが、ここからデバイスファイルを抜きだすのはちょっと面倒。 ということで書いた簡易なスクリプトです。

引数なしでデバイスのリスト

$ find-input-devices
/home/anekos/bin/find-input-device <DEVICE_NAME>

Current deivces:
Sleep Button
...
Keebio The Nyquist Keyboard
...
DELL Dell TP713 Wireless Touchpad Mouse

バイスリストの名前を指定でデバイスファイルのパスを出力

$ find-input-device 'Keebio The Nyquist Keyboard'
/dev/input/event18

ソースコード

#!/bin/bash

set -euC

# exec 5> /tmp/xmosh/shell-script-debug.out
# BASH_XTRACEFD="5"
# PS4='$LINENO: '
# set -x

if [ "$#" -lt 1 ]
then
  exec >&2
  echo "$0 <DEVICE_NAME>"
  echo ''
  echo 'Current deivces:'
  grep '^N: Name=' /proc/bus/input/devices | sed 's/.*="//' | sed 's/"$//'
  exit 1
fi

function die {
  exit 1
}

NAME="$1"

dev="$(grep -A 10 "$NAME" /proc/bus/input/devices | grep '^H:')" || die
dev="$(expr "$dev" : '.*\(event[0-9]\+\)')" || die

echo "/dev/input/$dev"

500円くらいで作る静電タッチキーボード

Wii リモコンと画像ビューワで画像の仕分けをしてたけど、ずっとボタンを押していると疲れる!

ということで、静電式のタッチ仕様のキーボード作ったよ。

超簡単につくれるので、紹介します。

パーツリスト

  • TTP229 タッチセンサー
  • Pro Micro
  • 適当な電線

あと、好きにすれば良いですが、自分は適当に100均タッパーに詰め込みました。

配線

写真取るのわすれました。 簡単なのでわかると思う。

設定用ジャンパ

TTP299 は、いくつかモードがあるようですが今回は 16キー使えて同時認識は一つだけのモードを使います。 なので、左上に2段あるジャンパ用の穴の下段左から3番目を適当な線で接続します。

↓の赤いところね。

しゃしん

Pro Micro と接続

TTP229 の上には沢山穴が空いてますが、今回は左の4つしか使いません。

  • GND と VCC は、そのまま Pro Micro の GND と VCC に。
  • SCL は Pro Micro の 8 ピン
  • SDO は Pro Micro の 9 ピン

プログラム書き込み

Arduino IDE で Leonardo を選択して、↓を書き込みます。

https://gist.github.com/anekos/eee55724b1aa22298337b65b8ef46adc

これで終りです。 ↑のコードでは、雑に文字を出力していますが Arduino Reference を参照して適当なコードに書きかえると良いと思います。 自分の場合、使う側で適当にやるので特に意味のある出力にはしていません。 (chrysoberyldevilnputを組合せて使用してる)

お買い物リスト

ずいぶん昔に買ったので、違う店なんですが、参考に貼っておきます。

あわせても500円くらいですね。

完成品

ぷっくりシールが貼ってありますが、静電容量式で近くに指をやるだけでも反応するので、ちゃんと使えます。 下の物体は、100均のタッパーです。 センサーの裏からタッパーの中に配線したかったので、TTP229 のピンヘッダはもいでます。

しゃしん

自分では実用してるけど、面倒で紹介とかしてなかったアプリ達

自分では実用してるけど、面倒で紹介とかしてなかったかわいそうなアプリ達。 もっと詳しく書けというと、書く。

hugo

シェルスクリプト用のフラグ管理コマンド。 KVS にもなる。 SQLite 使ってる。

chrysoberyl

画像ビューワ

  • キーボード操作 (Vim っぽい雰囲気)
  • シェルスクリプトと連携しやすい
  • zip などのアーカイブも見れる
  • PDF 見れる
  • HTTP 上のも見れる
  • 目玉を光らせたり、目線入れたり簡易な編集
  • 色々

footprint: Bookmark with footprint

Web 上の連載記事を追いかけるための Firefox 拡張。 「次のページ」みたいなリンクを踏むと自動でリストに追加されていく (だから footprint)

syno: For Synology DSM

Synology の NAS 用の CLI。 今のところ、Audio Station 向け。

locatefs

検索用の仮想的なファイルシステムを作成する。 ディレクトリを作ると、ディレクトリ名で locate 検索をして検索結果をディレクトリの中身とする。

nox

Elasitcsearch を使ったドキュメント管理サーバ。 Markdown で書かれたドキュメントを管理する。 Web UI を持ち、編集も検索もできるが、新規作成はできないという致命的な問題がある。 理由は、Vim プラグインがあり、それでほぼ操作しているからである。 秘密の URL を使ってパスワードを知らない人に Web サーバ経由で見せられるのが便利。 ファイル添付もできるので、これを作ってから、基本的にこれで文書管理してる。 Qiita と連携する機能を実装したかったが、やる気がそんなに無かったので実現してない。

mfc

Common Lisp 製の RPN 電卓。 変数とか、時間計算とか色々できる。 HTTP サーバ機能もあった気がするけど、結局使ってない。

ironmaiden

キーマッピング的なアプリ。 Linux 用だが、X 依存じゃないので非 X でも機能する。 マウスやジョイスティックもいじれる。 富豪的な作りなので、マウスをこれで管理するとちょっと重い。(移動毎に処理がはしるので) でもこれは、どこかで書いてるはず…。

完全ワイヤレスまた買った - Havit G1

www.amazon.co.jp

↑これ買ってみた。

  • 接続性は良好 (といっても混雑した電車にはまだ乗ってない
  • 電車が到着したときにたまに切れるが一瞬
  • 耳へ固定するための角みたいなのがちょっと痛い
  • 装着がちょっと難しい
  • ケースから取りだすとすぐに接続される
  • ケースから取りだすのは容易で、収納も簡単 (マグネットで吸いつく
  • 装着時に、充電端子が前から見えちゃう
  • 充電は問題なくできる
  • ホワイトノイズは無い (あるいは気にならないレベル
  • 音質はまぁまぁ
  • マニュアルの日本語が機械翻訳で無茶苦茶(英語の読みましょう

装着に関しては、耳の大きさ形状の問題な気はする。

取り出しての接続は左から取りだす必要があるのか、たまに左をクリックしないと片耳状態になることがあった。条件はまだよくわからない。ただ、長押しじゃないのでそこまで苦ではない。

多少の難はあるが、やはりヒモなしは快適。

 

以前の記事は↓

anekos.hatenablog.com

完全ワイヤレス 3つくらい使った感想とか

返品したのもあるので写真はナシ。

QCY Q29 (JPY 3,465)

所謂中華。

充電ケースを使う仕様で便利だが、ケースへのはまり方がカチっとしておらず心もとない。 だけど問題なく充電できてる。

ケースから出しても自動で接続されたりはしないので、左右のイヤホンのボタンを長押しする必要がある。

音質は悪いが、ホワイトノイズはない(あるいは気にならない程度)。

接続の安定性は一番良い。 電車が到着するあたりで途切れることがあるが、それくらいだった。 ただし、左だけ接続しなくなることがたまにあり、10秒くらい長押しするはめになる。

ボタンは側面パネル全体で、押すと必然的にイヤホンが耳に押しこまれる。ちょっと不快かも。

NuForce Be Free 8 (JPY 16,589)

結構な音量のホワイトノイズが常に流れているので、静かな曲だと気になる。 それなりの音量だけど、安定したノイズなので、古い録音でのひどいノイズとかよりはずっとマシ。 あと、左のイヤホンをいじると何か板のようなものが振動する音が聴こえることがあって不快。

ケースから取り出すと左のイヤホンのみ自動で接続される。 右はボタンを長押ししないといけない中途半端な仕様。アホか。

装着性は一番良いかも。小型のイヤピースで不安だったが問題なかった。むしろ具合が良い。

APTX-LL に対応していて低遅延らしいが、ゲームも動画もやらないのでどうでもよい。

NFMI という謎テクノロジのおかげか、左右の通信は途切れにくく片耳状態にはほぼならない。 ただし、スマホとの接続が弱いのか右のポケットに入れると途切れたりしやすい気がする。

ケースは妙に取り出しにくく、えいやと手に落すようにしていた。どうかと思う作り。 これはハズレ引いただけだと思うけど、ケースごと充電していると何故か左のイヤホンだけバッテリが空になる。 いくらなんでも糞すぎるので、これで返品しました。

Sony WF1000X (JPY 20,975)

カナブンと言わているらしい。

音質に問題はなし。

ケースから取り出すとスムーズに左右とも接続される。 ケースもカチっイヤホンがはまるようになっていて、取り出しもしやすい。

接続性はイマイチ。 外だとしばしば右が切断されて不快。 家のなかだと問題なく、多少は離れても切断されない。

装着性は、耳が小さいのかちょっときつく感じる。

ノイズキャンセリングの効果はよくわからない。 外音取り込みは、ちょっと効果ある気がする。 しかし、音楽聴いてると結局人の発言はまともに聞き取れないし、再生を停止していれば外音取り込みじゃなくてもそれなりに聴こえる。 割とどうでも良い気がした。

共通の感想

案外、落としそうな感じはしない。 落ちたこともなし。 家で掃除しながら使うのには、最適。 ケーブルがないのはとても良い。

再生時間は3時間もないような感じだが、移動中だけに使う分には全く問題なし。

Synology の NAS で一部のファイルだけを reindex する

Synology の NAS で一部のファイルだけを reindex する

synoindex というコマンドを使って、指定のディレクトリのみを再インデクスできる。 こうすれば、NAS UI 以外で生成したようなファイルも Audio Station などに表示されるようになる。

$ synoindex -A /PATH/TO/NEW/FILES

↓こんな感じで新しいファイルだけインデクスすると良さそう (検出されたディレクトリを確認したいので、-exec は使わない)

#!/bin/bash
set -x
find /volume1/foo/bar/music/all -mindepth 2 -maxdepth 2 -type d -mmin -240 | while read -r path
do
  synoindex -A "$path"
done