メインコンテンツへスキップ

Ghostty

Ghosttyはクロスプラットフォームのターミナルエミュレーター。動作が軽くカスタマイズ性が高い。

Macへのインストールと設定
#

brewでインストールした。

brew install --cask ghostty

各種の設定はGUIではなくconfigファイルで行う。 ~/Library/Application Support/com.mitchellh.ghostty/config

設定ファイルをターミナル内から再読み込みするのはcmd+shift+,

ターミナルから以下のコマンドを入力すると、使用できる(インストールされている)フォントファミリのリストが表示される。

ghostty +list-fonts

以下のコマンドでインストールされているテーマのリストが表示される。

ghostty +list-themes

このようにプレビューを表示しながらテーマを選ぶことができる。

image

現時点での設定ファイルは以下の通り。

theme = "Dracula"

font-family = "UDEV Gothic"
font-thicken
font-size = 20

mouse-hide-while-typing

window-theme = dark
background-opacity = 0.8
background-blur = true
macos-titlebar-style = transparent

window-inherit-working-directory = true
window-save-state = always

設定可能な項目の説明はConfigurationにある。かなりの数があるが、自分は必要最低限のものに絞った。

Alfred関連の設定
#

デフォルトで使用するターミナルをGhosttyに変更するため、Alfredの設定変更とワークフローの修正を行った。

Teminalの設定変更
#

以下のGhosttyとの連携スクリプトを手順に従って設定する。

zeitlings/alfred-ghostty-script: AppleScript for Ghostty Alfred integration

terminalfinderワークフローの修正
#

ファインダとターミナルを行き来するのに使っているAlfredのtermmialfinderワークフローにGhostty用のトリガーとスクリプトを追加した。

LeEnno/alfred-terminalfinder: Alfred workflow to open current Finder window in Terminal/iTerm and vice versa.

Finderで表示しているフォルダをGhosttyで開くスクリプト(キーワードfgでトリガー)

on alfred_script(q)
  try
    tell application "Finder"
      if (count of windows) is 0 then
        set cwd to POSIX path of (path to home folder)
      else
        set cwd to POSIX path of (target of front window as alias)
      end if
    end tell

    tell application "Ghostty"
      activate

      set cfg to new surface configuration
      set initial working directory of cfg to cwd

      if (count of windows) is 0 then
        new window with configuration cfg
      else
        set win to front window
        new tab in win with configuration cfg
      end if
    end tell

  on error errMsg number errNum
    return "ERROR " & errNum & ": " & errMsg
  end try
end alfred_script

GhosttyのカレントディレクトリをFinderで開くスクリプト(キーワードgfでトリガー)

on alfred_script(q)
  try
    tell application "Ghostty"
      activate

      if (count of windows) is 0 then
        return "ERROR: Ghosttyのウィンドウがありません。"
      end if

      set term to focused terminal of selected tab of front window
      set cwd to working directory of term
    end tell

    do shell script "open -a Finder " & quoted form of cwd

  on error errMsg number errNum
    return "ERROR " & errNum & ": " & errMsg
  end try
end alfred_script

関連記事

日付キーワードからフォーマットされた日付テキストを生成するAlfred Workflow

azooKeyという高精度なニューラルかな漢字変換エンジンをサポートしたiOS用キーボードアプリのmacOS版を試している。 ライブ変換もサポートしていて、標準のIMEより変換精度が高くて素晴らしい。問題なく常用できそうな感じ。 ただ、いくつかのIMEでサポートしている「きょう」で本日の日付に変換する機能がないんですよね。これはXでも話題になっていて、以下のような改善策も見つけました。 azooKey-Desktop で日付を入力する - terfnoのScrapbox しかし、個人的には「昨日」や「明日」「先週の金曜日」などの日付を得たいケースが多く、ChatGPTでAlfred用のワークフローを作成した。 動作イメージ # ワークフローを起動して、キーワードを入力すると対応するものがサジェストされる。 キーワードを決定すると、複数の日付フォーマットを選択できる。 対応キーワード # today:今日 yesterday:昨日 tomorrow:明日 dayaftertomorrow(略:dat):明後日 daybeforeyesterday(略:dby):一昨日 mon / tue / wed / thu / fri / sat / sun:各曜日 曜日を入力した場合は 「直近の過去の同曜日」「次に来る同曜日」を候補に表示 出力フォーマット # ISO形式:YYYY-MM-DD ISO + 曜日:YYYY-MM-DD(Fri) 日本語形式:YYYY年M月D日(金) 和暦形式(令和):令和X年M月D日(金) ダウンロード # 作成したワークフローを置いておきます。Alfred 5.7で動作確認しました。

Alfred

Alfred - Productivity App for macOS Mac用のキーボードショートカットアプリ。キー入力だけでアプリを起動したり、Web検索をしたり、コンピュータ上のファイルを検索したり、システムコマンドを実行したりできる。 Alfred関連ノート # AlfredからObsidianの保管庫を検索する Alfred常用のための設定と導入ワークフロー AlfredでDeepL翻訳するワークフロー deepl-alfred-workflow2

ObsidianのVimモードでNORMALモードに移行したらIMEをOFFにする(Mac)

ObsidianのVimモードでNORMALモードに移行した際、デフォルの動作ではIMEのON/OFFが変わらないため、日本語のテキストを書いているときに不便なので、im-select + Karabiner-Elementsを使ってEsc押下でIME OFFにする設定を追加した。 自分の環境では既にターミナルやGhostty用にその設定を入れているので、対象とするアプリとしてObisidianを追加するだけだった。 具体的にはbundle_identifiersに"^md\\.obsidian$"を追加した。 Obsidianのbundle_identifierは以下のようにして調べた。 osascript -e 'id of app "Obsidian"' md.obsidian 以下はKarabiner-Elementsに表示で入っている「TerminalまたはMacVimでESCあるいは^[を押したときに日本語入力を英数に切り替える」にGhosttyとObsidianを追加したもの。 { "description": "指定したアプリでESCあるいは^[を押したときに日本語入力を英数に切り替える。", "manipulators": [ { "conditions": [ { "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^org\\.vim\\.", "^com\\.mitchellh\\.ghostty$", "^md\\.obsidian$" ], "type": "frontmost_application_if" } ], "from": { "key_code": "escape", "modifiers": { "optional": ["any"] } }, "to": [ { "key_code": "japanese_eisuu" }, { "key_code": "escape" } ], "type": "basic" }, { "conditions": [ { "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^org\\.vim\\." ], "type": "frontmost_application_if" } ], "from": { "key_code": "open_bracket", "modifiers": { "mandatory": ["left_control"] } }, "to": [ { "key_code": "japanese_eisuu" }, { "key_code": "escape" } ], "type": "basic" } ] }

Kindleの蔵書一覧を生成するRubyスクリプト

MacにインストールされているKindleアプリのデータから蔵書一覧を生成 kindle_books_mac.rbrequire 'rexml/document' require 'date' require 'csv' # Kindle for Mac KINDLE_XML = "#{ENV['HOME']}/Library/Containers/com.amazon.Kindle/Data/Library/Application Support/Kindle/Cache/KindleSyncMetadataCache.xml" doc = REXML::Document.new(File.read(KINDLE_XML)) csv = CSV.generate(force_quotes: true) do |csv| doc.elements.each("//response/add_update_list/meta_data") do |e| csv << [ e.elements["ASIN"].text, e.elements["title"].text, e.elements["authors"].map{|item| item.text}.join('/'), e.elements["publishers"].map{|item| item.text}.join('/'), e.elements["publication_date"].text, e.elements["purchase_date"].text ] end end puts csv

PopClip for Macのエクステンション・スニペット

スニペット # Mac用のツールPopClip for Macの自作スニペット。スニペット全体を選択すればPopClipのメニューからインストールできる。 アイコンの指定方法はIcons — PopClip Developerにある。 物書堂の辞書を検索する # #popclip extension to search MkDictionaries name: MkDictionaries icon: square filled 物 url: mkdictionaries:///?text=*** Googleのカスタム検索 # 検索エンジンIDは定義したカスタム検索のIDを指定する Programmable Search - すべての検索エンジン #popclip extension to Googleカスタム検索 name: Googleカスタム検索 icon: circle filled G url: https://cse.google.com/cse?cx=検索エンジンID#gsc.tab=0&gsc.q=***&gsc.sort= エクステンション # 全角→半角変換 # 選択文字列中の全角英数字・記号・カナを半角に変換する。たまにある半角文字しか受け付けないサイトなどで使う。 PopClip-Extensions/ZenHan.popclipext at main · htakeuchi/PopClip-Extensions 半角→全角変換 # 選択文字列中の半角英数字・記号・カナを全角に変換する。ついでなので逆変換もつくった。

todo.txtで始めるタスク管理

Remeber the Milk、Todoist、Appleのリマインダーなどを経て、ここ1〜2年はMicorosoft To Doを使ってタスク管理をしている。 私がタスク管理アプリに求めるものは、 期限管理できること 繰り返しタスク(毎週、毎月など)が使えること コンテキスト、プロジェクトなどでタスクをカテゴライズできること であり、有償のタスク管理サービスで提供される豊富な機能は、自分にとってオーバースペックで、機能的にはシンプルなMicrosoft To Doで必要十分だ。 しかし、データがサーバに保管されクローズドであり、かつエクスポートすらできない点がずっと気になっていた。 このため、テキストファイルを使ったタスク管理であるTodo.txtを使い始めることにした。 iOSではSwiftoDoを使うことにした。 標準でDropboxをサポートしており、ファイルアプリでアクセスできるようにしていれば、iCloudやGoodle Driveなどにもファイルを置けるが、私はDropboxへ置くことにした。 DropboxはGoogle DriveやiCloudなどと比較し同期が速く、この手の運用をするのであれば未だに優位性があると思う。 MacとWindowsではオープンソースのsleekを使いはじめた。 todo.txtの標準シンタクスには定義されていない、繰り返しタスクの記法(例 rec:1w)がSwiftoDoと共通なのが嬉しくUIも美しい。 ransome1/sleek: todo.txt manager for Linux, Windows and MacOS, free and open-source (FOSS) ただ、sleekには登録済みタスクのテキストを修正できない不具合があるっぽい。(2025/02/17現在 Macで再現) 2025/03/05追記 sleekは私の環境(Mac)では動作が不安定なため使用を止めた。