-
Notifications
You must be signed in to change notification settings - Fork 0
feat: Linux support — LVGL filesystem fix + AppImage, add AppStore app manager #21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
082c776
f8f8edb
c6e1386
adde703
d4e3d08
474bdb0
39edb82
f8d7da0
43ee040
d6be4c4
993aaff
eb36131
ccd0794
9c4f7e3
983b059
f9b4bd8
013449e
5239eb4
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -72,7 +72,7 @@ jobs: | |||||||||||||||
| # Copy SDL2.dll from vcpkg installed dir | ||||||||||||||||
| cp "$RUNVCPKG_VCPKG_ROOT/installed/x64-windows/bin/SDL2.dll" dist/CrossPad/ | ||||||||||||||||
| # Copy assets | ||||||||||||||||
| cp -r crosspad-gui/assets dist/CrossPad/assets | ||||||||||||||||
| cp -r lib/crosspad-gui/assets dist/CrossPad/assets | ||||||||||||||||
|
|
||||||||||||||||
| - name: Upload artifact | ||||||||||||||||
| uses: actions/upload-artifact@v4 | ||||||||||||||||
|
|
@@ -120,18 +120,44 @@ jobs: | |||||||||||||||
| - name: Build | ||||||||||||||||
| run: cmake --build build | ||||||||||||||||
|
|
||||||||||||||||
| - name: Package | ||||||||||||||||
| - name: Create AppImage icon | ||||||||||||||||
| run: | | ||||||||||||||||
| mkdir -p dist/CrossPad | ||||||||||||||||
| cp bin/CrossPad dist/CrossPad/CrossPad | ||||||||||||||||
| chmod +x dist/CrossPad/CrossPad | ||||||||||||||||
| cp -r crosspad-gui/assets dist/CrossPad/assets | ||||||||||||||||
| python3 -c " | ||||||||||||||||
| from PIL import Image | ||||||||||||||||
| img = Image.open('logo.png') | ||||||||||||||||
| img.thumbnail((256, 256), Image.LANCZOS) | ||||||||||||||||
| new_img = Image.new('RGBA', (256, 256), (0, 0, 0, 0)) | ||||||||||||||||
| x = (256 - img.width) // 2 | ||||||||||||||||
| y = (256 - img.height) // 2 | ||||||||||||||||
| new_img.paste(img, (x, y)) | ||||||||||||||||
| new_img.save('CrossPad.png') | ||||||||||||||||
| " | ||||||||||||||||
|
|
||||||||||||||||
| - name: Build AppImage | ||||||||||||||||
| run: | | ||||||||||||||||
| # Download linuxdeploy | ||||||||||||||||
| wget -q https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage | ||||||||||||||||
|
Comment on lines
+138
to
+139
|
||||||||||||||||
| # Download linuxdeploy | |
| wget -q https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage | |
| # Download pinned linuxdeploy release and verify integrity | |
| LINUXDEPLOY_VERSION=1-alpha-20250213-2 | |
| LINUXDEPLOY_SHA256=YOUR_LINUXDEPLOY_SHA256_HERE | |
| wget -q "https://github.com/linuxdeploy/linuxdeploy/releases/download/${LINUXDEPLOY_VERSION}/linuxdeploy-x86_64.AppImage" | |
| echo "${LINUXDEPLOY_SHA256} linuxdeploy-x86_64.AppImage" | sha256sum -c - |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,13 @@ | ||
| { | ||
| "VsCodeTaskButtons.showCounter": false, | ||
| "VsCodeTaskButtons.tasks": [ | ||
| { | ||
| "label": "$(package) CP Tools", | ||
| "task": "CrossPad: App Manager" | ||
| }, | ||
| { | ||
| "label": "$(zap) Run", | ||
| "task": "CrossPad: Run" | ||
| } | ||
| ] | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| { | ||
| "version": "2.0.0", | ||
| "tasks": [ | ||
| { | ||
| "label": "CrossPad: App Manager", | ||
| "type": "shell", | ||
| "command": "python3", | ||
| "args": ["${workspaceFolder}/scripts/app_manager.py"], | ||
| "presentation": { | ||
| "reveal": "always", | ||
| "panel": "dedicated", | ||
| "focus": true | ||
| }, | ||
| "problemMatcher": [] | ||
| }, | ||
| { | ||
| "label": "CrossPad: Run", | ||
| "type": "shell", | ||
| "command": "${workspaceFolder}/scripts/run.sh", | ||
| "presentation": { | ||
| "reveal": "always", | ||
| "panel": "dedicated", | ||
| "focus": true | ||
| }, | ||
| "problemMatcher": [] | ||
| } | ||
| ] | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The workflow uses
from PIL import Imageto generateCrossPad.png, but Pillow isn’t installed anywhere in the Linux job. Onubuntu-latestthis will typically fail withModuleNotFoundError: No module named 'PIL'. Install Pillow explicitly (e.g.,sudo apt-get install -y python3-pilorpython3 -m pip install --user pillow) before this step, or replace this with a tool that’s already installed on the runner.