<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hyprland on /home/amgsk</title><link>https://amgsk.dev/tags/Hyprland/</link><description>Recent content in Hyprland on /home/amgsk</description><generator>Hugo</generator><language>ja-JP</language><lastBuildDate>Sat, 12 Sep 2026 11:53:32 +0900</lastBuildDate><atom:link href="https://amgsk.dev/tags/Hyprland/index.xml" rel="self" type="application/rss+xml"/><item><title>GPD MicroPC 2にArch Linuxを入れて環境を整備する</title><link>https://amgsk.dev/posts/gpd-micropc2-arch-linux/</link><pubDate>Sat, 12 Sep 2026 11:53:32 +0900</pubDate><guid>https://amgsk.dev/posts/gpd-micropc2-arch-linux/</guid><description>&lt;h2 id="買った"&gt;買った&lt;/h2&gt;
&lt;p&gt;&lt;figure class="post-figure"&gt;&lt;img src="./gpd_micropc2.jpg"
 alt="GPD MicroPC2" width="300"loading="lazy"&gt;&lt;figcaption&gt;GPD MicroPC2&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;GPD MicroPC 2を買った。7インチの小型PCで、物理キーボードとタッチスクリーンが付いている。
持ち歩いてターミナルを叩く用途が欲しかったので、届いた日の夜にプリインストールのWindowsを丸ごと削除してArch Linuxを入れた。
デュアルブートにするか少し迷ったけど、Windowsを使う予定が無いのでNVMeのパーティションを全部消して単独構成にしている。
回復パーティションも残していないので、Windowsに戻したくなったらインストールメディアから入れ直すことになる。&lt;/p&gt;
&lt;p&gt;購入から1週間ほどで常用できるところまで持っていけたので、やったことをまとめておく。&lt;/p&gt;
&lt;p&gt;機体のスペックはこんな感じ。&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;項目&lt;/th&gt;
					&lt;th&gt;値&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;CPU&lt;/td&gt;
					&lt;td&gt;Intel Core i3-N300 (8コア8スレッド)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;メモリ&lt;/td&gt;
					&lt;td&gt;16GB&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ストレージ&lt;/td&gt;
					&lt;td&gt;NVMe 512GB + microSD 1TB&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;内蔵パネル&lt;/td&gt;
					&lt;td&gt;7インチ 1080x1920 (&lt;code&gt;DSI-1&lt;/code&gt;)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;タッチ&lt;/td&gt;
					&lt;td&gt;ILITEK ILTP7807 (I2C-HID)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;加速度センサー&lt;/td&gt;
					&lt;td&gt;mxc4005&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;BIOS&lt;/td&gt;
					&lt;td&gt;2.18&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;購入直後から、最新のBIOSがインストールされているようだった。
最終的な構成はこうなった。&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;項目&lt;/th&gt;
					&lt;th&gt;値&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;OS&lt;/td&gt;
					&lt;td&gt;Arch Linux / &lt;code&gt;linux-zen&lt;/code&gt; (保険で&lt;code&gt;linux&lt;/code&gt;も残置)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ブート&lt;/td&gt;
					&lt;td&gt;systemd-boot、ext4、LVM・暗号化なし&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ログイン&lt;/td&gt;
					&lt;td&gt;SDDM&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;デスクトップ&lt;/td&gt;
					&lt;td&gt;Hyprland 0.56 + caelestia-shell&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;スケール&lt;/td&gt;
					&lt;td&gt;1.25&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;日本語入力&lt;/td&gt;
					&lt;td&gt;fcitx5 + mozc&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;電源&lt;/td&gt;
					&lt;td&gt;BIOS TDP 8W + power-profiles-daemon &lt;code&gt;power-saver&lt;/code&gt;固定&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;スリープ&lt;/td&gt;
					&lt;td&gt;蓋閉じでsuspend-then-hibernate&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="余談-公式サイトに繋がらない"&gt;余談: 公式サイトに繋がらない&lt;/h2&gt;
&lt;p&gt;セットアップの前に公式のファームウェア・ドライバページを見ようとしたら、&lt;code&gt;https://gpd.hk/...&lt;/code&gt;が一切開かなかった。
調べてみると、&lt;code&gt;www&lt;/code&gt;無しの裸ドメインは古いIISサーバーを指していてHTTPSに応答しない。
&lt;code&gt;https://www.gpd.hk/&lt;/code&gt;の方が正しい模様。&lt;/p&gt;</description></item><item><title>TrackballをHyprlandでより快適に使う（追記あり）</title><link>https://amgsk.dev/posts/trackball-awesome-config/</link><pubDate>Thu, 12 Mar 2026 07:30:56 +0900</pubDate><guid>https://amgsk.dev/posts/trackball-awesome-config/</guid><description>&lt;p&gt;Kensington SlimBlade Proを例に、Hyprlandとinput-remapperを使用してトラックボールの加速度やスクロール設定をカスタマイズする方法を紹介。&lt;/p&gt;
&lt;p&gt;トラックボールは加速をONにして加速度をカスタムに設定することで、より快適な操作感を得ることができる（と思っている）&lt;br&gt;
以下のようにHyprlandの設定ファイル&lt;code&gt;hyprland.conf&lt;/code&gt;にトラックボールの加速度や感度、スクロール設定を記述する。&lt;/p&gt;
&lt;p&gt;ケンジントン公式のデバイスドライバでは、ボタン同時押しの設定が可能だが、当然Linuxでは利用できない。&lt;br&gt;
そのため&lt;code&gt;input-remapper&lt;/code&gt;を使用して、複数ボタン同時押しの操作を実現している。&lt;/p&gt;
&lt;p&gt;config例の重要なポイント&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;加速度のプロファイルをカスタムに設定し、加速度のカーブを細かく調整することで、トラックボールの動きがより自然になるようにしている&lt;/li&gt;
&lt;li&gt;スクロール方法を&lt;code&gt;on_button_down&lt;/code&gt;に設定し、スクロールボタンを指定。トラックボールの特定のボタンを押しながら動かすことでスクロールができるようになる&lt;/li&gt;
&lt;li&gt;&lt;code&gt;input-remapper&lt;/code&gt;を利用する場合、デバイス名が仮想デバイスのものになるため、Hyprlandの設定ファイルでは仮想デバイスの名前を指定する必要がある&lt;/li&gt;
&lt;li&gt;&lt;code&gt;input-remapper&lt;/code&gt;が使用できない状況のために、フォールバックとして通常のデバイス名での設定も記述している&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="hyprlandの設定例"&gt;Hyprlandの設定例&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;name&lt;/code&gt;は実際のデバイス名に合わせて適宜変更する必要がある。&lt;br&gt;
&lt;code&gt;hyprctrl devices&lt;/code&gt;コマンドでデバイス名を確認できる。&lt;/p&gt;
&lt;div&gt;&lt;div class="codeblock--name"&gt;hyprland.conf&lt;/div&gt;
 &lt;div class="codeblock--content"&gt;&lt;div class="highlight"&gt;&lt;div style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 1
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 2
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 3
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 4
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 5
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 6
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 7
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 8
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 9
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;10
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;11
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;12
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;13
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;14
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;15
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;16
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;17
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;18
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;19
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;20
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;21
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;22
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;23
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;24
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;25
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;26
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;27
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;28
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-style:italic"&gt;# Kensington SlimBlade Pro Trackball&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-style:italic"&gt;# 冗長がやむを得ないので、最低限 加速度/感度/スクロール設定を変数にまとめている&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#79c0ff"&gt;$tb_accel&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; custom 1.5 0.0 0.5 1.0 2.5
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#79c0ff"&gt;$tb_sens&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; -0.2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#79c0ff"&gt;$tb_scroll_factor&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; 0.4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#79c0ff"&gt;$tb_scroll_button&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; &lt;span style="color:#a5d6ff"&gt;276&lt;/span&gt; &lt;span style="color:#8b949e;font-style:italic"&gt;# btn:extra (physical middle via evsieve)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-style:italic"&gt;# こっちはinput remapperが使用できない場合の通常のデバイス指定&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;device &lt;span style="color:#ff7b72;font-weight:bold"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#79c0ff"&gt;name&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; kensington-slimblade-pro&lt;span style="color:#ff7b72;font-weight:bold"&gt;(&lt;/span&gt;2.4ghz-receiver&lt;span style="color:#ff7b72;font-weight:bold"&gt;)&lt;/span&gt;-kensington-slimblade-pro-trackball&lt;span style="color:#ff7b72;font-weight:bold"&gt;(&lt;/span&gt;2.4ghz-receiver&lt;span style="color:#ff7b72;font-weight:bold"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#79c0ff"&gt;accel_profile&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; &lt;span style="color:#79c0ff"&gt;$tb_accel&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#79c0ff"&gt;sensitivity&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; &lt;span style="color:#79c0ff"&gt;$tb_sens&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#79c0ff"&gt;natural_scroll&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; false
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#79c0ff"&gt;scroll_method&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; on_button_down
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#79c0ff"&gt;scroll_button&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; &lt;span style="color:#79c0ff"&gt;$tb_scroll_button&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#79c0ff"&gt;scroll_factor&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; &lt;span style="color:#79c0ff"&gt;$tb_scroll_factor&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72;font-weight:bold"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-style:italic"&gt;# こっちはinput remapperによって作成された仮想デバイスの指定&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;device &lt;span style="color:#ff7b72;font-weight:bold"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#79c0ff"&gt;name&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; input-remapper-kensington-slimblade-pro&lt;span style="color:#ff7b72;font-weight:bold"&gt;(&lt;/span&gt;2.4ghz-receiver&lt;span style="color:#ff7b72;font-weight:bold"&gt;)&lt;/span&gt;-kensington-sl-forwarde
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#79c0ff"&gt;accel_profile&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; &lt;span style="color:#79c0ff"&gt;$tb_accel&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#79c0ff"&gt;sensitivity&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; &lt;span style="color:#79c0ff"&gt;$tb_sens&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#79c0ff"&gt;natural_scroll&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; false
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#79c0ff"&gt;scroll_method&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; on_button_down
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#79c0ff"&gt;scroll_button&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; &lt;span style="color:#79c0ff"&gt;$tb_scroll_button&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#79c0ff"&gt;scroll_factor&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; &lt;span style="color:#79c0ff"&gt;$tb_scroll_factor&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72;font-weight:bold"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="input-remapperの自動起動とプリセットのロード"&gt;input-remapperの自動起動とプリセットのロード&lt;/h2&gt;
&lt;p&gt;Hyprlandの起動時にinput-remapperを自動で起動し、設定済みのプリセットをロードするには、&lt;code&gt;hyprland.conf&lt;/code&gt;に以下を追記する。&lt;/p&gt;</description></item><item><title>Hyprlandでアプリをトグルする</title><link>https://amgsk.dev/posts/hyprland-toggle-app/</link><pubDate>Thu, 12 Mar 2026 05:24:19 +0900</pubDate><guid>https://amgsk.dev/posts/hyprland-toggle-app/</guid><description>&lt;p&gt;シングルインスタンスのアプリをトグルするスクリプト。以下の挙動を実現するもの。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;アプリが起動して無ければ起動&lt;/li&gt;
&lt;li&gt;アプリが起動していてフォーカスされていなければフォーカス&lt;/li&gt;
&lt;li&gt;アプリが起動していてフォーカスされていれば閉じる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;~/bin/toggle-app.sh&lt;/code&gt;に保存し、実行権限を付与する。&lt;/p&gt;
&lt;div&gt;&lt;div class="codeblock--name"&gt;~/bin/toggle-app.sh&lt;/div&gt;
 &lt;div class="codeblock--content"&gt;&lt;div class="highlight"&gt;&lt;div style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 1
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 2
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 3
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 4
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 5
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 6
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 7
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 8
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 9
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;10
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;11
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;12
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;13
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;14
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;15
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;16
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;17
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;18
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;19
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;20
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;21
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;22
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;23
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-weight:bold;font-style:italic"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-style:italic"&gt;# Usage: toggle-app.sh &amp;lt;window-class&amp;gt; [launch-command]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-style:italic"&gt;# window-class: class name&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-style:italic"&gt;# launch-command: command&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#79c0ff"&gt;class&lt;/span&gt;&lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#79c0ff"&gt;$1&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#79c0ff"&gt;cmd&lt;/span&gt;&lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;${&lt;/span&gt;&lt;span style="color:#79c0ff"&gt;2&lt;/span&gt;&lt;span style="color:#ff7b72"&gt;:-&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;${&lt;/span&gt;&lt;span style="color:#79c0ff"&gt;class&lt;/span&gt;,,&lt;span style="color:#a5d6ff"&gt;}}&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;if&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;[&lt;/span&gt; -z &lt;span style="color:#a5d6ff"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#79c0ff"&gt;$class&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;]&lt;/span&gt;; &lt;span style="color:#ff7b72"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; echo &lt;span style="color:#a5d6ff"&gt;&amp;#34;Usage: &lt;/span&gt;&lt;span style="color:#ff7b72"&gt;$(&lt;/span&gt;basename &lt;span style="color:#a5d6ff"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#79c0ff"&gt;$0&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#ff7b72"&gt;)&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt; &amp;lt;window-class&amp;gt; [launch-command]&amp;#34;&lt;/span&gt; &amp;gt;&amp;amp;&lt;span style="color:#a5d6ff"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; exit &lt;span style="color:#a5d6ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#79c0ff"&gt;focused&lt;/span&gt;&lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#ff7b72"&gt;$(&lt;/span&gt;hyprctl activewindow | grep -qi &lt;span style="color:#a5d6ff"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#79c0ff"&gt;$class&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;&amp;amp;&amp;amp;&lt;/span&gt; echo yes&lt;span style="color:#ff7b72"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#79c0ff"&gt;running&lt;/span&gt;&lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#ff7b72"&gt;$(&lt;/span&gt;hyprctl clients | grep -qi &lt;span style="color:#a5d6ff"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#79c0ff"&gt;$class&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;&amp;amp;&amp;amp;&lt;/span&gt; echo yes&lt;span style="color:#ff7b72"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;if&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;[&lt;/span&gt; &lt;span style="color:#a5d6ff"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#79c0ff"&gt;$focused&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; &lt;span style="color:#a5d6ff"&gt;&amp;#34;yes&amp;#34;&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;]&lt;/span&gt;; &lt;span style="color:#ff7b72"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; hyprctl dispatch closewindow &lt;span style="color:#a5d6ff"&gt;&amp;#34;class:&lt;/span&gt;&lt;span style="color:#79c0ff"&gt;$class&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;elif&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;[&lt;/span&gt; &lt;span style="color:#a5d6ff"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#79c0ff"&gt;$running&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; &lt;span style="color:#a5d6ff"&gt;&amp;#34;yes&amp;#34;&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;]&lt;/span&gt;; &lt;span style="color:#ff7b72"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; hyprctl dispatch focuswindow &lt;span style="color:#a5d6ff"&gt;&amp;#34;class:&lt;/span&gt;&lt;span style="color:#79c0ff"&gt;$class&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#79c0ff"&gt;$cmd&lt;/span&gt; &amp;amp;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;fi&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;使い方はこう。&lt;/p&gt;</description></item><item><title>小ネタ HyprlandでObsidianのトレイ格納をトグルする</title><link>https://amgsk.dev/posts/obsidian-toggle-on-hyprland/</link><pubDate>Mon, 16 Feb 2026 00:18:33 +0900</pubDate><guid>https://amgsk.dev/posts/obsidian-toggle-on-hyprland/</guid><description>&lt;p&gt;HyprlandでObsidianのトレイアイコンをトグルする方法を紹介。&lt;/p&gt;
&lt;h2 id="環境"&gt;環境&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Arch Linux 6.18.9-zen1-2-zen&lt;/li&gt;
&lt;li&gt;Hyprland 0.53.3&lt;/li&gt;
&lt;li&gt;Obsidian 1.11.7&lt;/li&gt;
&lt;li&gt;Obsidian Tray Fork &lt;a href="https://github.com/DozyDolphin/obsidian-tray"&gt;🔗GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="手順"&gt;手順&lt;/h2&gt;
&lt;p&gt;まずは普通にObsidian Trayをインストールする。&lt;br&gt;
そして、Obsidian TrayのFork版のリポジトリを参照し、valut内の&lt;code&gt;.obsidian/plugins/tray/main.js&lt;/code&gt;をFork版のものに置き換えてObsidianを再起動。&lt;/p&gt;
&lt;p&gt;Obsidian TrayのFork版には、以下のようなURLスキームが用意されており、Hyprlandのexecで簡単にトグルができる。&lt;/p&gt;
&lt;image src="./images/shortcut-uris.png" alt="Shortcut URIs" width="300"&gt;
&lt;p&gt;obsidian-trayの設定画面のショートカットは何だって良いと思う。&lt;br&gt;
今回はトグルしたいので、Hyprlandのキーバインド設定で以下のような設定を仕込んだ。&lt;/p&gt;
&lt;div&gt;&lt;div class="codeblock--name"&gt;hyprland.conf&lt;/div&gt;
 &lt;div class="codeblock--content"&gt;&lt;div class="highlight"&gt;&lt;div style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bind &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; Ctrl+Shift, Q, exec, xdg-open &lt;span style="color:#a5d6ff"&gt;&amp;#34;obsidian://tray?cmd=toggle&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;挙動としてはめっちゃ望ましい感じになった。満足。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ウィンドウが生成されていないとき
&lt;ul&gt;
&lt;li&gt;アクティブになる&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ウィンドウが生成されていて、かつ 現在アクティブなウィンドウのとき
&lt;ul&gt;
&lt;li&gt;ウィンドウが閉じる（理想通りのtoggle）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ウィンドウが生成されているものの、現在アクティブなウィンドウではないとき
&lt;ul&gt;
&lt;li&gt;ウィンドウがアクティブになる&lt;/li&gt;
&lt;li&gt;ワークスペースが別の場合は、obsidianが存在するワークスペースに切り替わる&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまりウィンドウがアクティブではないときに、ウィンドウがアクティブになる挙動があるのがとても良い感じ。&lt;/p&gt;
&lt;p&gt;EOF&lt;/p&gt;</description></item><item><title>Linuxに音声入力を導入する</title><link>https://amgsk.dev/posts/hyprwhspr-voice-input/</link><pubDate>Sat, 14 Feb 2026 11:20:00 +0900</pubDate><guid>https://amgsk.dev/posts/hyprwhspr-voice-input/</guid><description>&lt;p&gt;Linuxで音声入力したいですよね。&lt;br&gt;
今回紹介するのは、Wayland環境向けのローカル音声入力ツールの&lt;a href="https://github.com/goodroot/hyprwhspr"&gt;hyprwhspr&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;OpenAIのWhisperをベースにした高精度な音声認識をローカルで実行するため、プライバシーを保ちながらシステム全体で音声入力が使える。&lt;/p&gt;
&lt;h2 id="hyprwhsprの特徴"&gt;hyprwhsprの特徴&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ローカル処理&lt;/strong&gt; &amp;hellip; モデルをメモリ上に保持し、外部サーバへの送信なしに音声認識を実行する&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;複数バックエンド対応&lt;/strong&gt; &amp;hellip; Parakeet TDT V3、pywhispercpp、REST API、リアルタイムWebSocketなど&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPU自動検出&lt;/strong&gt; &amp;hellip; NVIDIA（CUDA）、AMD（ROCm）、Vulkanを自動検出してアクセラレーション&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CPUのみでも動作&lt;/strong&gt; &amp;hellip; ONNX-ASRバックエンドによりGPUなしでも利用可能&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;音声ビジュアライザ&lt;/strong&gt; &amp;hellip; GTK4ベースのテーマ対応ビジュアライザで録音状態を表示&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;オーディオダッキング&lt;/strong&gt; &amp;hellip; 録音中にシステム音量を自動で下げる&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Waybar連携&lt;/strong&gt; &amp;hellip; ステータスバーに録音状態を表示&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="動作要件"&gt;動作要件&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Linux + Wayland（Hyprland、Sway、GNOME、KDE Plasma Wayland）&lt;/li&gt;
&lt;li&gt;Python3 + pip(venvの環境が作られる)&lt;/li&gt;
&lt;li&gt;ydotool 1.0+（キーボード入力の自動化）&lt;/li&gt;
&lt;li&gt;wl-clipboard（Waylandクリップボード）&lt;/li&gt;
&lt;li&gt;GTK4（ビジュアライザ）&lt;/li&gt;
&lt;li&gt;PipeWireまたはPulseAudio&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="インストール"&gt;インストール&lt;/h2&gt;
&lt;h3 id="arch-linuxaur"&gt;Arch Linux（AUR）&lt;/h3&gt;
&lt;p&gt;AURにパッケージが用意されているので、AURヘルパーでインストールできる。&lt;/p&gt;
&lt;div&gt;
 &lt;div class="codeblock--content"&gt;&lt;div class="highlight"&gt;&lt;div style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;yay -S hyprwhspr&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="セットアップ"&gt;セットアップ&lt;/h2&gt;
&lt;p&gt;インストール後、対話式のセットアップウィザードを実行する。&lt;/p&gt;
&lt;div&gt;
 &lt;div class="codeblock--content"&gt;&lt;div class="highlight"&gt;&lt;div style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hyprwhspr setup&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;ウィザードでは以下の設定を順に行う。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;音声認識バックエンドの選択&lt;/strong&gt; &amp;hellip; Parakeet TDT V3やWhisperなど、使用するモデルを選ぶ&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;モデルのダウンロード&lt;/strong&gt; &amp;hellip; 選択したバックエンドに応じたモデルをダウンロード&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ビジュアライザのテーマ設定&lt;/strong&gt; &amp;hellip; 録音中に表示されるビジュアライザの見た目を設定&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Waybar連携の設定&lt;/strong&gt; &amp;hellip; Waybarを使っている場合、ステータス表示を設定&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;systemdサービスの登録&lt;/strong&gt; &amp;hellip; ユーザサービスとして自動起動を設定&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;パーミッションの設定&lt;/strong&gt; &amp;hellip; ydotoolの実行に必要な権限を付与&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;インストールの検証&lt;/strong&gt; &amp;hellip; 設定が正しいことを確認&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;セットアップ完了後、&lt;strong&gt;ログアウト→ログイン&lt;/strong&gt;が必要。グループ権限の変更を反映させるため。&lt;/p&gt;</description></item><item><title>hyprwhspr 日本語音声入力セットアップの躓き</title><link>https://amgsk.dev/posts/hyprwhspr-setup/</link><pubDate>Sat, 14 Feb 2026 11:00:48 +0900</pubDate><guid>https://amgsk.dev/posts/hyprwhspr-setup/</guid><description>&lt;h2 id="問題"&gt;問題&lt;/h2&gt;
&lt;p&gt;音声の録音はできているが、認識結果が出力されない&lt;/p&gt;
&lt;h2 id="原因"&gt;原因&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;バックエンドが &lt;code&gt;onnx-asr&lt;/code&gt;（&lt;code&gt;nemo-parakeet-tdt-0.6b-v3&lt;/code&gt;）に設定されていた&lt;/li&gt;
&lt;li&gt;このモデルは英語専用のため、日本語音声を認識できなかった&lt;/li&gt;
&lt;li&gt;ログ上 &lt;code&gt;Transcription completed in 0.00s&lt;/code&gt; と表示され、実質何も処理されていなかった&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="対応内容"&gt;対応内容&lt;/h2&gt;
&lt;h3 id="1-バックエンドを-pywhispercpp-に変更"&gt;1. バックエンドを pywhispercpp に変更&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;~/.config/hyprwhspr/config.json&lt;/code&gt; を編集:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;transcription_backend&lt;/code&gt;: &lt;code&gt;onnx-asr&lt;/code&gt; → &lt;code&gt;pywhispercpp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;language&lt;/code&gt;: &lt;code&gt;ja&lt;/code&gt; を追加&lt;/li&gt;
&lt;li&gt;既にインストール済みの &lt;code&gt;ggml-base.bin&lt;/code&gt;（多言語Whisperモデル）を使用&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-small-モデルをダウンロード"&gt;2. small モデルをダウンロード&lt;/h3&gt;
&lt;p&gt;精度向上のため base → small に変更:&lt;/p&gt;
&lt;div&gt;&lt;div class="codeblock--name"&gt;モデルをダウンロードする&lt;/div&gt;
 &lt;div class="codeblock--content"&gt;&lt;div class="highlight"&gt;&lt;div style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hyprwhspr model download small&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;config.json&lt;/code&gt; に &lt;code&gt;&amp;quot;model&amp;quot;: &amp;quot;small&amp;quot;&lt;/code&gt; を追加。&lt;/p&gt;
&lt;h3 id="3-キーバインド設定"&gt;3. キーバインド設定&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;~/.config/hypr/hyprland.conf&lt;/code&gt; にトグル式バインドを設定:&lt;/p&gt;
&lt;div&gt;&lt;div class="codeblock--name"&gt;$XDG_CONFIG_HOME/hypr/hyprland.conf&lt;/div&gt;
 &lt;div class="codeblock--content"&gt;&lt;div class="highlight"&gt;&lt;div style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;1
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#79c0ff"&gt;bindd&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; SUPER ALT, D, Speech-to-text, exec, /usr/lib/hyprwhspr/config/hyprland/hyprwhspr-tray.sh record
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#79c0ff"&gt;bindd&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt; SHIFT, Shift_R, Speech-to-text, exec, /usr/lib/hyprwhspr/config/hyprland/hyprwhspr-tray.sh record&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Super+Alt+D&lt;/code&gt; または 右Shift で開始/停止をトグル&lt;/li&gt;
&lt;li&gt;push-to-talk（&lt;code&gt;bindd&lt;/code&gt;+&lt;code&gt;binddr&lt;/code&gt;）は修飾キーのリリースイベントが不安定なため断念&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="最終的な-configjson"&gt;最終的な config.json&lt;/h2&gt;
&lt;div&gt;&lt;div class="codeblock--name"&gt;$XDG_CONFIG_HOME/hyprwhspr/config.json&lt;/div&gt;
 &lt;div class="codeblock--content"&gt;&lt;div class="highlight"&gt;&lt;div style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 1
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 2
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 3
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 4
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 5
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 6
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 7
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 8
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 9
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;10
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;11
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;12
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;13
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#7ee787"&gt;&amp;#34;$schema&amp;#34;&lt;/span&gt;: &lt;span style="color:#a5d6ff"&gt;&amp;#34;https://raw.githubusercontent.com/goodroot/hyprwhspr/main/share/config.schema.json&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#7ee787"&gt;&amp;#34;use_hypr_bindings&amp;#34;&lt;/span&gt;: &lt;span style="color:#79c0ff"&gt;true&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#7ee787"&gt;&amp;#34;transcription_backend&amp;#34;&lt;/span&gt;: &lt;span style="color:#a5d6ff"&gt;&amp;#34;pywhispercpp&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#7ee787"&gt;&amp;#34;model&amp;#34;&lt;/span&gt;: &lt;span style="color:#a5d6ff"&gt;&amp;#34;small&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#7ee787"&gt;&amp;#34;language&amp;#34;&lt;/span&gt;: &lt;span style="color:#a5d6ff"&gt;&amp;#34;ja&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#7ee787"&gt;&amp;#34;rest_endpoint_url&amp;#34;&lt;/span&gt;: &lt;span style="color:#a5d6ff"&gt;&amp;#34;https://api.openai.com/v1/audio/transcriptions&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#7ee787"&gt;&amp;#34;rest_api_provider&amp;#34;&lt;/span&gt;: &lt;span style="color:#a5d6ff"&gt;&amp;#34;openai&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#7ee787"&gt;&amp;#34;rest_body&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#7ee787"&gt;&amp;#34;model&amp;#34;&lt;/span&gt;: &lt;span style="color:#a5d6ff"&gt;&amp;#34;gpt-4o-transcribe&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#7ee787"&gt;&amp;#34;audio_ducking&amp;#34;&lt;/span&gt;: &lt;span style="color:#79c0ff"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;その他のhyprwhsprのセットアップに関する内容は以下の記事でまとめているので、必要な方は参照してほしい。&lt;/p&gt;</description></item><item><title>Google Chromeを特定のプロファイルで起動する</title><link>https://amgsk.dev/posts/chrome-specified-profile/</link><pubDate>Tue, 18 Mar 2025 21:47:30 +0900</pubDate><guid>https://amgsk.dev/posts/chrome-specified-profile/</guid><description>&lt;p&gt;Google Chromeを特定のユーザープロファイルで直接起動する方法について紹介する。&lt;br&gt;
複数のプロファイルを使い分けている場合は便利と思う。
自分は仕事用やプライベート用それぞれで10個くらいのプロファイルを使用していて、作業によって切り替えたりしている。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プロジェクトN用のインフラ作業用(本番向け、STG向け）&lt;/li&gt;
&lt;li&gt;プロジェクトごとのテストアカウントA~Z&lt;/li&gt;
&lt;li&gt;プライベート用&lt;/li&gt;
&lt;li&gt;&amp;hellip;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このプロファイルの切り替えが微妙に面倒に感じていた。&lt;br&gt;
スクロールの量も増えてきていて、プロファイル選択で数秒掛かってしまっていた。&lt;/p&gt;
&lt;p&gt;以下のようにコマンドで起動すれば、指定したプロファイルでChromeを起動できる。&lt;br&gt;
既にそのプロファイルでタブが開かれていた場合でも、新しくウィンドウを開くような挙動となり、既存のプロファイルのウィンドウにフォーカスが飛ばなくなるので使いやすくもなる。&lt;/p&gt;
&lt;p&gt;つまり以下を特定のキーバインドで実行させてやればマウス操作は不要でストレスフリーというわけ。&lt;/p&gt;
&lt;div&gt;
 &lt;div class="codeblock--content"&gt;&lt;div class="highlight"&gt;&lt;div style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;1
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;2
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;3
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;google-chrome-stable --profile-directory&lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;&amp;#34;Default&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;google-chrome-stable --profile-directory&lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;&amp;#34;Profile 1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;google-chrome-stable --profile-directory&lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;&amp;#34;Profile N&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;google-chrome-stable --guest &lt;span style="color:#8b949e;font-style:italic"&gt;# ゲストモード&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="プロファイルの確認方法"&gt;プロファイルの確認方法&lt;/h2&gt;
&lt;img src="./chrome-version.png" alt="Profiles" width="100%"&gt;
&lt;p&gt;そのプロファイルで起動して、&lt;code&gt;chrome://version&lt;/code&gt;を開く。&lt;br&gt;
&lt;code&gt;Profile Path&lt;/code&gt;に記載してあるディレクトリがそれ。&lt;/p&gt;
&lt;p&gt;ちなみに、他のプロファイルも&lt;code&gt;~/.config/google-chrome/&lt;/code&gt;配下のディレクトリ名にあるが、このディレクトリ内のファイルを見てもプロファイル名を導き出すことは難しかった。メンドイけど一つ一つ確認するしかなさそう。&lt;/p&gt;
&lt;div&gt;
 &lt;div class="codeblock--content"&gt;&lt;div class="highlight"&gt;&lt;div style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 1
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 2
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 3
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 4
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 5
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 6
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 7
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 8
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt; 9
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;10
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;11
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;12
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679"&gt;13
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;amgsk@arch-desk ~/d/m/blog &lt;span style="color:#ff7b72;font-weight:bold"&gt;(&lt;/span&gt;main&lt;span style="color:#ff7b72;font-weight:bold"&gt;)&lt;/span&gt;&amp;gt; ls ~/.config/google-chrome/ | grep &lt;span style="color:#a5d6ff"&gt;&amp;#34;^\(Default\|Profile\)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Default
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Profile &lt;span style="color:#a5d6ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Profile &lt;span style="color:#a5d6ff"&gt;10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Profile &lt;span style="color:#a5d6ff"&gt;11&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Profile &lt;span style="color:#a5d6ff"&gt;12&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Profile &lt;span style="color:#a5d6ff"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Profile &lt;span style="color:#a5d6ff"&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Profile &lt;span style="color:#a5d6ff"&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Profile &lt;span style="color:#a5d6ff"&gt;6&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Profile &lt;span style="color:#a5d6ff"&gt;7&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Profile &lt;span style="color:#a5d6ff"&gt;8&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Profile &lt;span style="color:#a5d6ff"&gt;9&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;Preferences.name&lt;/code&gt;というそれっぽい値を抽出してみたが求めている情報とは違った。&lt;/p&gt;</description></item></channel></rss>