Skip to content

Commit 1d361ad

Browse files
committed
feat: launcher-style window APIs + global hotkeys + app icons (v0.4.11)
App config extensions: frameless, level, transparent, vibrancy, activationPolicy on App({}) config object across macOS (NSWindow/NSVisualEffectView), Windows (WS_POPUP/DWM Mica/HWND_TOPMOST), and Linux (GTK4 CSS/set_decorated). Window management: win.hide(), win.setSize(w,h), win.onFocusLost(cb) as instance methods plus windowHide/windowSetSize/onWindowFocusLost standalone functions. macOS (orderOut/setFrame/NSNotificationCenter), Windows (ShowWindow/SetWindowPos/WM_ACTIVATE), GTK4 (set_visible/set_default_size/ notify::is-active). Global hotkeys: registerGlobalHotkey(key, modifiers, callback) for system-wide shortcuts. macOS (NSEvent global+local monitors), Windows (RegisterHotKey + WM_HOTKEY), Linux (stub with warning). App icon extraction: getAppIcon(path) returns Image widget handle. macOS (NSWorkspace.iconForFile), Linux (.desktop Icon= parsing + GTK icon theme), Windows (stub). No-op stubs on iOS, tvOS, watchOS, Android for all new APIs. Updated docs for multi-window, events, system APIs, and UI overview.
1 parent 89d591c commit 1d361ad

22 files changed

Lines changed: 1798 additions & 95 deletions

File tree

CLAUDE.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
88

99
Perry is a native TypeScript compiler written in Rust that compiles TypeScript source code directly to native executables. It uses SWC for TypeScript parsing and Cranelift for code generation.
1010

11-
**Current Version:** 0.4.8
11+
**Current Version:** 0.4.11
1212

1313
## Workflow Requirements
1414

@@ -140,6 +140,16 @@ Projects can list npm packages to compile natively instead of routing to V8. Con
140140

141141
## Recent Changes
142142

143+
### v0.4.11
144+
- feat: `registerGlobalHotkey` — system-wide hotkey via NSEvent global/local monitors (macOS), Win32 RegisterHotKey+WM_HOTKEY (Windows), stub with warning (Linux)
145+
- feat: `getAppIcon` — app/file icon as Image widget via NSWorkspace.iconForFile (macOS), .desktop Icon= parsing + theme lookup (Linux), stub (Windows)
146+
147+
### v0.4.10
148+
- feat: `window_hide`, `window_set_size`, `window_on_focus_lost` — multi-window management APIs across macOS, Windows, GTK4, with no-op stubs on iOS/tvOS/watchOS/Android
149+
150+
### v0.4.9
151+
- feat: Window config properties for launcher-style apps — `frameless`, `level`, `transparent`, `vibrancy`, `activationPolicy` on `App({})` config object (macOS/Windows/Linux)
152+
143153
### v0.4.8
144154
- feat: Android camera support — `CameraView` widget using Camera2 API via JNI, with live preview, color sampling, freeze/unfreeze, and tap handler (parity with iOS)
145155

Cargo.lock

Lines changed: 24 additions & 24 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ opt-level = "s" # Optimize for size in stdlib
8181
opt-level = 3
8282

8383
[workspace.package]
84-
version = "0.4.8"
84+
version = "0.4.11"
8585
edition = "2021"
8686
license = "MIT"
8787
repository = "https://github.com/PerryTS/perry"

0 commit comments

Comments
 (0)