<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Yoichi Nakayamaさんのフィード]]></title><description><![CDATA[ZennのYoichi Nakayamaさん（@yoichi）のRSSフィードです]]></description><link>https://zenn.dev/yoichi</link><image><url>https://lh3.googleusercontent.com/a-/AOh14Gh-pAEwPXMyI_gcJr8sFqBMQ_jC5hNQmkObZ6fhew=s250-c</url><title>Yoichi Nakayamaさんのフィード</title><link>https://zenn.dev/yoichi</link></image><generator>zenn.dev</generator><lastBuildDate>Fri, 16 Oct 2026 07:40:15 GMT</lastBuildDate><atom:link href="https://zenn.dev/yoichi/feed" rel="self" type="application/rss+xml"/><language><![CDATA[ja]]></language><item><title><![CDATA[Gitがブランチを推測できないときのヒント改善]]></title><description><![CDATA[git checkout や git worktree add は指定された名前からリモートの追跡対象を推測して、ローカルブランチを新たに作成する機能を持っています。リモートトラッキングブランチを自動的に選んでローカルブランチを作成するのは、次の条件がともに満たされるときです：

指定した名前のローカルブランチが存在しない（存在すればそれをチェックアウトする）
指定した名前に対応するリモートトラッキングブランチがちょうど一つ見つかる

https://zenn.dev/yoichi/articles/git-checkout-dwim
https://zenn.dev/yoichi/ar...]]></description><link>https://zenn.dev/yoichi/articles/git-dwim-failure-advice</link><guid isPermaLink="true">https://zenn.dev/yoichi/articles/git-dwim-failure-advice</guid><pubDate>Wed, 30 Sep 2026 20:34:38 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--9KqS8HJj--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Git%25E3%2581%258C%25E3%2583%2596%25E3%2583%25A9%25E3%2583%25B3%25E3%2583%2581%25E3%2582%2592%25E6%258E%25A8%25E6%25B8%25AC%25E3%2581%25A7%25E3%2581%258D%25E3%2581%25AA%25E3%2581%2584%25E3%2581%25A8%25E3%2581%258D%25E3%2581%25AE%25E3%2583%2592%25E3%2583%25B3%25E3%2583%2588%25E6%2594%25B9%25E5%2596%2584%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Yoichi%2520Nakayama%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2gtcEFFd1BYTXlJX2djSnI4c0ZxQk1RX2pDNWhOUW1rT2JaNmZoZXc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>Yoichi Nakayama</dc:creator></item><item><title><![CDATA[Gitのorphanブランチのつくりかた]]></title><description><![CDATA[Gitのブランチは通常、既存のコミットを起点として作られるが、既存の履歴を引き継がず、新たなルートコミットから始まるブランチを作ることもできる。このようなブランチを orphan ブランチと呼ぶ。--orphan で作成したブランチは、コミットを作成するまでは unborn branch となる。最初のコミットは親を持たないルートコミットとなり、既存の履歴から独立した orphan ブランチがつくられる。この記事では git checkout、 git switch、 git worktree コマンドを使って orphan ブランチを作成する手順と、それらの違いを紹介する。

 git...]]></description><link>https://zenn.dev/yoichi/articles/git-create-orphan-branch</link><guid isPermaLink="true">https://zenn.dev/yoichi/articles/git-create-orphan-branch</guid><pubDate>Sat, 26 Sep 2026 02:18:57 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--BOyDldGA--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Git%25E3%2581%25AEorphan%25E3%2583%2596%25E3%2583%25A9%25E3%2583%25B3%25E3%2583%2581%25E3%2581%25AE%25E3%2581%25A4%25E3%2581%258F%25E3%2582%258A%25E3%2581%258B%25E3%2581%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Yoichi%2520Nakayama%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2gtcEFFd1BYTXlJX2djSnI4c0ZxQk1RX2pDNWhOUW1rT2JaNmZoZXc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>Yoichi Nakayama</dc:creator></item><item><title><![CDATA[git worktreeを移動してもリンクが切れないようにする]]></title><description><![CDATA[
 要約
通常、 git init や git clone で作られた作業ツリーを移動すると、作業ツリーと共にリポジトリ(.git ディレクトリ)も移動するため、コミット済みの履歴も、作業ツリー内の未コミットの変更内容も、何も失われることなく使い続けることができます。
ただし、 git worktree で作られた linked worktree については状況が異なります。たとえそれが main worktree と共に移動されたとしても、 linked worktree とリポジトリの間の相互参照が壊れて、(修復しない限り)作業ツリーとして機能しなくなってしまいます。
この記事では、...]]></description><link>https://zenn.dev/yoichi/articles/git-position-independent-worktree-links</link><guid isPermaLink="true">https://zenn.dev/yoichi/articles/git-position-independent-worktree-links</guid><pubDate>Sun, 06 Sep 2026 03:48:35 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--tYcI81xq--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:git%2520worktree%25E3%2582%2592%25E7%25A7%25BB%25E5%258B%2595%25E3%2581%2597%25E3%2581%25A6%25E3%2582%2582%25E3%2583%25AA%25E3%2583%25B3%25E3%2582%25AF%25E3%2581%258C%25E5%2588%2587%25E3%2582%258C%25E3%2581%25AA%25E3%2581%2584%25E3%2582%2588%25E3%2581%2586%25E3%2581%25AB%25E3%2581%2599%25E3%2582%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Yoichi%2520Nakayama%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2gtcEFFd1BYTXlJX2djSnI4c0ZxQk1RX2pDNWhOUW1rT2JaNmZoZXc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>Yoichi Nakayama</dc:creator></item><item><title><![CDATA[git worktree add はどう推測しブランチを作るか]]></title><description><![CDATA[git worktree add は新しく作業ツリーを作成するコマンドです。
$ git worktree add ../foo-dir bar-topic
とすると、ローカルブランチ bar-topic を ../foo-dir ディレクトリにチェックアウトします。 HEAD から新たにブランチを作ってチェックアウトしたい場合は git checkout -b bar-topic でブランチを作るのと同様に、
$ git worktree add -b bar-topic ../foo-dir
として、ブランチ bar-topic を作成してチェックアウトすることもできます。
chec...]]></description><link>https://zenn.dev/yoichi/articles/git-worktree-add-dwim</link><guid isPermaLink="true">https://zenn.dev/yoichi/articles/git-worktree-add-dwim</guid><pubDate>Sun, 30 Aug 2026 01:51:27 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--VfTWr8z1--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:git%2520worktree%2520add%2520%25E3%2581%25AF%25E3%2581%25A9%25E3%2581%2586%25E6%258E%25A8%25E6%25B8%25AC%25E3%2581%2597%25E3%2583%2596%25E3%2583%25A9%25E3%2583%25B3%25E3%2583%2581%25E3%2582%2592%25E4%25BD%259C%25E3%2582%258B%25E3%2581%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Yoichi%2520Nakayama%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2gtcEFFd1BYTXlJX2djSnI4c0ZxQk1RX2pDNWhOUW1rT2JaNmZoZXc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>Yoichi Nakayama</dc:creator></item><item><title><![CDATA[git checkout <branch> はなぜブランチを作ってくれるのか]]></title><description><![CDATA[git checkout &lt;branch&gt; は現在のブランチを切り替えるコマンドです。
ローカルに &lt;branch&gt; が存在しない場合、普通は切り替えに失敗します。
しかし、リモートのブランチをローカルで初めてチェックアウトするときに、
$ git checkout target-branch
branch 'target-branch' set up to track 'origin/target-branch'.
Switched to a new branch 'target-branch'
のようにcheckoutコマンドを実行して、ローカルブランチが作成...]]></description><link>https://zenn.dev/yoichi/articles/git-checkout-dwim</link><guid isPermaLink="true">https://zenn.dev/yoichi/articles/git-checkout-dwim</guid><pubDate>Sun, 02 Aug 2026 00:58:12 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--7O5LckL9--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:git%2520checkout%2520%253Cbranch%253E%2520%25E3%2581%25AF%25E3%2581%25AA%25E3%2581%259C%25E3%2583%2596%25E3%2583%25A9%25E3%2583%25B3%25E3%2583%2581%25E3%2582%2592%25E4%25BD%259C%25E3%2581%25A3%25E3%2581%25A6%25E3%2581%258F%25E3%2582%258C%25E3%2582%258B%25E3%2581%25AE%25E3%2581%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Yoichi%2520Nakayama%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2gtcEFFd1BYTXlJX2djSnI4c0ZxQk1RX2pDNWhOUW1rT2JaNmZoZXc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>Yoichi Nakayama</dc:creator></item><item><title><![CDATA[QMKでマウスカーソルを定位置に持ってくる]]></title><description><![CDATA[
 課題
先日 neige を入手し、トラックボールなしのキーボードを久し振りに使っています。横にトラックボールマウスを置いているのでマウス操作をするときはそちらに手を伸ばすこともあるのですが、キーボードで操作を完結したいこともありマウスキーを使っています。
マウスキーを使うときの課題として、カーソルを見失って見つけるのに苦労することがあります。トラックボールやPC本体のトラックパッドを使うときには、マウスカーソルを素早く動かすとカーソルが大きく表示されるのを利用して見つけられていたようです。老眼が悪いんだ...😢
QMKには Digitizer という機能があり、指定した絶対座標にマウ...]]></description><link>https://zenn.dev/yoichi/articles/qmk-set-absolute-position-of-mouse-cursor</link><guid isPermaLink="true">https://zenn.dev/yoichi/articles/qmk-set-absolute-position-of-mouse-cursor</guid><pubDate>Mon, 04 May 2026 02:20:32 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--5Z825ePQ--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:QMK%25E3%2581%25A7%25E3%2583%259E%25E3%2582%25A6%25E3%2582%25B9%25E3%2582%25AB%25E3%2583%25BC%25E3%2582%25BD%25E3%2583%25AB%25E3%2582%2592%25E5%25AE%259A%25E4%25BD%258D%25E7%25BD%25AE%25E3%2581%25AB%25E6%258C%2581%25E3%2581%25A3%25E3%2581%25A6%25E3%2581%258F%25E3%2582%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Yoichi%2520Nakayama%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2gtcEFFd1BYTXlJX2djSnI4c0ZxQk1RX2pDNWhOUW1rT2JaNmZoZXc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>Yoichi Nakayama</dc:creator></item><item><title><![CDATA[cocot38miniのLEDでトラックボール設定を可視化する]]></title><description><![CDATA[この記事では、cocot38mini v2のLEDを使ってトラックボール設定（CPI / スクロール除数 / 角度）を視覚的に確認できるようにする方法を紹介します。

 概要
cocot38miniのキーボード設定には、Auto Mouse Layerの有効無効やスクロール方向の反転のような二値のトグルの設定項目の他に、配列中の値を順に切り替えるものがあります。具体的にはトラックボールの角度、トラックボールの解像度、スクロール除数です。二値のトグルであれば動きを見ればどの設定になっているか容易にわかりますが、取り得る値が多い設定項目では動作から今どの値になっているかを判別するのは難しいで...]]></description><link>https://zenn.dev/yoichi/articles/cocot38mini-represent-config-by-led</link><guid isPermaLink="true">https://zenn.dev/yoichi/articles/cocot38mini-represent-config-by-led</guid><pubDate>Tue, 10 Feb 2026 16:48:06 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--qGpQuhYZ--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:cocot38mini%25E3%2581%25AELED%25E3%2581%25A7%25E3%2583%2588%25E3%2583%25A9%25E3%2583%2583%25E3%2582%25AF%25E3%2583%259C%25E3%2583%25BC%25E3%2583%25AB%25E8%25A8%25AD%25E5%25AE%259A%25E3%2582%2592%25E5%258F%25AF%25E8%25A6%2596%25E5%258C%2596%25E3%2581%2599%25E3%2582%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Yoichi%2520Nakayama%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2gtcEFFd1BYTXlJX2djSnI4c0ZxQk1RX2pDNWhOUW1rT2JaNmZoZXc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>Yoichi Nakayama</dc:creator></item><item><title><![CDATA[cocot38mini v2ビルドログ]]></title><description><![CDATA[
 はじめに
cocot38miniは前々から気にはなっていたキーボードではあったのですが、キットとは別にケースやパーツを自分で手配する必要があり、これまでに買って組んだキーボードキットよりも難易度が高そうと感じ手を出すのを躊躇していました。
小さいもの好きの自分としては、普段使っている40%キーボードよりも小さめの30%キーボードを試したい気持ちがくすぶり続けており、namikaze_40pさんの詳細なビルドログを何度も読み返しているうちに、自分でも何とかなるんじゃないかとだんだん思えてきて、重い腰を上げることができました。(背中を押してもらえました。感謝!)
https://zenn...]]></description><link>https://zenn.dev/yoichi/articles/cocot38mini-v2-build-log</link><guid isPermaLink="true">https://zenn.dev/yoichi/articles/cocot38mini-v2-build-log</guid><pubDate>Mon, 02 Feb 2026 14:33:14 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--i6hdVo3o--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:cocot38mini%2520v2%25E3%2583%2593%25E3%2583%25AB%25E3%2583%2589%25E3%2583%25AD%25E3%2582%25B0%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Yoichi%2520Nakayama%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2gtcEFFd1BYTXlJX2djSnI4c0ZxQk1RX2pDNWhOUW1rT2JaNmZoZXc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>Yoichi Nakayama</dc:creator></item><item><title><![CDATA[git の dangling object のつくりかた]]></title><description><![CDATA[
 はじめに
git の object は作成された後にその参照を経由してアクセスできます。例えばブランチ名を指定して
$ git log main
とすると、main ブランチの先端のコミット、その親のコミット、さらにその親のコミット、…と commit object を辿ることができ、そのうちのいずれかのコミットを指定して
$ git checkout &lt;commit&gt;
とすると、そのコミットに含まれる tree object と blob object の内容を作業ツリーに展開できます。このように、git リポジトリ内には参照関係を用いて一連の情報を取り出せる形で情報が...]]></description><link>https://zenn.dev/yoichi/articles/create-git-dangling-objects</link><guid isPermaLink="true">https://zenn.dev/yoichi/articles/create-git-dangling-objects</guid><pubDate>Mon, 24 Nov 2025 04:59:29 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--SoV54aND--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:git%2520%25E3%2581%25AE%2520dangling%2520object%2520%25E3%2581%25AE%25E3%2581%25A4%25E3%2581%258F%25E3%2582%258A%25E3%2581%258B%25E3%2581%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Yoichi%2520Nakayama%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2gtcEFFd1BYTXlJX2djSnI4c0ZxQk1RX2pDNWhOUW1rT2JaNmZoZXc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>Yoichi Nakayama</dc:creator></item><item><title><![CDATA[QMKで疑似USキーマップ]]></title><description><![CDATA[会社から貸与されているWindowsラップトップは本体のキーボードが日本語配列のものですが、私は外付けで Keyball44 あるいは cocot46plus を繋げて英語配列で使うため、これまでOSの設定を英語配列(US)にして使っていました。
オフィス出社時に会議室へ移動するとき、PCと一緒に外付けキーボードを持ち運ぶのが億劫になると、キーの印字と論理配列の違いを脳内変換しつつPC本体のキーボードを使っていた(OSの設定を日本語配列に変えるのはOS再起動が必要で面倒なためやらない)のですが、若干の不便さを感じていました。
ふと、OSの設定は日本語配列(JIS)のまま、外付けキーボード...]]></description><link>https://zenn.dev/yoichi/articles/qmk-pseudo-us-keymap</link><guid isPermaLink="true">https://zenn.dev/yoichi/articles/qmk-pseudo-us-keymap</guid><pubDate>Tue, 12 Aug 2025 12:07:25 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--LYNFqIV_--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:QMK%25E3%2581%25A7%25E7%2596%2591%25E4%25BC%25BCUS%25E3%2582%25AD%25E3%2583%25BC%25E3%2583%259E%25E3%2583%2583%25E3%2583%2597%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Yoichi%2520Nakayama%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2gtcEFFd1BYTXlJX2djSnI4c0ZxQk1RX2pDNWhOUW1rT2JaNmZoZXc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>Yoichi Nakayama</dc:creator></item><item><title><![CDATA[16bitキーコードで LT(layer, kc) したかった]]></title><description><![CDATA[QMKのLayer-Tapのタップに16bitキーコードを割り当てる方法の紹介です。

 LT(layer, kc) とは
qmk_firmware のキー設定の記法で、ホールドしている間レイヤを有効化し、タップで指定したキーコードを送信します。

LT(layer, kc) - momentarily activates layer when held, and sends kc when tapped. Only supports layers 0-15.

https://docs.qmk.fm/feature_layers
例えば LT(1, KC_SPC) と記述したキーは、タ...]]></description><link>https://zenn.dev/yoichi/articles/qmk-lt-with-kc16</link><guid isPermaLink="true">https://zenn.dev/yoichi/articles/qmk-lt-with-kc16</guid><pubDate>Sat, 02 Aug 2025 08:32:15 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--29AXIAS5--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:16bit%25E3%2582%25AD%25E3%2583%25BC%25E3%2582%25B3%25E3%2583%25BC%25E3%2583%2589%25E3%2581%25A7%2520LT%2528layer%252C%2520kc%2529%2520%25E3%2581%2597%25E3%2581%259F%25E3%2581%258B%25E3%2581%25A3%25E3%2581%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Yoichi%2520Nakayama%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2gtcEFFd1BYTXlJX2djSnI4c0ZxQk1RX2pDNWhOUW1rT2JaNmZoZXc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>Yoichi Nakayama</dc:creator></item><item><title><![CDATA[僕のKeyball44のキーマップのその後を紹介します]]></title><description><![CDATA[
僕のKeyball44のキーマップを紹介します のあと、Keyball44 のキーマップを育ててきたので紹介します。

 前提

Keyball44をWindowsとmacOSで使っています
レイヤをひとつ増やして5レイヤ構成にしています


 デフォルトレイヤ（レイヤ0）
変更なしです。QWERTY配列を維持しています。左右の端の列と下段にモディファイア、レイヤ切り替えを配置しています。


 レイヤ1

 CapsLock を移動

"," と "." をレイヤ1で透過にしていたのと同様に、 "/" も透過させることで、数字入力のためにレイヤ1を有効にしたままで「YYYY/MM/D...]]></description><link>https://zenn.dev/yoichi/articles/my-keyball44-keymap-2</link><guid isPermaLink="true">https://zenn.dev/yoichi/articles/my-keyball44-keymap-2</guid><pubDate>Sat, 02 Aug 2025 00:41:03 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--Bt0pPJn9--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E5%2583%2595%25E3%2581%25AEKeyball44%25E3%2581%25AE%25E3%2582%25AD%25E3%2583%25BC%25E3%2583%259E%25E3%2583%2583%25E3%2583%2597%25E3%2581%25AE%25E3%2581%259D%25E3%2581%25AE%25E5%25BE%258C%25E3%2582%2592%25E7%25B4%25B9%25E4%25BB%258B%25E3%2581%2597%25E3%2581%25BE%25E3%2581%2599%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Yoichi%2520Nakayama%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2gtcEFFd1BYTXlJX2djSnI4c0ZxQk1RX2pDNWhOUW1rT2JaNmZoZXc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>Yoichi Nakayama</dc:creator></item><item><title><![CDATA[git checkoutもgit switch/restoreも廃止されません]]></title><description><![CDATA[
 概要
Git 2.49.0 リリース時(2025年3月)に Upcoming breaking changes というドキュメントが追加されました。今後 Git 3.0 (リリース時期はまだ計画されていない)でデフォルトのハッシュアルゴリズムが "sha1" から "sha256" に変更されることなどが記載されています。
そのドキュメントの末尾に Superseded features that will not be deprecated というセクションがあり、git-checkout(1)、git-switch(1)、git-restore(1) の3つともが維持されると記載...]]></description><link>https://zenn.dev/yoichi/articles/git-checkout-switch-restore</link><guid isPermaLink="true">https://zenn.dev/yoichi/articles/git-checkout-switch-restore</guid><pubDate>Sun, 13 Jul 2025 10:11:41 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--kjsHbLnz--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:git%2520checkout%25E3%2582%2582git%2520switch%252Frestore%25E3%2582%2582%25E5%25BB%2583%25E6%25AD%25A2%25E3%2581%2595%25E3%2582%258C%25E3%2581%25BE%25E3%2581%259B%25E3%2582%2593%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Yoichi%2520Nakayama%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2gtcEFFd1BYTXlJX2djSnI4c0ZxQk1RX2pDNWhOUW1rT2JaNmZoZXc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>Yoichi Nakayama</dc:creator></item><item><title><![CDATA[git fetchの取得制限を解除する]]></title><description><![CDATA[git cloneするときに付けていた制限を解除し、制限なしに git fetch できるようにする方法をまとめます。
なお、単純かつ汎用の方法はcloneし直すことです。事情がありそれができない場合（リポジトリが大きく取得し直したくない、ワークツリーやローカルリポジトリのみの変更があるなど）や、どう制限がかけられているか知りたい方は読み進めて下さい。

 no tags
タグの取得をスキップして clone
$ git clone --no-tags &lt;url&gt;
をしていた場合、tagOpt 設定にオプションが保存されています。

.git/config
[remote "...]]></description><link>https://zenn.dev/yoichi/articles/unlimit-git-fetch</link><guid isPermaLink="true">https://zenn.dev/yoichi/articles/unlimit-git-fetch</guid><pubDate>Sat, 05 Jul 2025 01:01:40 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--X3yjIKJU--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:git%2520fetch%25E3%2581%25AE%25E5%258F%2596%25E5%25BE%2597%25E5%2588%25B6%25E9%2599%2590%25E3%2582%2592%25E8%25A7%25A3%25E9%2599%25A4%25E3%2581%2599%25E3%2582%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Yoichi%2520Nakayama%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2gtcEFFd1BYTXlJX2djSnI4c0ZxQk1RX2pDNWhOUW1rT2JaNmZoZXc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>Yoichi Nakayama</dc:creator></item><item><title><![CDATA[Meishi2でダイオードの必要性を検証する]]></title><description><![CDATA[なぜ自作キーボードにダイオードが必要か考えてみた を読んで、ダイオードの必要性についてわかったつもりになったのですが、動作確認しておかないと本当に理解できたとは言えないと思い、実際に試してみることにしました。
読んだ記事では 2x2 のマトリックスで説明がされていました。手元にある meishi2 がまさにこの形なのでそれを使います。

 準備
keyboard.json より、左から右に (row, col) = (0,0), (0,1), (1,0), (1,1) が並んでいるので、参照した記事に合わせてそれぞれ、KC_A, KC_B, KC_C, KC_Dを割り当てます。

key...]]></description><link>https://zenn.dev/yoichi/articles/verify-diode-necessity-with-meishi2</link><guid isPermaLink="true">https://zenn.dev/yoichi/articles/verify-diode-necessity-with-meishi2</guid><pubDate>Sun, 18 May 2025 02:06:58 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--tym-A2-l--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Meishi2%25E3%2581%25A7%25E3%2583%2580%25E3%2582%25A4%25E3%2582%25AA%25E3%2583%25BC%25E3%2583%2589%25E3%2581%25AE%25E5%25BF%2585%25E8%25A6%2581%25E6%2580%25A7%25E3%2582%2592%25E6%25A4%259C%25E8%25A8%25BC%25E3%2581%2599%25E3%2582%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Yoichi%2520Nakayama%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2gtcEFFd1BYTXlJX2djSnI4c0ZxQk1RX2pDNWhOUW1rT2JaNmZoZXc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>Yoichi Nakayama</dc:creator></item><item><title><![CDATA[Keyball61のマウスポインタのジャンプを回避した]]></title><description><![CDATA[Keyball61 で時々マウスポインタが意図せずジャンプする現象が出て悩んでいたのですが、抑え込むことができたのでそのまとめです。

 デバッグ
rules.mk で CONSOLE_ENABLE = yes とすると、 dprintf() の出力が QMK Toolbox に表示されます。

pmw3360.c
bool pmw3360_motion_burst(pmw3360_motion_t *d) {
#ifdef DEBUG_PMW3360_SCAN_RATE
    pmw3360_scan_perf_task();
#endif
    // Start motion b...]]></description><link>https://zenn.dev/yoichi/articles/keyball61-prevent-unexpected-pointer-jump</link><guid isPermaLink="true">https://zenn.dev/yoichi/articles/keyball61-prevent-unexpected-pointer-jump</guid><pubDate>Mon, 05 May 2025 01:08:00 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--soxfxDwW--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Keyball61%25E3%2581%25AE%25E3%2583%259E%25E3%2582%25A6%25E3%2582%25B9%25E3%2583%259D%25E3%2582%25A4%25E3%2583%25B3%25E3%2582%25BF%25E3%2581%25AE%25E3%2582%25B8%25E3%2583%25A3%25E3%2583%25B3%25E3%2583%2597%25E3%2582%2592%25E5%259B%259E%25E9%2581%25BF%25E3%2581%2597%25E3%2581%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Yoichi%2520Nakayama%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2gtcEFFd1BYTXlJX2djSnI4c0ZxQk1RX2pDNWhOUW1rT2JaNmZoZXc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>Yoichi Nakayama</dc:creator></item><item><title><![CDATA[cocot46plusの推しポイント]]></title><description><![CDATA[cocot46plusを数日使ってみて から二ヶ月程度経ったので、cocot46plusの気に入っている点を書きます。
cocot46plusを使い始めるまではKeyball44を使っていて、今はその時の気分により半々くらいで使い分けている状況での感想です。

 キー数に若干の余裕がある
デフォルトレイヤにはアルファベットなどよく使うキーを割り当てていますが、そこにマウスボタン1、2とIMEトグルも含めることができています。
前回の記事ではマウスボタン2はデフォルトレイヤから外していましたが、右クリックメニューを出したり、Miroでドラッグしてスクロールしたりと、わりと使うので昇格させま...]]></description><link>https://zenn.dev/yoichi/articles/cocot46plus-recommended-points</link><guid isPermaLink="true">https://zenn.dev/yoichi/articles/cocot46plus-recommended-points</guid><pubDate>Mon, 21 Apr 2025 03:12:02 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--FCv1_kyc--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:cocot46plus%25E3%2581%25AE%25E6%258E%25A8%25E3%2581%2597%25E3%2583%259D%25E3%2582%25A4%25E3%2583%25B3%25E3%2583%2588%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Yoichi%2520Nakayama%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2gtcEFFd1BYTXlJX2djSnI4c0ZxQk1RX2pDNWhOUW1rT2JaNmZoZXc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>Yoichi Nakayama</dc:creator></item><item><title><![CDATA[Keyballを縦に回して横スクロールする]]></title><description><![CDATA[Keyballのデフォルトファームウェアでは、レイヤ3のボール操作でスクロールが可能です。初期状態では縦方向のスクロールのみできますが、これはトラックボールの回転方向に応じて縦横に自由にスクロールさせると誤操作が生じがちなことから、スクロールスナップと呼ぶ仕組みでスクロール方向を制限しているためです。
この記事では、Keyballのトラックボールを使って横スクロールする新たな操作方法を紹介します。

 縦スクロールと自由スクロールの切り替え
History of Scroll Snapに「初期は垂直のみ、後に自由スクロールする」という記述があります。
モードを切り替えるキーコードが定義さ...]]></description><link>https://zenn.dev/yoichi/articles/keyball-horizontal-scroll-by-vertical-motion</link><guid isPermaLink="true">https://zenn.dev/yoichi/articles/keyball-horizontal-scroll-by-vertical-motion</guid><pubDate>Thu, 10 Apr 2025 22:41:47 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--6BOqdV6b--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Keyball%25E3%2582%2592%25E7%25B8%25A6%25E3%2581%25AB%25E5%259B%259E%25E3%2581%2597%25E3%2581%25A6%25E6%25A8%25AA%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AD%25E3%2583%25BC%25E3%2583%25AB%25E3%2581%2599%25E3%2582%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Yoichi%2520Nakayama%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2gtcEFFd1BYTXlJX2djSnI4c0ZxQk1RX2pDNWhOUW1rT2JaNmZoZXc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>Yoichi Nakayama</dc:creator></item><item><title><![CDATA[ロータリーエンコーダーのキー割り当ての3つの方法]]></title><description><![CDATA[
 概要

ロータリーエンコーダーをキーボードに搭載すると、通常のキーと同様に押したときの動作を設定できるのに加えて

つまみを時計回りに回したとき
つまみを反時計回りに回したとき

のそれぞれの動作を設定できます。この記事では、qmk_firmware でロータリーエンコーダーの回し操作の割り当てをカスタマイズする3通りの方法

ファームウェアの関数定義の中で割り当てる方法
VIA/Remapでダミーキーを使って割り当てる方法
VIA/Remapでエンコーダーマッピングを使って割り当てる方法

を紹介します。
3つの方法の違いとして、最初の方法だと割り当てを変える度にファームウェアをビ...]]></description><link>https://zenn.dev/yoichi/articles/qmk-ways-to-customize-encoder-map</link><guid isPermaLink="true">https://zenn.dev/yoichi/articles/qmk-ways-to-customize-encoder-map</guid><pubDate>Sun, 06 Apr 2025 02:57:30 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--P92hV8Fw--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E3%2583%25AD%25E3%2583%25BC%25E3%2582%25BF%25E3%2583%25AA%25E3%2583%25BC%25E3%2582%25A8%25E3%2583%25B3%25E3%2582%25B3%25E3%2583%25BC%25E3%2583%2580%25E3%2583%25BC%25E3%2581%25AE%25E3%2582%25AD%25E3%2583%25BC%25E5%2589%25B2%25E3%2582%258A%25E5%25BD%2593%25E3%2581%25A6%25E3%2581%25AE3%25E3%2581%25A4%25E3%2581%25AE%25E6%2596%25B9%25E6%25B3%2595%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Yoichi%2520Nakayama%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2gtcEFFd1BYTXlJX2djSnI4c0ZxQk1RX2pDNWhOUW1rT2JaNmZoZXc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>Yoichi Nakayama</dc:creator></item><item><title><![CDATA[cocot46plusのロータリーエンコーダーへのキーコード割り当て]]></title><description><![CDATA[cocot46plus に搭載されたロータリーエンコーダーの操作、つまみを押す、反時計回りに回す、時計回りに回すのそれぞれへのキーコードの割り当て方法。

 つまみを押した時の動作
つまみを押した時の動作はkeymap.cのkeymap配列でデフォルトでKC_MS_BTN3になっている所で指定できる。

make aki27/cocot46plus:default でファームをビルドして QMK Toolbox などで書き込むと反映される。
なお、その項目の左右にある KC_PGUP, KC_PGDN の所は飾りです。そこを変えてもつまみを回したときの動作は変わりません。

 つまみを回...]]></description><link>https://zenn.dev/yoichi/articles/cocot46plus-customize-encoder-map</link><guid isPermaLink="true">https://zenn.dev/yoichi/articles/cocot46plus-customize-encoder-map</guid><pubDate>Sat, 01 Mar 2025 13:43:18 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--3hH2DuCS--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:cocot46plus%25E3%2581%25AE%25E3%2583%25AD%25E3%2583%25BC%25E3%2582%25BF%25E3%2583%25AA%25E3%2583%25BC%25E3%2582%25A8%25E3%2583%25B3%25E3%2582%25B3%25E3%2583%25BC%25E3%2583%2580%25E3%2583%25BC%25E3%2581%25B8%25E3%2581%25AE%25E3%2582%25AD%25E3%2583%25BC%25E3%2582%25B3%25E3%2583%25BC%25E3%2583%2589%25E5%2589%25B2%25E3%2582%258A%25E5%25BD%2593%25E3%2581%25A6%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:Yoichi%2520Nakayama%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2gtcEFFd1BYTXlJX2djSnI4c0ZxQk1RX2pDNWhOUW1rT2JaNmZoZXc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>Yoichi Nakayama</dc:creator></item></channel></rss>