Skip to content

Latest commit

 

History

History
266 lines (194 loc) · 7.16 KB

File metadata and controls

266 lines (194 loc) · 7.16 KB

IMEIndicatorClock 機能一覧

macOS用のIME状態表示&デスクトップ時計アプリケーション


概要

項目 内容
対応OS macOS 14.0 (Sonoma) 以降
アーキテクチャ Apple Silicon / Intel Mac
技術スタック SwiftUI + AppKit
ライセンス MIT License

主要機能

1. IMEインジケーター

デスクトップに浮遊する円形のIME状態表示。

対応言語と表示

言語 表示文字 デフォルト色
英語 (IME OFF) A
日本語
中国語(簡体字)
中国語(繁体字) 深緑
韓国語
タイ語 シアン
ベトナム語 V ライトシアン
アラビア語 ع オレンジ
ヘブライ語 ע ゴールド
ヒンディー語 オレンジレッド
ロシア語 Я レッドパープル
ギリシャ語 Ω
その他 ? グレー

カスタマイズ項目

  • 位置: X/Y座標(ドラッグ移動可能)
  • サイズ: 30〜200px
  • 背景透明度: 0.0〜1.0
  • フォントサイズ比率: 0.3〜0.8
  • フォント選択: システムフォントから選択
  • 言語別カラー: 各言語の表示色を個別設定
  • 言語別テキスト: 各言語の表示文字を変更可能
  • マルチディスプレイ: 表示ディスプレイの選択

2. デスクトップ時計

フローティングウィンドウで表示されるリアルタイム時計。

表示モード

モード 説明
アナログ 時針・分針・秒針付きの伝統的な時計盤
デジタル テキストベースの時刻表示

表示配置オプション

  • 縦並び(日付/時刻)
  • 横並び(日付/時刻)
  • 日付のみ
  • 時刻のみ

日付フォーマット

タイプ
数字 2026/01/12
短縮 Jan 12, 2026
長形式 January 12, 2026
完全 Sunday, January 12, 2026
カスタム1 ユーザー定義
カスタム2 ユーザー定義

時刻フォーマット

タイプ
標準 HH:mm:ss
短縮 HH:mm
完全 タイムゾーン付き
カスタム1 ユーザー定義
カスタム2 ユーザー定義

カスタマイズ項目

  • ウィンドウサイズ: 幅・高さ
  • フォント: 種類・サイズ
  • テキスト色: RGBA指定
  • アナログ時計色: RGBA指定
  • 背景色: IME ON/OFF別に設定可能
  • 背景透明度: 調整可能
  • 秒表示: ON/OFF

3. マウスカーソルインジケーター

マウスカーソルに追従する小型IME状態表示。

カスタマイズ項目

項目 範囲
サイズ 12〜32px
オフセットX -30〜+30px
オフセットY -30〜+30px
透明度 0.5〜1.0

カラー設定

  • IMEインジケーターと同じ色を使用
  • または言語別に個別カラー設定

メニューバー

アプリはDockに表示されず、メニューバーから操作。

メニュー項目

項目 機能
About アプリ情報表示
IMEインジケーター表示/非表示 トグル
IMEインジケーター設定 設定画面を開く
時計表示/非表示 トグル
時計設定 設定画面を開く
マウスカーソルインジケーター表示/非表示 トグル
マウスカーソルインジケーター設定 設定画面を開く
アクセシビリティ確認 権限状態確認
終了 アプリ終了 (Cmd+Q)

技術仕様

IME検出メカニズム

  1. Carbon Framework の Text Input Services (TIS) を使用
  2. 二重検出方式:
    • システム通知 (AppleSelectedInputSourcesChangedNotification)
    • タイマーポーリング(0.3秒間隔)フォールバック

設定ファイル

~/Library/Application Support/IMEIndicatorClock/app_settings.json

JSON構造

{
  "imeIndicator": { /* IME設定 */ },
  "clock": { /* 時計設定 */ },
  "mouseCursorIndicator": { /* カーソルインジケーター設定 */ }
}

レンダリング

IMEインジケーター

  1. 外側円(グロー効果のラジアルグラデーション)
  2. 内側円(リニアグラデーション)
  3. 白いボーダー
  4. シャドウ付きテキストラベル

アナログ時計

  • 円形の時計盤とボーダー
  • 12個の時間マーカー
  • 時針・分針・秒針
  • 中央のピボットポイント

必要な権限

権限 用途
アクセシビリティ IME状態の監視
  • 初回起動時に権限確認アラート表示
  • システム設定への直接リンク提供
  • 「今後表示しない」オプションあり
  • メニューから手動再確認可能

ローカライゼーション

完全対応(IME検出 + UI翻訳)

  • 日本語
  • English
  • 简体中文
  • 繁體中文
  • 한국어

IME検出 + 機械翻訳UI

  • ไทย (タイ語)
  • Tiếng Việt (ベトナム語)
  • العربية (アラビア語)
  • עברית (ヘブライ語)
  • हिंदी (ヒンディー語)
  • Русский (ロシア語)
  • Ελληνικά (ギリシャ語)

ファイル構成

ソースコード(Swift)

カテゴリ ファイル
コアアプリ IMEIndicatorClockApp.swift, IMEMonitor.swift
設定管理 AppSettings.swift, IMEIndicatorSettings.swift, ClockSettings.swift, MouseCursorIndicatorSettings.swift
ビュー IMEIndicatorView.swift, ClockView.swift, MouseCursorIndicatorView.swift
設定UI IMEIndicatorSettingsView.swift, ClockSettingsView.swift, MouseCursorIndicatorSettingsView.swift
ウィンドウ管理 IMEIndicatorWindowManager.swift, ClockWindowManager.swift, MouseCursorIndicatorWindowManager.swift
UI管理 MenuBarManager.swift, 各種SettingsWindowManager
ユーティリティ AccessibilityHelper.swift, dbgLog.swift
その他 AboutView.swift, フォーマットピッカー類

ローカライズファイル

  • Localizable.xcstrings - コアUI文字列
  • IMEIndicator.xcstrings - IMEインジケーター設定
  • Clock.xcstrings - 時計設定
  • About.xcstrings - Aboutダイアログ
  • MouseCursorIndicator.xcstrings - マウスインジケーター設定

特徴

  • リアルタイム更新: 時計1秒、IME検出0.3秒間隔
  • マルチディスプレイ対応: 表示ディスプレイを選択可能
  • ドラッグ移動: Move Mode で直接位置調整
  • 非侵襲的: Dockに表示されず、メニューバーから操作
  • カスタマイズ性: 色・サイズ・位置・フォントを詳細設定
  • レスポンシブデザイン: GeometryReaderによる適応レイアウト

開発情報

  • Claude AIとの協力開発
  • 日本語・英語のコードコメント
  • デバッグログ機能搭載
  • SwiftUIプレビュー対応
  • macOSアプリ設計ガイドライン準拠