Commit Graph

37 Commits

Author SHA1 Message Date
418407b2b9 Fix icon loading in PyInstaller builds
PyInstaller bundles data files into sys._MEIPASS, not the executable directory.

- Add get_resource_path() helper in main.py and main_window.py
- Use _MEIPASS for bundled resources (icon, web files)
- Keep app_dir pointing to executable directory for user data (macros.json)

This fixes the missing icon in taskbar and system tray on Windows builds.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 17:12:39 -08:00
9bba673ba7 Fix PySide6 enum access for Windows compatibility
- Import QStyle from PySide6.QtWidgets
- Use QStyle.StandardPixmap.SP_ComputerIcon instead of self.style().SP_ComputerIcon
- Use QSystemTrayIcon.ActivationReason.DoubleClick instead of QSystemTrayIcon.DoubleClick

PySide6 requires fully qualified enum paths unlike PyQt5.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 17:07:49 -08:00
dbdb465fde Add BUILDING.md with uv and PyInstaller build instructions
Comprehensive guide covering:
- Installing uv on Windows/Linux/macOS
- Building executables with uv run pyinstaller
- Platform-specific build commands
- Troubleshooting common issues
- Detailed cleanup instructions for build artifacts
- Clean rebuild commands for all platforms
- Alternative pip-based build approach

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 17:05:50 -08:00
5888aeb603 Modernize application to v0.9.0 with PySide6, FastAPI, and PWA support
## Major Changes

### Build System
- Replace requirements.txt with pyproject.toml for modern dependency management
- Support for uv package manager alongside pip
- Update PyInstaller spec files for new dependencies and structure

### Desktop GUI (Tkinter → PySide6)
- Complete rewrite of UI using PySide6/Qt6
- New modular structure in gui/ directory:
  - main_window.py: Main application window
  - macro_editor.py: Macro creation/editing dialog
  - command_builder.py: Visual command sequence builder
- Modern dark theme with consistent styling
- System tray integration

### Web Server (Flask → FastAPI)
- Migrate from Flask/Waitress to FastAPI/Uvicorn
- Add WebSocket support for real-time updates
- Full CRUD API for macro management
- Image upload endpoint

### Web Interface → PWA
- New web/ directory with standalone static files
- PWA manifest and service worker for installability
- Offline caching support
- Full macro editing from web interface
- Responsive mobile-first design
- Command builder UI matching desktop functionality

### Macro System Enhancement
- New command sequence model replacing simple text/app types
- Command types: text, key, hotkey, wait, app
- Support for delays between commands (wait in ms)
- Support for key presses between commands (enter, tab, etc.)
- Automatic migration of existing macros to new format
- Backward compatibility maintained

### Files Added
- pyproject.toml
- gui/__init__.py, main_window.py, macro_editor.py, command_builder.py
- gui/widgets/__init__.py
- web/index.html, manifest.json, service-worker.js
- web/css/styles.css, web/js/app.js
- web/icons/icon-192.png, icon-512.png

### Files Removed
- requirements.txt (replaced by pyproject.toml)
- ui_components.py (replaced by gui/ modules)
- web_templates.py (replaced by web/ static files)
- main.spec (consolidated into platform-specific specs)

### Files Modified
- main.py: Simplified entry point for PySide6
- macro_manager.py: Command sequence model and migration
- web_server.py: FastAPI implementation
- config.py: Version bump to 0.9.0
- All .spec files: Updated for PySide6 and new structure
- README.md: Complete rewrite for v0.9.0
- .gitea/workflows/release.yml: Disabled pending build testing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 16:57:14 -08:00
ded281cc64 Merge pull request 'Working on the Linux Build Issues' (#5) from fix-linux-update into main
All checks were successful
Build and Release / create-release (push) Successful in 3s
Build and Release / build-windows (push) Successful in 36s
Build and Release / build-linux (push) Successful in 1m7s
Build and Release / attach-to-release (push) Successful in 4s
Reviewed-on: #5
2025-06-05 22:21:49 +00:00
f0af9ad84e Working on the Linux Build Issues 2025-06-05 15:21:34 -07:00
00120c8562 Merge pull request 'fixes Linux bugs' (#4) from update-build-and-docs into main
Some checks failed
Build and Release / create-release (push) Successful in 4s
Build and Release / build-windows (push) Successful in 39s
Build and Release / build-linux (push) Failing after 1m1s
Build and Release / attach-to-release (push) Has been skipped
Reviewed-on: #4
2025-06-05 22:13:17 +00:00
073bfbf7d9 fixes Linux bugs 2025-06-05 15:12:31 -07:00
c4d151a6d2 Merge pull request 'Fix build errors' (#3) from update-build-and-docs into main
All checks were successful
Build and Release / create-release (push) Successful in 4s
Build and Release / build-linux (push) Successful in 33s
Build and Release / build-windows (push) Successful in 4m19s
Build and Release / attach-to-release (push) Successful in 9s
Reviewed-on: #3
2025-06-05 21:39:27 +00:00
45dfe44b59 Fix build errors 2025-06-05 14:39:00 -07:00
80f4c30fb9 Merge pull request 'update-build-and-docs' (#2) from update-build-and-docs into main
Some checks failed
Build and Release / create-release (push) Successful in 5s
Build and Release / build-windows (push) Failing after 34s
Build and Release / build-linux (push) Failing after 39s
Build and Release / attach-to-release (push) Has been skipped
Reviewed-on: #2
v0.8.5
2025-06-05 21:34:40 +00:00
c80474f520 update to remove mac build because I do not have a mac to build on yet 2025-06-05 14:33:03 -07:00
0a66c1d663 Enhanced project documentation and release automation
- Improved README.md formatting and structure
- Added installation instructions for pre-built executables
- Included platform-specific examples for Windows, Linux, and macOS
- Set up Gitea workflow for automated builds on new releases
- Added platform-specific PyInstaller spec files for all supported platforms
- Updated repository links to point to repo.anhonesthost.net

These changes make the project more accessible to new users and streamline
the release process with automatic executable generation for all platforms.
2025-06-05 13:54:36 -07:00
2f8fa238fc Merge pull request 'Add support for Tabs and other enhancements' (#1) from new-rework into main
Reviewed-on: #1
2025-06-01 21:19:42 +00:00
d2a9be6274 Updating README
Updated the README to reflect the changes to the app including the tabs
2025-06-01 14:18:27 -07:00
a477be23cc Updating README
Updated the README to reflect the changes to the app including the tabs
2025-06-01 14:17:50 -07:00
5727a9ee68 Release Update
Updated MacroPad to support Tabs, fix system tray behavior, and break apart the monolith
2025-06-01 14:02:29 -07:00
896875ce90 updating main app to resolve previous issues
Tabs are working correctly, and the app that minimizes to the tray
2025-06-01 13:27:27 -07:00
9f3484dff2 Big Update
This update will need to get cleaned up, but for right now we are doing testing.
2025-06-01 12:38:41 -07:00
ddd596e053 Fixing spelling mistake pointed out by @CatArgent_ on Twitch 2025-03-23 10:21:38 -07:00
ccea743848 Fixing spelling mistake pointed out by @CatArget_ on Twitch 2025-03-23 10:18:53 -07:00
50d7173726 Fix bug where command did not lift key 2025-03-23 09:12:31 -07:00
4aa5ce1ff2 Updating to fix a bug with app macros 2025-03-23 08:44:25 -07:00
2dcc74f9d4 Update README with examples 2025-03-18 13:26:46 -07:00
3f18fc5d52 Update README.md to reflect the changes 2025-03-18 13:16:25 -07:00
d9d870096d Update v2 to not be dependent on Windows C++ runtimes, add QRCode, Add Refresh button to Web Interface 2025-03-18 12:43:08 -07:00
933e166b06 adding v2 server and webbased client 2025-03-17 07:38:39 -07:00
55a1a86f86 adding v2 version 2025-03-16 23:30:35 -07:00
8a2c467930 Update path for iamges to work correctly on windows 2025-03-16 09:00:02 -07:00
a18f51858a update and build for windows 2025-03-15 20:55:20 -07:00
664636d280 Added gitignore 2025-03-15 20:28:39 -07:00
cf4696d094 Working as expected, need to update display 2025-03-15 20:26:53 -07:00
188b462540 switching images to byte 2025-03-15 19:49:16 -07:00
d7a291a58f updating mp-server.py 2025-03-15 17:03:51 -07:00
d74bedfa28 added minimize to system tray 2025-03-14 22:48:34 -07:00
c897195083 first revision 2025-03-14 22:22:20 -07:00
4cecf24264 Initial commit 2025-03-14 18:17:57 +00:00