Skip to content
Open
5 changes: 5 additions & 0 deletions .changes/libadwaita-feature.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"tao": minor
---

Add optional `libadwaita` feature for GTK4 Linux builds. When enabled, uses `adw::Application` instead of `gtk::Application` for proper GNOME HIG styling (rounded corners, themed menus, etc.).
5 changes: 5 additions & 0 deletions .changes/linux-gtk4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"tao": minor
---

Port the Linux backend from GTK3 to GTK4 (`gtk4` 0.11, `glib` 0.22). Adds an optional `libadwaita` feature. Public gtk types exposed through the Unix extension traits are now their GTK4 equivalents, and the minimum supported Rust version rises to 1.92 and the minimum system GTK to 4.10 (both required by gtk4-rs 0.11 and the `Accessible` interface the window type implements).
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
if: matrix.platform.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev
sudo apt-get install -y libgtk-4-dev libdbus-1-dev

- name: Install GCC Multilib
if: (matrix.platform.os == 'ubuntu-latest') && contains(matrix.platform.target, 'i686')
Expand All @@ -63,7 +63,7 @@ jobs:
if: contains(matrix.platform.target, 'android')
run: cargo install cargo-apk

- uses: dtolnay/rust-toolchain@1.74
- uses: dtolnay/rust-toolchain@1.92
with:
targets: ${{ matrix.platform.target }}

Expand Down
53 changes: 53 additions & 0 deletions .github/workflows/sync-upstream.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Sync with Upstream
Comment thread
Legend-Master marked this conversation as resolved.
Outdated

on:
schedule:
# Run daily at 6 AM UTC
- cron: '0 6 * * *'
workflow_dispatch: # Allow manual trigger

jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}

- name: Configure Git
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"

- name: Add upstream remote
run: git remote add upstream https://github.com/tauri-apps/tao.git || true

- name: Fetch upstream
run: git fetch upstream

- name: Check and merge upstream (gtk4-v0.34.5 branch)
run: |
# Get current branch
BRANCH="gtk4-v0.34.5"
git checkout $BRANCH

# Check if we're behind upstream/dev
BEHIND=$(git rev-list --count HEAD..upstream/dev)

if [ "$BEHIND" -gt 0 ]; then
echo "Found $BEHIND new commits from upstream"

# Try to merge - will fail if conflicts exist
if git merge upstream/dev --no-edit; then
echo "Successfully merged upstream changes"
git push origin $BRANCH
else
echo "Merge conflicts detected - manual intervention required"
git merge --abort
exit 1
fi
else
echo "Already up to date with upstream"
fi
Loading