オンデマンド・フック
On-demand Hook.
概要
必要に応じて実行ファイルをフックして、動作を変えること
手順
1. PATHの最上位にオンデマンドフック用のディレクトリを追加しておく
2. 動作を変えたい実行ファイルと同名のファイルを、1. に追加する
例: 日中にGitにコミットしたくない(活動していることを履歴に残したくない)
Ans: オンデマンドフックで、日中はGit.exeをフックしましょう
たとえばgit.batをつくる
code:git.bat
echo これはダミーです。8:00~18:00の間はgitは封じます
そして8:00~18:00の間だけgit.batを配置すると、その間はgitが動きません
フックの仕込み方
グローバル
グローバルのPATHにフック用ディレクトリをセット
ローカル
グローバルにはセットしないが、ローカル(たとえば今使ってるターミナル)でのみ行いたい場合、PATHの先頭にフック用ディレクトリをセットする
あるいは単にローカルディレクトリにgit.batを置く、などでも良いsta.icon
しかし完璧に封じたい場合は、やはりPATHを通すのが良い
評価
別に目新しくなさそうだねsta.icon
interceptと表現されている
https://gyazo.com/cd349eccbbd89d088665e13ac0830628
簡易版やコストメリットがありそう
Linuxではaliasコマンドあるよね
シャドウという表現、そしてpyenv系のツールでも別に普通に使ってる
npx, asdf, pyenv などがシム方式で多環境切替を実装している(同名コマンドを shadow する)
実装
たぶん設定と解除をコマンド一発でできるといいのだと思う
hookgit。gitを封じる。たとえば日中履歴残したくない場合
hookcode。codeを封じる(VSCode)。たとえば日中(すでにやりすぎて自制したくて)コーディングを封じる場合
unhook。全部解除する
みたいな?
他の例は?
わからないsta.icon
ほしいね
git.exe置き換えます、は正直弱い
かといって環境系切り替えたいならpython始めその手のツールがあるし
モックやスタブとして?
LLMに相談してみた
pipやyoutube-dlなど外部から何かダウンロードしてくるものを一時的にラップ
遊ぶな、集中しろ
ゲーム系実行ファイルを一時的にラップ
仕事する時間です
つまりこれだけ
5. ユーザー習慣の改善支援
・意図的に自分の行動パターンを抑制するために、使いたいタイミングと使いたくないタイミングを切り替える。
例: ゲームや動画再生アプリの実行ファイルをフックして、特定の時間帯(例:勤務時間や勉強時間中)には起動できないようにする。
こうした仕組みにより、自己管理を強化するツールとして利用可能です。
1. 作業モードの切替
・仕事とプライベートで実行ファイルの振る舞いを切り替えることが可能です。
例: 仕事中はソーシャルメディア系のアプリ(TwitterやFacebookなど)をフックして、起動をブロックし、集中を助ける。
例: プライベートタイムには、逆にブロックを解除して利用可能にする。
休憩しろ
7. 集中/自制支援
code/vscode/intellij のフック
9:00〜17:00 以外は起動禁止(強制的に休憩を促す)
全体的に証跡残す処理やウイルススキャン処理を差し込むなどのソリューションが目立つsta.icon
純粋に封じるためにラップする、はあまり用途なさそうだなぁ
LLMでもほとんど出てこないなら、出せまい