diff --git a/.forgejo/workflows/rust.yml b/.forgejo/workflows/rust.yml
index 7d0273c..b536c34 100644
--- a/.forgejo/workflows/rust.yml
+++ b/.forgejo/workflows/rust.yml
@@ -12,20 +12,66 @@ jobs:
         target: 
           - x86_64-unknown-linux-gnu
           - aarch64-unknown-linux-gnu
+          - x86_64-pc-windows-gnu
+          - x86_64-apple-darwin
+          - aarch64-apple-darwin
         include:
+          # Linux targets
           - target: x86_64-unknown-linux-gnu
-            binary_name: zenyx-x86_64
+            binary_name: zenyx-x86_64-linux
+            source_binary: zenyx
+            deps: libwayland-dev wayland-protocols
+            linker_env_var: ""
+            linker_env_value: ""
+            cargo_command: build
           - target: aarch64-unknown-linux-gnu
-            binary_name: zenyx-aarch64
+            binary_name: zenyx-aarch64-linux
+            source_binary: zenyx
+            deps: gcc-aarch64-linux-gnu g++-aarch64-linux-gnu qemu-user libwayland-dev wayland-protocols
+            linker_env_var: CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER
+            linker_env_value: aarch64-linux-gnu-gcc
+            cargo_command: build
+          # Windows target
+          - target: x86_64-pc-windows-gnu
+            binary_name: zenyx-x86_64-windows.exe
+            source_binary: zenyx.exe
+            deps: mingw-w64
+            linker_env_var: CARGO_TARGET_X86_64_PC_WINDOWS_GNU_LINKER
+            linker_env_value: x86_64-w64-mingw32-gcc
+            cargo_command: build
+          # macOS targets
+          - target: x86_64-apple-darwin
+            binary_name: zenyx-x86_64-macos
+            source_binary: zenyx
+            deps: 
+            linker_env_var: CARGO_TARGET_X86_64_APPLE_DARWIN_LINKER
+            linker_env_value: zig
+            cargo_command: zigbuild
+          - target: aarch64-apple-darwin
+            binary_name: zenyx-aarch64-macos
+            source_binary: zenyx
+            deps: 
+            linker_env_var: CARGO_TARGET_AARCH64_APPLE_DARWIN_LINKER
+            linker_env_value: zig
+            cargo_command: zigbuild
     runs-on: codeberg-small
     steps:
       - name: 📥 Clone repository
         uses: actions/checkout@v4
       
-      - name: 🛠️ Install cross-compilation dependencies
+      - name: 🛠️ Install dependencies
         run: |
           apt-get update
-          apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu qemu-user
+          # Install platform-specific dependencies
+          if [[ "${{ matrix.target }}" == *"linux"* ]]; then
+            apt-get install -y ${{ matrix.deps }}
+          elif [[ "${{ matrix.target }}" == *"windows"* ]]; then
+            apt-get install -y ${{ matrix.deps }}
+          elif [[ "${{ matrix.target }}" == *"apple-darwin"* ]]; then
+            wget https://ziglang.org/builds/zig-linux-x86_64-0.11.0.tar.xz
+            tar xf zig-linux-x86_64-0.11.0.tar.xz
+            echo "$(pwd)/zig-linux-x86_64-0.11.0" >> $GITHUB_PATH
+          fi
       
       - name: 🔧 Install Rust
         uses: https://github.com/actions-rs/toolchain@v1
@@ -35,18 +81,20 @@ jobs:
           target: ${{ matrix.target }}
           profile: minimal
       
+      - name: 🔧 Install cargo-zigbuild (macOS)
+        if: contains(matrix.target, 'apple-darwin')
+        run: cargo install cargo-zigbuild
+      
       - name: 🏗️ Build
-        uses: https://github.com/actions-rs/cargo@v1
-        with:
-          command: build
-          args: --release --target ${{ matrix.target }}
+        run: cargo ${{ matrix.cargo_command }} --release --target ${{ matrix.target }}
         env:
-          CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
+          ${{ matrix.linker_env_var }}: ${{ matrix.linker_env_value }}
+          CARGO_TERM_COLOR: always
       
       - name: 📦 Prepare binary
         run: |
           mkdir -p artifacts
-          cp target/${{ matrix.target }}/release/zenyx artifacts/${{ matrix.binary_name }}
+          cp target/${{ matrix.target }}/release/${{ matrix.source_binary }} artifacts/${{ matrix.binary_name }}
           chmod +x artifacts/${{ matrix.binary_name }}
       
       - name: Upload artifacts