メインコンテンツへスキップ

〰️ USB Type-Cの複雑さ

iPhone 15でLightningからUSB Type-Cへ変更される記念?で、なんとなくしか理解していないUSB Type-Cの仕様についてまとめてみた。

kaos

USB Type-Cとは
#

USB Type-Cは、物理的なコネクタの形状を指すものである。その背後にあるデータ転送や電力供給の仕様は、USB Type-Cの形状だけでは特定できない。

USBの仕様
#

仕様データ転送速度注意点
USB 2.0最大480 Mbps新しいデバイスとの互換性が必要な場合には注意が必要
USB 3.2 Gen 1最大5 Gbps
USB 3.2 Gen 2最大10 Gbps
USB 3.2 Gen 2x2最大20 Gbps
USB4最大40 GbpsThunderbolt 3との互換性があるが、すべてのUSB4デバイスやケーブルがThunderbolt 3と互換性があるわけではない

USB Power Delivery (USB PD)
#

USB Type-Cコネクタを使用するデバイス間での高出力の電力供給を可能にするもので最大100W (20V@5A)の電力供給が可能。

データ転送速度は、そのケーブルが準拠するUSBのデータ転送仕様によって決まる。(USB 3.2 Gen 1でUSB PDをサポートしたケーブルなど)

互換性
#

下位互換性
#

USB 3.2やUSB4のポートにUSB 2.0のケーブルやデバイスを接続することは物理的に可能。ただし、データ転送速度はUSB 2.0の最大速度(480 Mbps)に制限される。

同様にUSB 2.0のポートにUSB 3.2やUSB4のケーブルやデバイスを接続することも可能だが、同様にデータ転送速度はUSB 2.0に制限される。

つまり、データ転送速度は遅い方に合わせて制限される。

電力供給の非互換性
#

USB PDをサポートするデバイスやアダプターを、非サポートのケーブルやデバイスと組み合わせて使用すると、最大電力供給能力に達しない、またはまったく充電できない場合がある。

特定の機能の非互換性
#

USB4はThunderbolt 3との互換性が部分的にあるが、すべての USB4デバイスやケーブルが 完全に互換性があるわけではない。(この辺がわかりにくい)

Alternate Mode
#

Alternate Modeは、USB Type-Cコネクタとケーブルを使って、USB以外のプロトコルの信号を転送するための仕組み。これにより、1つのケーブルやコネクタを使用して、データ、ビデオ、音声、電力などを同時に転送することが可能になる。

主なAlternate Modes:
#

Alternate Mode説明
DisplayPort Alt ModeUSB Type-Cを介してDisplayPort信号を転送する。これにより外部ディスプレイへ接続できる。
HDMI Alt ModeUSB Type-Cを介してHDMI信号を転送する。これにより、HDMIインタフェースを持つテレビやモニターに接続できる。
Thunderbolt 3/4Intelが開発した高速なデータ転送プロトコル。最大40 Gbpsのデータ転送速度を実現する。
MHL Alt Modeモバイルデバイス向けのビデオとオーディオの転送プロトコル。

このテキストはChatGPTにいくつか質問し別途、回答の裏を取ってまとめたもの。裏を取る手間はあるが、すべて自分で調べてまとめるのに比べて、生産性は高いと思う。

これは知識のある分野の場合、裏を取る箇所が少なくて済むからだと思うが、まったく知識がない分野の場合、どの部分の裏を取るべきかの判断が難しく、ハルシネーションに騙されてしまいそうだ。

関連記事

Textwell

Textwell - The Modeless Textbox for iPhone, iPad, iPod touch, Mac, and Watch. メモ、メッセージ、ブログ、検索、投稿など、あらゆる文章作成タスクに使用できる多目的テキストエディタ ファイリングやスタイリングのための機能はないが、JavaScriptベースのカスタマイズ可能なアクション、自動履歴、クラウド同期などをサポートしており、シンプルで拡張性が高い Mac版、iOS版、AppleWatch版がある Textwell | URL Schemes 自作のアクションなど # ソートして重複行を削除するTextwellのアクション Obsidianのデイリーノートへ追記するTextwellのアクション Amazonから書誌情報をTextwellへ取り込むブックマークレット

Hugoのショートコードをうまく使い回す方法

Hugoには他のCMSではよくある、機能を拡張するためのプラグインを提供する仕組みがない。 このため、あるテーマの中に便利なショートコードがあったとして、それを別のテーマで使用しようとした場合、 テーマディレクトリ/layouts/shortcodes配下のショートコードのソースを、別のテーマの/layouts/shortcodes配下、またはルート配下の/layouts/shortcodesへコピーする ショートコードにスタイルが設定されている場合、スタイルシートの中から必要な部分を抜き出し、別のテーマのスタイルシートへコピーする という煩雑な手順が必要となるが、先日、以下のショートコードのインストール手順を読んでいたら、うまい方法でショートコードを提供していた。 mfg92/hugo-shortcode-gallery: A theme components with a gallery shortcode for the static site generator hugo. まずショートコードのコードをテーマディレクトリ配下へcloneする。その後、config.tomlでテーマを以下のように指定する。 theme = ["your-main-theme", "hugo-shortcode-gallery"] そもそもテーマを複数指定できることを知らなかったが、この設定によりyour-main-themeテーマに加えhugo-shortcode-galleryテーマも参照されることになる。 そして、hugo-shortcode-gallery配下は以下のようなファイル構成になっている。 hugo-shortcode-gallery ├── LICENSE.md ├── README.md ├── assets │ └── shortcode-gallery │ ├── filterbar.sass │ └── font-awesome │ ├── compress-alt-solid.svg │ ├── expand-alt-solid.svg │ └── license.txt ├── config.toml ├── layouts │ └── shortcodes │ └── gallery.html └── static └── shortcode-gallery ├── jquery-3.7.0.min.js ├── justified_gallery │ ├── LICENSE │ ├── jquery.justifiedGallery.js │ ├── jquery.justifiedGallery.min.js │ ├── justifiedGallery.css │ └── justifiedGallery.min.css ├── lazy │ ├── jquery.lazy.js │ └── jquery.lazy.min.js └── swipebox ├── css │ ├── swipebox.css │ └── swipebox.min.css ├── img │ ├── icons.png │ ├── icons.svg │ └── loader.gif └── js ├── jquery.swipebox.js └── jquery.swipebox.min.js 14 directories, 23 files テーマと言ってもlayouts配下にあるのはショートコードのみである。そしてassetsとstaticディレクトリ配下にショートコードで使用するファイルだけを置くというのは、汎用的にショートコードを提供する方法として手軽で良いと思った。

MacからWindowsへRDP接続する際にキーボードがUS配列になる場合

MacのMicrosoft Remote DesktopからWindowsにRDP接続する際、キーボードがUS(英語)配列で認識される場合の解消方法。MacからWindowsへRDP接続するとキーボードがJISではなくUS配列になるとき | 晴耕雨読からの引用です。 自分の環境では3.の前にWindowsを再起動する必要があった。 対処方法 # 接続先のWindowsで以下の作業を行います。 Win+R で regedit を入力してレジストリエディタを開き、以下のレジストリを開きます。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411 Layout File を「KBDJPN.DLL」から「kbd106.dll」に書き換えます。 MacOSからRDP接続し、日本語キーボードとして認識されているか確認します。

Hugoでイメージギャラリー hugo-shortcode-gallery

Hugoでイメージギャラリーを実装する方法を調べていたところ、hugo-shortcode-galleryというのがお手軽で良さそうだった。 mfg92/hugo-shortcode-gallery: A theme components with a gallery shortcode for the static site generator hugo. インストールするとgalleryというショートコードが使えるようになる。以下が実例。 このページがあるディレクトリにimagesというディレクトリを作成して画像を置き、ショートコードのパラメタにmatch="images/*"と書き、その他、必要なパラメタを指定するだけで、こんなサムネイルを表示してくれる。 インストールもthemeディレクトリでcloneしてconfig.tomlを修正するだけなので簡単だ。

Hugoのショートコード入力を支援するChrome拡張

自分用にHugoのショートコードの入力を支援するChrome拡張を書いた。 htakeuchi/HugoShortcoder: Chrome extension to copy Hugo shortcode to clipboard according to open URL. 機能 # たとえばHugoの公式ショートコードでTweetを引用しようとすると、 URLからユーザIDとTweet ID?を調べる。 URLがhttps://twitter.com/SanDiegoZoo/status/1453110110599868418だとすると {{< tweet user="SanDiegoZoo" id="1453110110599868418" >}}の形式でショートコードを書く ことになり、なかなか面倒だ。 この機能拡張はこれらを支援するもので、引用したいページを開きコンテキストメニューから機能拡張を起動すれば、URLからショートコードを組み立ててクリップボードへコピーされる。 サポートしているサービスは以下の通り。 gist Instagram X (Twitter) Vimeo YouTube これらのサービス以外のページでは、Markdown形式でページタイトルとURLのリンクが作成され、クリップボードへコピーされる。 使用方法 # せっかくなので、Chromeウェブストアで公開しようかと思ったが、機能拡張が悪用されるケース多いせいか、手続きが煩雑になっていたため、野良で使うことにした。 Release v1.0 · htakeuchi/HugoShortcoder からzipをダウンロードし、 任意のディレクトリで解凍する Chromeを起動し設定-拡張機能を選択する デベロッパーモードをオンにしてパッケージ化されていない拡張機能を読み込むボタンをクリック 1.のディレクトリを選択 以上でマウス右クリックで表示されるコンテキストメニューにHugoShortcoderが追加される。