diff --git a/concept.md b/concept.md deleted file mode 100644 index 74b3179..0000000 --- a/concept.md +++ /dev/null @@ -1,37 +0,0 @@ -# WindPix - Screenshot Integration for Windsurf - -## Overview -WindPix is a macOS utility that streamlines the process of sharing screenshots within the Windsurf application. It automates the workflow of capturing, copying, and sending screenshots to the LLM chat interface. - -## Core Functionality -1. **Screenshot Capture** - - Triggered by a custom keyboard shortcut - - Automatically copies screenshot to clipboard - -2. **Windsurf Integration** - - Automatically focuses Windsurf chat window (`cmd + shift + l`) - - Pastes screenshot from clipboard (`cmd + v`) - - Submits the image to LLM (Enter key) - -## Technical Implementation -1. **Screenshot Mechanism** - - Utilize macOS native screenshot API - - Implement clipboard management - -2. **Automation Flow** - - Keyboard shortcut: `cmd + shift + l` - - Automatically focuses Windsurf window - - Handles screenshot pasting and submission - -## User Experience -- Single keyboard shortcut initiates entire workflow -- Minimal user intervention required -- Configurable delays between actions - -## Future Enhancements -- Configurable keyboard shortcuts![ - -](image.png) -- Custom screenshot area selection -- Success/failure notifications -- Preview before sending diff --git a/distribution.md b/distribution.md deleted file mode 100644 index 4858c29..0000000 --- a/distribution.md +++ /dev/null @@ -1,81 +0,0 @@ -# Distributing WindPix - -To distribute WindPix to other users, follow these steps: - -## For Developers (Creating the Distribution) - -1. Build the release version: - ```bash - cd WindPixMVP - swift build -c release - ``` - -2. Create an App Bundle: - ```bash - # Create the app bundle structure - mkdir -p WindPix.app/Contents/MacOS - mkdir -p WindPix.app/Contents/Resources - - # Copy the built executable - cp .build/release/WindPixMVP WindPix.app/Contents/MacOS/WindPix - - # Copy instructions.md to Resources - cp ../instructions.md WindPix.app/Contents/Resources/ - ``` - -3. Create Info.plist: - Create a file at `WindPix.app/Contents/Info.plist` with the following content: - ```xml - - - - - CFBundleExecutable - WindPix - CFBundleIdentifier - com.hugo.windpix - CFBundleName - WindPix - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - LSMinimumSystemVersion - 10.15 - LSUIElement - - - - ``` - -4. Create a ZIP archive: - ```bash - zip -r WindPix.zip WindPix.app - ``` - -## For Users (Installing the App) - -1. Download the WindPix.zip file -2. Extract the ZIP file -3. Move WindPix.app to your Applications folder -4. When first launching the app: - - Right-click on WindPix.app and select "Open" - - Click "Open" in the security dialog that appears - - Grant the necessary permissions when prompted: - * Screen Recording (for taking screenshots) - * Accessibility (for keyboard shortcuts) - -## Requirements - -- macOS 10.15 or later -- Windsurf IDE installed - -## Notes - -- The app is currently unsigned, so users will need to explicitly allow it to run -- The app requires Windsurf IDE to be running -- Make sure to grant all requested permissions for full functionality - -## Support - -For support or questions, contact: bartwisch666@gmail.com diff --git a/featurelist.md b/featurelist.md deleted file mode 100644 index 3f248ca..0000000 --- a/featurelist.md +++ /dev/null @@ -1 +0,0 @@ -- always automatically focus on cascade chat window \ No newline at end of file diff --git a/icon_instructions.md b/icon_instructions.md deleted file mode 100644 index f6c9f0c..0000000 --- a/icon_instructions.md +++ /dev/null @@ -1,52 +0,0 @@ -# Creating an App Icon for WindPix - -To create a proper app icon, you'll need to create images in the following sizes and save them in the `AppIcon.iconset` folder: - -1. Required icon files and sizes: - - icon_16x16.png (16×16) - - icon_16x16@2x.png (32×32) - - icon_32x32.png (32×32) - - icon_32x32@2x.png (64×64) - - icon_128x128.png (128×128) - - icon_128x128@2x.png (256×256) - - icon_256x256.png (256×256) - - icon_256x256@2x.png (512×512) - - icon_512x512.png (512×512) - - icon_512x512@2x.png (1024×1024) - -2. After creating these images, convert them to .icns: - ```bash - cd WindPixMVP - iconutil -c icns AppIcon.iconset - ``` - -3. Add to Info.plist: - The following entry will be added to Info.plist: - ```xml - CFBundleIconFile - AppIcon - ``` - -## Icon Design Guidelines - -1. Keep it simple and recognizable even at small sizes -2. Use the macOS icon grid for proper proportions -3. Consider both light and dark backgrounds -4. Make sure the icon looks good in both color and monochrome - -## Tools for Creating Icons - -You can use these tools to create your icon: -- Adobe Photoshop -- Sketch -- Figma -- Pixelmator Pro -- Icon Set Creator (Mac App Store) - -## Testing the Icon - -After creating the icon: -1. Build the app bundle -2. Copy AppIcon.icns to WindPix.app/Contents/Resources/ -3. Update Info.plist -4. The icon should appear in Finder and the Dock diff --git a/idea.md b/idea.md deleted file mode 100644 index d758d91..0000000 --- a/idea.md +++ /dev/null @@ -1,6 +0,0 @@ -ein programm für den mac das mit einem shortcut einen screenshot erstellt. -dieser wird in die zwischenablage kopiert -danach wird die tastenkombination "cmd + l" gedrückt um im programm "windsurf" den fokus auf das chatfenster zu legen. -danach wird mit 1sekunde abstand das bild aus der zwischenablage mittels "cmd + v" in das chatfenster eingefügt -danach wird mit 1 sekunde abstand die ENTER taste gedrückt um das bild an die LLM weiterzuleiten. - diff --git a/image.png b/image.png deleted file mode 100644 index 5e35879..0000000 Binary files a/image.png and /dev/null differ diff --git a/instructions.md b/instructions.md deleted file mode 100644 index 280cd5a..0000000 --- a/instructions.md +++ /dev/null @@ -1,20 +0,0 @@ -Hi and welcome to "WindPix" your picture taking Windsurf companion. -You can now easily include Screenshots in your Windsurf workflow, to give the LLM more information to fulfill your requests. - -example: -1) start the app - you should see a "wind" icon in the system tray -2) work on your code with Windsurf - IMPORTANT: set focus on the cascade chat window! -3) when you want to show something to the LLM (for example a layout you want to copy or a layout bug it should fix) switch to the desired website or program you created -4) press CMD + P to open up the screenshot window to take and accept the screenshot, redo or cancel it -5) when you press "accept" the screenshot is copied to Windsurf and you can add a custom text. its also possible to add multiple screenshots into one prompt. - -Notes: -- always focus on the cascade chat window or the program will paste the content to the wrong location -- give the application the needed access - -this is my first approach with swift, i hope it is still useable for you! -bye, -hugo - -bartwisch666@gmail.com - diff --git a/mvp.md b/mvp.md deleted file mode 100644 index 109bc27..0000000 --- a/mvp.md +++ /dev/null @@ -1,53 +0,0 @@ -# WindPix MVP Plan - -## Core Features -1. Global hotkey to trigger screenshot (⌘⇧4) -2. 1-second delay after screenshot -3. Simulate ⌘L to focus Windsurf chat -4. 1-second delay -5. Simulate ⌘V to paste screenshot -6. 1-second delay -7. Simulate Enter to send - -## MVP Tech Stack -- Swift command-line tool (no GUI needed yet) -- Global hotkey registration using Carbon API -- Basic keyboard event simulation using CGEvent - -## MVP Implementation Steps - -1. **Basic Command Line Tool** -```swift -// main.swift -import Foundation -import Carbon -import CoreGraphics - -// Register hotkey and handle events -``` - -2. **Required Permissions** -- Screen Recording -- Accessibility -- Input Monitoring - -## Testing MVP -1. Launch app from terminal -2. Press hotkey -3. Verify automation sequence works with Windsurf - -## Success Criteria -- Can take screenshot with hotkey -- Screenshot is automatically pasted into Windsurf -- Message is automatically sent -- Entire sequence works reliably - -## What's NOT in MVP -- GUI/Status bar -- Settings/Preferences -- Custom delays -- Error handling -- Installer -- Auto-updates -- Multiple monitor support -- Custom screenshot area diff --git a/techstack.md b/techstack.md deleted file mode 100644 index 3dfff82..0000000 --- a/techstack.md +++ /dev/null @@ -1,73 +0,0 @@ -# WindPix Technical Stack - -## Core Technologies - -### Programming Language -- **Swift 5.9+** - - Native macOS development - - Direct access to macOS APIs - - Excellent performance - - Small binary size - -### Frameworks -- **AppKit** - - Native macOS UI components - - System tray integration - - Window management - - Clipboard operations - -- **Foundation** - - Core system functionality - - File operations - - Event handling - -### System Integration -- **NSScreen** - - Screen capture functionality - - Multi-monitor support - -- **Global Shortcuts** - - Carbon Hot Key API - - System-wide keyboard shortcut registration - -- **Accessibility API** - - Window focus management - - Keyboard event simulation - -### Development Tools -- **Xcode 15+** - - IDE and development environment - - Interface Builder - - Debugging tools - - Performance profiling - -- **SwiftLint** - - Code style enforcement - - Best practices checking - -### Build & Distribution -- **App Notarization** - - Code signing - - macOS security compliance - -- **Sparkle** - - Optional: Future auto-update support - -## System Requirements -- macOS 13.0 (Ventura) or newer -- 20MB disk space -- Minimal RAM usage - -## Development Environment Setup -1. Install Xcode from Mac App Store -2. Install command line tools: - ```bash - xcode-select --install - ``` -3. Clone repository and open in Xcode - -## Testing Framework -- **XCTest** - - Unit testing - - UI testing - - Performance testing diff --git a/todos.md b/todos.md deleted file mode 100644 index 55d0a3e..0000000 --- a/todos.md +++ /dev/null @@ -1,65 +0,0 @@ -# WindPix Development Tasks - -## Phase 1: Project Setup -- [ ] Create new Xcode project -- [ ] Set up Git repository -- [ ] Configure SwiftLint -- [ ] Create initial README.md -- [ ] Set up basic app structure with AppKit - -## Phase 2: Core Screenshot Functionality -- [ ] Implement screenshot capture using NSScreen -- [ ] Set up pasteboard (clipboard) management -- [ ] Create status bar menu item -- [ ] Implement global hotkey using Carbon Hot Key API -- [ ] Add basic error handling and logging - -## Phase 3: Windsurf Integration -- [ ] Implement window focus using Accessibility API -- [ ] Create pasteboard paste functionality -- [ ] Add keyboard event simulation -- [ ] Implement configurable delays between actions -- [ ] Add error handling for Windsurf integration - -## Phase 4: UI Development -- [ ] Design status bar menu -- [ ] Create preferences window - - [ ] Hotkey configuration - - [ ] Delay settings - - [ ] General preferences -- [ ] Add notification handling -- [ ] Implement dark mode support - -## Phase 5: Testing -- [ ] Write unit tests with XCTest -- [ ] Add UI tests -- [ ] Implement performance tests -- [ ] Set up CI pipeline (e.g., GitHub Actions) - -## Phase 6: Distribution -- [ ] Configure code signing -- [ ] Set up app notarization -- [ ] Create DMG installer -- [ ] Prepare for Mac App Store submission (optional) - -## Phase 7: Documentation -- [ ] Write user documentation -- [ ] Create developer documentation -- [ ] Add installation instructions -- [ ] Document preferences and settings - -## Phase 8: Polish & Optimization -- [ ] Performance optimization -- [ ] Memory usage optimization -- [ ] Battery impact testing -- [ ] User feedback implementation - -## Future Enhancements -- [ ] Custom screenshot area selection -- [ ] Image preview before sending -- [ ] Multiple monitor support -- [ ] Keyboard shortcut customization UI -- [ ] Auto-update mechanism using Sparkle - -## Bug Tracking -- Create issues here as bugs are discovered during development