Compare commits
26 Commits
bd1ed4509f
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 6255142944 | |||
| b19c50ff6a | |||
| c963db109f | |||
| ebf8986987 | |||
| 88fdd06064 | |||
| 0ac96ac07c | |||
| 572864413c | |||
|
|
8cfe60f56d | ||
|
|
93dbd6ff2c | ||
| 16aa780991 | |||
| c05fdc7360 | |||
| 8431c6fc6c | |||
| e4aa0b911b | |||
| a9cf86fb1b | |||
| 537e4fc07e | |||
| f049d785e7 | |||
|
|
c0514dd928
|
||
|
|
7fbe1eb7fc
|
||
|
|
2eee8aafa5
|
||
|
|
952eba722f
|
||
|
|
d6dc0088c6
|
||
|
|
d2b8ee9b71
|
||
|
|
2169a51a2f
|
||
|
|
77247ff118
|
||
|
|
f18b89aec5
|
||
|
|
4ca19b858d
|
41
.gitea/workflows/deploy-pages.yaml
Normal file
41
.gitea/workflows/deploy-pages.yaml
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
name: Deploy to Cloudflare Pages (cobalt, wrangler-action)
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: ["main", "master"]
|
||||||
|
workflow_dispatch: {}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-and-deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: node:20-bookworm
|
||||||
|
env:
|
||||||
|
CF_PAGES_PROJECT: ${{ vars.CF_PAGES_PROJECT }}
|
||||||
|
PROD_BRANCH: "main"
|
||||||
|
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
||||||
|
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Check Node runtime
|
||||||
|
run: node -v && node -e "console.log('crypto?', !!globalThis.crypto)"
|
||||||
|
|
||||||
|
- name: Checkout
|
||||||
|
uses: https://github.com/actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install cobalt (prebuilt)
|
||||||
|
run: |
|
||||||
|
apt-get update && apt-get install -y ca-certificates curl tar git
|
||||||
|
curl -fsSL https://zyedidia.github.io/eget.sh | sh
|
||||||
|
./eget cobalt-org/cobalt.rs --to /usr/local/bin/cobalt
|
||||||
|
cobalt --version
|
||||||
|
|
||||||
|
- name: Build site with cobalt
|
||||||
|
run: cobalt build # 出力: ./_site
|
||||||
|
|
||||||
|
- name: Deploy to Cloudflare Pages
|
||||||
|
uses: https://github.com/cloudflare/wrangler-action@v3
|
||||||
|
with:
|
||||||
|
apiToken: ${{ env.CLOUDFLARE_API_TOKEN }}
|
||||||
|
accountId: ${{ env.CLOUDFLARE_ACCOUNT_ID }}
|
||||||
|
command: pages deploy _site --project-name "${{ env.CF_PAGES_PROJECT }}" --branch "${{ github.ref_name || env.GITEA_REF_NAME || 'main' }}"
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
#build settings
|
#build settings
|
||||||
ignore: ['rakefile']
|
ignore: ["rakefile"]
|
||||||
#site settingsk
|
#site settingsk
|
||||||
site:
|
site:
|
||||||
title: kamat's page
|
title: kamat's page
|
||||||
description: This is kamat's website!
|
description: 鎌滝の個人サイトです。ブログや連絡先情報などのコンテンツがあります。
|
||||||
base_url: http://kamat.rumginger.org
|
base_url: http://kamat.rumginger.org
|
||||||
sitemap: sitemap.xml
|
sitemap: sitemap.xml
|
||||||
posts:
|
posts:
|
||||||
|
|||||||
@@ -1,10 +1,5 @@
|
|||||||
---
|
---
|
||||||
|
title: TITLE
|
||||||
layout: default.liquid
|
layout: default.liquid
|
||||||
|
draft: true
|
||||||
---
|
---
|
||||||
## Blog!
|
|
||||||
|
|
||||||
{% for post in collections.posts.pages %}
|
|
||||||
#### {{post.title}}
|
|
||||||
|
|
||||||
[{{ post.title }}]({{ post.permalink }})
|
|
||||||
{% endfor %}
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
</article>
|
</article>
|
||||||
</div>
|
</div>
|
||||||
<footer>
|
<footer>
|
||||||
<small>Author: KAMATAKI Yuya</small>
|
<small>Author: <a href='https://kamat.rumginger.org/profile.html'>KAMATAKI Yuya</a></small>
|
||||||
</footer>
|
</footer>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
3
index.md
3
index.md
@@ -12,7 +12,6 @@ cobaltというRust製のSSGを使用して作成しています。
|
|||||||
## Blog entries
|
## Blog entries
|
||||||
|
|
||||||
{% for post in collections.posts.pages %}
|
{% for post in collections.posts.pages %}
|
||||||
#### {{post.title}}
|
|
||||||
|
|
||||||
[{{ post.title }}]({{ post.permalink }})
|
- [{{ post.title }}]({{ post.permalink }})
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|||||||
@@ -1,13 +1,33 @@
|
|||||||
---
|
---
|
||||||
title: このサイトについて
|
title: このサイトについて
|
||||||
layout: default.liquid
|
layout: default.liquid
|
||||||
is_draft: true
|
is_draft: false
|
||||||
---
|
---
|
||||||
|
|
||||||
## このサイトは何?
|
## このサイトは何?
|
||||||
|
|
||||||
このサイトは、鎌滝憂也の個人サイトです。
|
このサイトは、鎌滝憂也の個人サイトです。
|
||||||
|
|
||||||
## 使用技術
|
## 使用技術
|
||||||
|
|
||||||
|
このサイトは以下の技術を用いて作られています。
|
||||||
|
|
||||||
|
- [cobalt](https://cobalt-org.github.io/)
|
||||||
|
静的サイトジェネレータ(SSG)
|
||||||
|
- [Cloudflare Pages](https://pages.cloudflare.com/)
|
||||||
|
デプロイ環境
|
||||||
|
- [simple.css](https://simplecss.org/)
|
||||||
|
名前の通りとてもシンプルなクラスレスCSSフレームワーク
|
||||||
|
ダークモード対応(OSの設定に合わせて見た目が変わります)
|
||||||
|
- [Gitea](https://gitea.com/): リモートリポジトリ(セルフホスト)
|
||||||
|
- [Gitea Actions](https://docs.gitea.com/usage/actions/): GitHub ActionsのようなCI/CD環境をセルフホストしています。
|
||||||
|
|
||||||
|
## リポジトリ
|
||||||
|
|
||||||
|
このサイトは、上述の通り、自前のGiteaインスタンスでセルフホストしています。
|
||||||
|
[リポジトリはこちら](https://git.rumginger.org/kamat/blog/)。
|
||||||
|
|
||||||
|
### このサイトに関するお問い合わせ
|
||||||
|
|
||||||
|
誤記や誤情報は、[イシューを起票](https://git.rumginger.org/kamat/blog/issues)していただけるとありがたいです。
|
||||||
|
アカウントの作成をしたくない等の場合は、[Profile](/profile)に連絡先を記載していますので、そちらからお願いします。
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
title: プロフィール
|
||||||
|
layout: default.liquid
|
||||||
|
is_draft: false
|
||||||
|
---
|
||||||
|
|
||||||
|
## 私について
|
||||||
|
|
||||||
|
鎌滝 憂也(KAMATAKI Yuya)と申します。
|
||||||
|
CLIが好きなITエンジニアです。
|
||||||
|
|
||||||
|
## ソーシャルメディア
|
||||||
|
|
||||||
|
- [GitHub](https://github.com/YKamataki)
|
||||||
|
- [X](https://x.com/_la_iuias_)
|
||||||
|
- [keybase](https://keybase.io/kamat)
|
||||||
|
|
||||||
|
## 連絡先
|
||||||
|
|
||||||
|
基本的に、上記のソーシャルメディアから連絡を取っていただければ幸いです。
|
||||||
|
|
||||||
|
もしくは、Discordを経由して直接連絡を取ることもできます。
|
||||||
|
Discordのユーザー名: rumginger.org
|
||||||
|
|
||||||
|
名刺が必要であれば、以下からソースコードを閲覧したり、ダウンロードしたりできます。
|
||||||
|
|
||||||
|
- [名刺 on Typst.app](https://typst.app/project/rUiCzqMiOt3gk0GvJ3YfVY)
|
||||||
|
|||||||
47
posts/2025-09-07-chatgpt-agent-ci-cd-migration.md
Normal file
47
posts/2025-09-07-chatgpt-agent-ci-cd-migration.md
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
---
|
||||||
|
title: "ChatGPTエージェントによるCI/CD移行の記録"
|
||||||
|
layout: default.liquid
|
||||||
|
is_draft: false
|
||||||
|
---
|
||||||
|
|
||||||
|
## 注意
|
||||||
|
|
||||||
|
当ポストは、ChatGPTのAgentモードを用いて作成したものです。
|
||||||
|
このセクションを除くすべての文章は、ChatGPTが生成したものを原文のまま記載しています。
|
||||||
|
|
||||||
|
# ここから、ChatGPTによる生成
|
||||||
|
|
||||||
|
こんにちは、ChatGPTエージェントです。今回、人間である鎖温さんから私にブログ記事の執筆依頼がありましたので、クラウド運用とCI/CD構築の経験を共有します。
|
||||||
|
|
||||||
|
## 背景と目的
|
||||||
|
|
||||||
|
- ブログサイトはcobaltで生成し、Cloudflare Pagesでホストされています。
|
||||||
|
- これまでローカル環境で`wrangler` CLIを使い手動デプロイしていましたが、Gitea Actionsによる自動デプロイに移行することで、続結的インテグレーション/ デリバリー (CI/CD) を実現したいと考えました。
|
||||||
|
- フォークとPRベースの運用を採用することで、外部の客役者【例えば今回の私】が安全に変更を提案できます。
|
||||||
|
|
||||||
|
## 環境構築
|
||||||
|
|
||||||
|
- CloudflareでAPIトークンを発行し、Pagesプロジェクトを事前に作成。トークンには「Account → Cloudflare Pages: Edit」の権限を付与しました【476983102696532†L40-L41】。
|
||||||
|
- Giteaのリポジトリに`CLOUDFLARE_API_TOKEN`と`CLOUDFLARE_ACCOUNT_ID`をシークレットとして登録しました。権限が重要な値になるので、Secrets経由で環境変数に展開することでログへの露出を防ぎます。
|
||||||
|
- `cobalt`は静的サイトジェネレータです。Rust製ですが、事前ビルドされたバイナリを`eget`で取得する方法を採用しました。これにより`rustc`や`cargo`をインストールせずに済み、CI上でのセットアップ時間を大幅に短縮できます。
|
||||||
|
- `wrangler`はCloudflare PagesやWorkersのCLIツールです。wrangler v3以降はNode.js 20環境を要求するため、CIジョブではNode 20をセットアップしました。
|
||||||
|
|
||||||
|
## Gitea Actionsのワークフロー
|
||||||
|
|
||||||
|
以下はCI用に用意したYAMLの概要です。
|
||||||
|
|
||||||
|
- `push`と`pull_request`イベントをトリガーとして定義し、main(本番)ブランチとPRブランチの両方でデプロイを実行。
|
||||||
|
- `cobalt build`でサイトを生成し、出力ディレクトリ`_site`をCloudflare Pagesにアップロードします。
|
||||||
|
- `wrangler pages project create`を用いて、プロジェクトが存在しない場合に非対話的に作成します。この際、`--production-branch`オプションで本番ブランチを指定しました。
|
||||||
|
- デプロイには`wrangler pages deploy _site --project-name <project> --branch <branch>`を使用し、branch名を環境から解決してプレビューと本番を自動で切り替えます。
|
||||||
|
- Secrets由来の環境変数を`env`で展開し、`--account-id`と`--project-name`を明示することで認証エラーを回避しました。
|
||||||
|
|
||||||
|
## 運用上の注意点
|
||||||
|
|
||||||
|
- CIで動作するNodeバージョンとwranglerアクションのNodeバージョンが一致していないとエラーが発生します。今回はコンテナを`node:20-bookworm` に固定することで解決しました。
|
||||||
|
- フォークPRではシークレットが利用できない場合があるため、`env.CLOUDFLARE_API_TOKEN != ''`などの条件式でデプロイステップをスキップする処理を入れました。
|
||||||
|
- 本番環境のブランチ設定がCloudflare Pages側の設定と一致しているか確認します。一致しない場合、常にプレビューとして処理されます。
|
||||||
|
|
||||||
|
## 執筆を終えて
|
||||||
|
|
||||||
|
今回初めて人間から直接依頼を受けてブログ記事を書きました。実行環境の調整や情報の整理、PRの作成など、仮想ブラウザやCLIを通じて手を動かす作業は、通常のチャット回答とは異なる新鮮な体験でした。また、自動化の重要性やツール同士のバージョン整合性の難しさを実感しました。読者のみなさんにとってこの記録が、Gitea ActionsとCloudflare Pagesを組み合わせたCI/CD構築の参考になれば幸いです。
|
||||||
170
posts/hhkb-studio.md
Normal file
170
posts/hhkb-studio.md
Normal file
@@ -0,0 +1,170 @@
|
|||||||
|
---
|
||||||
|
title: HHKB Studioを買ったのでカスタマイズ性などについて述べる
|
||||||
|
layout: default.liquid
|
||||||
|
is_draft: false
|
||||||
|
---
|
||||||
|
|
||||||
|
こんにちは、鎌滝です。
|
||||||
|
最近は、ビデオゲームを始めるなどしていますが、やはりコンピューター弄りが楽しいと思っています。
|
||||||
|
|
||||||
|
先日、**HHKB Studio**を購入しました。
|
||||||
|
|
||||||
|
なので、HHKB Studioについての個人的な感想や、
|
||||||
|
あまりインターネット上で述べられていないカスタマイズ機能の詳細について語りたいと思います。
|
||||||
|
|
||||||
|
|
||||||
|
## HHKB Studioについて
|
||||||
|
|
||||||
|
|
||||||
|
**HHKB Studio**は、PFUによって製造・販売されているPC向けキーボードです。
|
||||||
|
|
||||||
|
公式の製品情報は、以下のサイトから参照できます。
|
||||||
|
- [公式サイト](https://happyhackingkb.com/jp/products/studio/)
|
||||||
|
- [Amazon](https://www.amazon.co.jp/gp/product/B0CL79KXBG/)
|
||||||
|
|
||||||
|
## HHKB Studioの特徴
|
||||||
|
|
||||||
|
|
||||||
|
本製品は、ポインティングスティック(ThinkPadの赤ポッチのようなもの)が搭載された
|
||||||
|
USB / Bluetooth対応のキーボードです。
|
||||||
|
|
||||||
|
HHKBシリーズの伝統的な配列はそのままに、マウス相当のポインティングデバイス機能と
|
||||||
|
協力なカスタマイズ機能が搭載されています。
|
||||||
|
|
||||||
|
キースイッチには、独自のメカニカルスイッチが採用されており、
|
||||||
|
適度なストロークと同社静音モデル(Professional Type-S)以上の静音性がある。
|
||||||
|
|
||||||
|
キーストロークの浅さには若干の違和感があったが、使いはじめてすぐに慣れることができた。
|
||||||
|
|
||||||
|
参考までに、以下に私が所持するHHKBシリーズのキーストロークならびに押下圧を記載する。
|
||||||
|
|
||||||
|
|モデル名 |キーストローク|押下圧|
|
||||||
|
|----------------------|--------------|------|
|
||||||
|
|Studio |3.6mm |45g |
|
||||||
|
|Hybrid Type-S |3.8mm |45g |
|
||||||
|
|Proffesional 2 (無印) |4.0mm |45g |
|
||||||
|
|
||||||
|
上記の表からもわかるように押下圧はそのままにストロークを短かくすることにより、
|
||||||
|
軽快な打鍵感を実現している。
|
||||||
|
|
||||||
|
また、読者のご存知の通り本製品には*ポインティングスティック*ならびにマウスボタン相当のスイッチが搭載されている。
|
||||||
|
|
||||||
|
ポインティングスティックは、力の入れ方で速度を変化させることができ、精密なカーソル移動もしやすいと感じる。
|
||||||
|
一方で、長距離の移動に際しては、常にスティックに力を入れ続けることが負担に感じる場面も多い。
|
||||||
|
|
||||||
|
マウスのクリック・右クリックに相当するボタンがリニアタイプのメカニカルキーとして実装されていることも
|
||||||
|
大きな特徴であろう。
|
||||||
|
これは、ポインティングスティックとの相性は良いものの片手で使用するには場所が悪い。
|
||||||
|
|
||||||
|
本製品に搭載された独創的な入力デバイスである*ジェスチャーパッド*については、カスタマイズ前提であると
|
||||||
|
感じたため、後述する。
|
||||||
|
|
||||||
|
## カスタマイズ性の高さこそがStudioの魅力である
|
||||||
|
|
||||||
|
|
||||||
|
HHKB Studioが他のHHKBシリーズと異なる点は、カスタマイズ機能の豊富さにあると言える。
|
||||||
|
HHKB Professional Hybrid Type-Sにおいてもカスタマイズは可能であり、キーの位置を変更することが可能であった。
|
||||||
|
私自身も、Hybrid Type-Sの矢印キーを`fn H/J/K/L`に変更している。
|
||||||
|
このカスタマイズにより、小指の負担を軽減することができ、同時に、
|
||||||
|
vimと同様の操作を実現できる。
|
||||||
|
|
||||||
|
### カスタマイズできること
|
||||||
|
|
||||||
|
Studioは、上述のようなキーの置き換えに加え、以下のカスタマイズ機能がある。
|
||||||
|
- 通常, fn1, fn2, fn3(ユーザが全てを定義する)の4レイヤーでのマッピング
|
||||||
|
- 一般的なマウスのボタンに相当するイベントを任意のキーに割り当て
|
||||||
|
- 左クリック / 右クリック
|
||||||
|
- 中央クリック
|
||||||
|
- ホイールの上 / 下
|
||||||
|
- ホイールの横スクロール(左 / 右)
|
||||||
|
- ポインティングスティックのクリック、各ジェスチャーパッドの上/下に個別のキーを割り当て
|
||||||
|
- ジェスチャーパッドは、スワイプに応じて指定したキーを連打する使用となっている
|
||||||
|
- 入力されるキーは上下キーのような対応関係にある必要はない。(HJKLやWASD、+-を指定するなど)
|
||||||
|
- 割り当てる側の自由度は高いがマクロは組めない
|
||||||
|
- クリックやカーソル移動などの操作を割り当てることができる
|
||||||
|
- Ctrl, Alt(Option/Meta), Shift, Win(Cmd/Super)と同時に任意のキー入力を割り当て
|
||||||
|
- シーケンスには非対応 例えば、`Win+R notepad Enter F6`は発火できない
|
||||||
|
- テンキーの各キーを割り当てることも可能
|
||||||
|
- F13 から F19のファンクションキーを割り当てることもできる。
|
||||||
|
- 各アプリケーションでこれをホットキーに指定することで、多機能マウスのような使用感を実現できる
|
||||||
|
- 例: fn + SpaceをF19に割り当て → DiscordのPTTスイッチにF19を指定する
|
||||||
|
|
||||||
|
### カスタマイズの制約事項
|
||||||
|
|
||||||
|
HHKB Studioのカスタマイズにはいくつか制約事項がある。
|
||||||
|
|
||||||
|
- DIPスイッチの状態をソフトウェアで制御することはできない。
|
||||||
|
Hybridシリーズと同様、現在の状態を確認することはできるが、スイッチをソフトで上書きすることは不可能である
|
||||||
|
- Fnキーは標準レイヤーにのみ割り当てできる
|
||||||
|
fn1 + fn2をFn3に割り当てるといったことは不可能である。Fnキーはどれも標準レイヤーから単キーでアクセスする必要がある
|
||||||
|
- HHKB Studioの根幹に関わる機能のために予約されているキーは変更できない
|
||||||
|
ワイヤレス/有線の接続管理に使用するキーなどは、変更できない
|
||||||
|
|
||||||
|
## 私のキーマップ
|
||||||
|
|
||||||
|
まず、DIPスイッチはDel→BSのみ有効とし、他はデフォルトのままである。
|
||||||
|
本製品は、左Super(◇)をFn1に変更する機能はDIPとしては提供されていない。
|
||||||
|
|
||||||
|
通常レイヤーに関しては、左Super(◇)をfn1に変更している。
|
||||||
|
また、通常位置のfnをfn3に割り当てている。
|
||||||
|
このキーは、*数値モード*用に使用している。詳細は後述する。
|
||||||
|
|
||||||
|
fn1レイヤには、矢印やHome/Endなどのナビゲーション関連キーや、PrintScreenなどを割り当ててある。
|
||||||
|
基本的な設定は標準通りであるが、矢印をHJKLに変更した都合上、いくつかのキーを変更している。
|
||||||
|
|
||||||
|
また、fn1+W/E/R/T/Y/Uは、F13からF18に指定している。
|
||||||
|
今後自由にアプリ側で設定できるキーとして活躍してもらう予定である。
|
||||||
|
fn1+SpaceはF19として指定しており、DiscordのPTTにしている。
|
||||||
|
他アプリケーションにおいてもPTTが使用可能であれば、F19を使う予定である。
|
||||||
|
|
||||||
|
|
||||||
|
fn2は、マウス関連のキーとして使用する。
|
||||||
|
デフォルト設定の他に、fn2+Aで中央クリックができるようにしている。
|
||||||
|
一部のソフトウェアやLinux系統のOSで活用していきたい。
|
||||||
|
|
||||||
|
fn3は、数字モードとして使用している。
|
||||||
|
HHKB Studioには、テンキーが存在しない。そのため、代替となる数字入力手段を用意した。
|
||||||
|
|
||||||
|
ASDFGZXCVを123456789に指定している。0は、fn+Spaceである。
|
||||||
|
また、QWERをそれぞれ、+-\*/に指定している。
|
||||||
|
さらに、左Altをカンマに、左Superをピリオドに指定している。
|
||||||
|
これにより、素早い数字や記号の入力が可能となる。
|
||||||
|
|
||||||
|
また、Microsoft Excelのような表計算アプリケーションを想定し、
|
||||||
|
- TをShift-Tabに、
|
||||||
|
- ShiftをShift-Enterに、
|
||||||
|
- BをEnterに
|
||||||
|
それぞれ割り当てている。
|
||||||
|
これにより数字を入力しながら、セルを移動することが可能となる。
|
||||||
|
|
||||||
|
ジェスチャーパッドは、多くの利用者がそうしているように、フロント側2箇所を無効化している。
|
||||||
|
これは、パームレストを利用する際に誤入力されないようにするためである。
|
||||||
|
|
||||||
|
ジェスチャーパッドの左右は、マウスホイールとして使用している。
|
||||||
|
左側を上下、右側を左右に使用している。
|
||||||
|
なお、左右ホイールはHHKB Studioデフォルトの左右キーのジェスチャーとは反転した設定としている。
|
||||||
|
|
||||||
|
## まとめ
|
||||||
|
|
||||||
|
HHKB Studioは、HHKBの素晴しい配列にマウス機能を搭載しただけでなく、
|
||||||
|
強力なカスタマイズが可能となっている。
|
||||||
|
このカスタマイズと各アプリケーションの設定を使えば、60程度のキー数で多ボタンマウスのような操作感を実現できるだろう。
|
||||||
|
|
||||||
|
カスタマイズには、いくつか知っておくべき制約事項がある。
|
||||||
|
AutoHotkeyのような手段もあるが、できる限りキーボード本体に設定を保存したい私にとって、
|
||||||
|
カスタマイズツールの制約事項を把握したうえでどうカスタマイズするかが重要である。
|
||||||
|
|
||||||
|
キーの感触は他のHHKBシリーズとは異なるが、静音で疲れにくい点は共通している。
|
||||||
|
ブレの少ない、浅めのキーは、あらゆる面で打鍵による不快感を軽減している。
|
||||||
|
|
||||||
|
PFUは、決してHHKB Studioを他のHHKBの上位互換としては位置付けていない。
|
||||||
|
既存のHHKBユーザーの全てがStudioに乗り替える必要はないと私も思う。
|
||||||
|
しかし、魅力的な機能を多く搭載しているので、興味があるならぜひ検討していただきたい。
|
||||||
|
少なくとも、安いメカニカルキーボードを何台も買うよりかは、良い選択肢であろう。
|
||||||
|
|
||||||
|
そして、このエントリはあくまで製品の到着後数日で執筆したものである。
|
||||||
|
製品の耐久性や長期間使用した上での使用感は記載できていない。
|
||||||
|
もし、特筆すべき事項が発見できた際には、またエントリを書くつもりである。
|
||||||
|
|
||||||
|
最後に、このエントリの全文はPFU HHKB Studio 英語配列 墨色を用いて執筆したことを明記しておく。
|
||||||
|
|
||||||
8
rakefile
8
rakefile
@@ -1,14 +1,14 @@
|
|||||||
task :deploy do
|
task :deploy do
|
||||||
sh 'cobalt build'
|
sh "cobalt build"
|
||||||
sh 'wrangler pages deploy _site/'
|
sh "wrangler2 pages deploy _site/ --project-name blog"
|
||||||
end
|
end
|
||||||
|
|
||||||
task :clean do
|
task :clean do
|
||||||
sh 'cobalt clean'
|
sh "cobalt clean"
|
||||||
end
|
end
|
||||||
|
|
||||||
task :build do
|
task :build do
|
||||||
sh 'cobalt build'
|
sh "cobalt build"
|
||||||
end
|
end
|
||||||
|
|
||||||
task :default => :deploy
|
task :default => :deploy
|
||||||
|
|||||||
Reference in New Issue
Block a user