やったこと等を吐き捨てるための壺

Antigravityにアプリのアイコンを生成させる

概要

AntigravityのChatで指示するとアプリで利用するアイコンを生成できる。

生成したアイコンのリサイズやワークスペース上への配置もChatから指示すれば可能。

はじめに

AntigravityはNano Bananaが使える。(しかも無料)

そのためワークスペース上のコードを基にアプリアイコンを生成できるのでは?と思い試してみた。

試した内容

現在、スーパードラッグ付きのマウスジェスチャChrome拡張機能で開発しているため、このアプリのアイコンを生成させてみた。


画像生成

AntigravityのChatを開き、画像生成を指示する。(使用モデルはGemini 3 Pro)

アイコンに対する要件は特になかったので、プロンプトは以下のようにシンプルなものにした。

このワークスペースの処理内容を基に最適なアイコン画像を生成して

するとワークスペースに置いてあるドキュメントやpackage.jsonの内容を読み込んでアイコンを生成してくれた。

画像生成後の回答↓

リサイズ

Chrome拡張機能用に画像のリサイズとワークスペースへの配置も行ってくれるらしいので試してみた。

このアイコンを採用します。リサイズと配置をお願いします。

すると専用のスクリプトを生成して、それを叩く形で実行された。

生成されたスクリプト

Add-Type -AssemblyName System.Drawing

$sourcePath = "<生成された画像ファイルのパス>"
$destDir = "<リサイズ後の配置先>"

# Ensure destination directory exists
if (!(Test-Path -Path $destDir)) {
    New-Item -ItemType Directory -Path $destDir | Out-Null
}

function Resize-And-Save {
    param (
        [string]$InputPath,
        [string]$OutputPath,
        [int]$Width,
        [int]$Height
    )
    
    try {
        $image = [System.Drawing.Image]::FromFile($InputPath)
        $bitmap = New-Object System.Drawing.Bitmap($Width, $Height)
        $graphics = [System.Drawing.Graphics]::FromImage($bitmap)
        
        $graphics.SmoothingMode = [System.Drawing.Drawing2D.SmoothingMode]::HighQuality
        $graphics.InterpolationMode = [System.Drawing.Drawing2D.InterpolationMode]::HighQualityBicubic
        $graphics.PixelOffsetMode = [System.Drawing.Drawing2D.PixelOffsetMode]::HighQuality
        
        $graphics.DrawImage($image, 0, 0, $Width, $Height)
        
        $bitmap.Save($OutputPath, [System.Drawing.Imaging.ImageFormat]::Png)
        
        Write-Host "Created $OutputPath"
    }
    catch {
        Write-Error "Failed to resize image: $_"
    }
    finally {
        if ($graphics) { $graphics.Dispose() }
        if ($bitmap) { $bitmap.Dispose() }
        if ($image) { $image.Dispose() }
    }
}

Resize-And-Save -InputPath $sourcePath -OutputPath "$destDir\icon16.png" -Width 16 -Height 16
Resize-And-Save -InputPath $sourcePath -OutputPath "$destDir\icon48.png" -Width 48 -Height 48
Resize-And-Save -InputPath $sourcePath -OutputPath "$destDir\icon128.png" -Width 128 -Height 128

スクリプトも1発で動いて、ちゃんとファイル出力されていた。

さいごに

個人的にはChrome拡張機能作る上で一番面倒だったのがアイコンの作成なので、これをAIに任せられるようになってめっちゃ楽になった。

これが無料で使えるのはありがたい。

Cursorのタブ補完に関数名を付けてもらう

概要

関数の上に↓のコメントを付けつつ関数の中身を実装すれば、タブ補完が勝手に関数名考えてくれるので便利

// TODO: 関数名を責務に合ったものにする

はじめに

Cursorのタブ補完機能は結構な頻度で発動する上に精度が高い。

なので単純なタブ補完の枠を超えてこの機能を使うことができるため、関数名の考案に使ってみた。

方法

関数の上に↓のコメントを付けつつ、関数のスケルトンを作る。

// TODO: 関数名を責務に合ったものにする

中身を実装する。

すると「TAB to jump here」が出てくる。

タブを押してカーソル移動したら関数名の候補が出てくるので

もう1回タブを押して反映するだけ

おわりに

Chatで関数名考案する方法もあるけど、タブ補完使った方が早いしこっちでも十分精度いいの出してくれる。

複数候補出させたいならChat、それ以外はタブ補完で使い分ければいいかな?

【Windows】ZedのターミナルをGit Bashにする

結論

settings.jsonにGit Bashのパスを書く

{
  "terminal": {
    "shell": {
      "program": "C:\\Program Files\\Git\\bin\\bash.exe"
    }
  }
}

内容

WindowsでZedを利用する場合、デフォルトではPowerShellで開かれる。

これをGit Bashに変えたい場合、設定ファイルsettings.jsonを変更する必要がある。

やり方

右上にあるトグルからSettingsを開く。

[Terminal]→[Shell]から「Edit in settings.json」をクリックする。

settings.jsonが開くため、以下を記載する。

JSONで設定しているため、パスのバックスラッシュのエスケープが必要。

{
  "terminal": {
    "shell": {
      "program": "<Git Bashのフルパス>"
    }
  }
}

自分が設定した際の内容はこんな感じ。

ファイルを開いた時点で既に色々な設定値が書かれていたため、1階層目に追記する形で設定した。

// Zed settings
//
// For information on how to configure Zed, see the Zed
// documentation: https://zed.dev/docs/configuring-zed
//
// To see all of Zed's default settings without changing your
// custom settings, run `zed: open default settings` from the
// command palette (cmd-shift-p / ctrl-shift-p)
{
  "telemetry": {
    "diagnostics": true,
    "metrics": true
  },
  "minimap": {
    "show": "auto"
  },
  "file_types": {},
  "base_keymap": "VSCode",
  "icon_theme": "Zed (Default)",
  "ui_font_size": 16,
  "buffer_font_size": 15,
  "theme": {
    "mode": "dark",
    "light": "One Light",
    "dark": "One Dark"
  },
  "terminal": {
    "shell": {
      "program": "C:\\Program Files\\Git\\bin\\bash.exe"
    }
  }
}

結果

開きなおしたらちゃんとGit Bashになった。

参考

公式ドキュメント

ページャを無効にしないとCursorのAgentが止まる

結論

Gitの設定でページャを無効にしておけばOK

git config --global core.pager ''

現象

例えばAgentに以下のような指示を出すとする。

コミットID`203510931c20b3178f04d9032f5d11be9c15498d`の変更内容を解説して

そうした場合、Agentはgit showを実行して差分を取り、その内容を基に解説をしてくれる。 ただ、差分の内容が大きすぎると末尾に:が出てきてAgentがそこで止まる。

原因

これはGitの機能によるもので、出力されるテキストが1画面に収まらない場合は1画面ずつ表示されるようになっている。 (これをページャと呼ぶ)

対策

以下のコマンドを実行してページャを無効にする。

git config --global core.pager ''

その場限りの対策

右上にあるアイコンをクリックする。

するとターミナルの欄にコマンドの実行結果と同じものが出てくる。

(END)が出てくるまでキーを押し続けてからqキーで終了すると、実行結果の内容をAgentに全て渡した状態で終了できる。