Get started with ionChannel in 5 minutes.
- Rust 1.75 or later
- Wayland or COSMIC desktop environment
- D-Bus session bus
cd ionChannel
cargo build --releaseThis builds all components:
xdg-desktop-portal-cosmic- Portal service- Test clients and examples
# Run all tests
cargo test
# Verify all 115+ tests pass
cargo test --workspace# Install portal service
sudo cp target/release/xdg-desktop-portal-cosmic /usr/libexec/
# Configure xdg-desktop-portal (if needed)
sudo mkdir -p /usr/share/xdg-desktop-portal/portals/
cat << 'EOF' | sudo tee /usr/share/xdg-desktop-portal/portals/cosmic.portal
[portal]
DBusName=org.freedesktop.impl.portal.desktop.cosmic
Interfaces=org.freedesktop.impl.portal.RemoteDesktop
UseIn=cosmic
EOFThe portal service will be started automatically by xdg-desktop-portal when needed.
# Terminal 1: Start portal service
./target/release/xdg-desktop-portal-cosmic
# Terminal 2: Test with client
cargo run --bin portal-testCheck that the service is running:
# Check D-Bus service
busctl --user list | grep cosmic
# Expected output:
# org.freedesktop.impl.portal.desktop.cosmic- Read README.md for architecture overview
- Check STATUS.md for current features
- See CAPABILITY_DISCOVERY.md for backend system
- Explore
ionChannel/crates/for code organization
# Check if Wayland is running
echo $WAYLAND_DISPLAY
# Check D-Bus
busctl --user status# Clean build
cargo clean
cargo build --release
cargo testThe service automatically selects the best backend:
- In COSMIC session → Uses COSMIC backend
- In other Wayland session → Uses generic Wayland backend
- No compatible environment → Service reports error
- Check STATUS.md for known issues
- Review test output for diagnostic information
- Ensure environment variables are set (
WAYLAND_DISPLAY)