yoda: rebase onto libcosmic-yoda via path deps + macOS controls toggle

Fresh rewiring from upstream master (78644a3) — the previous attempt on
051f4f9 was 137 commits behind and hit API drift (cosmic::iced_futures,
Subscription::run_with_id). Upstream master uses the newer API
(cosmic::iced::stream + Subscription::run_with) which our libcosmic-yoda
already supports.

Yoda wiring:
- [workspace.dependencies.libcosmic] (git pop-os) -> libcosmic-yoda { path, wayland }
- cosmic-config + iced_winit workspace deps -> path to libcosmic-yoda submodule
- [patch.pop-os/libcosmic] redirects transitive cosmic-config + cosmic-theme +
  iced_futures + iced_winit to our local paths so the graph resolves to a
  single copy (cosmic-bg/comp/idle/panel configs unify cleanly against master)
- subscriptions/sound + page + cosmic-settings inner Cargo.toml: libcosmic ->
  libcosmic-yoda (workspace + direct variants)
- winit feature dropped from libcosmic-yoda deps (our fork is Wayland-only)

Cherry-picked from leyoda/local/window-controls-position @ 52ce463:
- cosmic-settings/src/pages/desktop/window_management.rs — macOS toggle UI
- i18n/en + fr/cosmic_settings.ftl — translations

Installed at /usr/bin/cosmic-settings (yoda build, 78 MB).
Pre-yoda pacman version kept at /usr/bin/cosmic-settings.pre-yoda-fork.
This commit is contained in:
Lionel DARNIS 2026-04-23 17:33:22 +02:00
parent 78644a32e3
commit 999e2ba4e5
8 changed files with 54 additions and 49 deletions

View file

@ -9,21 +9,23 @@ rust-version = "1.90"
[workspace.dependencies]
cosmic-randr = { git = "https://github.com/pop-os/cosmic-randr" }
tokio = { version = "1.49.0", features = ["macros"] }
iced_winit = { git = "https://github.com/pop-os/libcosmic", default-features = false }
# Yoda fork: direct path dep on iced_winit in libcosmic-yoda's submodule.
iced_winit = { path = "/home/lionel/Devels/libcosmic/iced/winit", default-features = false }
[workspace.dependencies.libcosmic]
# Yoda fork — libcosmic-yoda by path, replaces upstream git dep.
[workspace.dependencies.libcosmic-yoda]
features = [
"dbus-config",
"desktop",
"multi-window",
"winit",
"wayland",
"tokio",
"qr_code",
]
git = "https://github.com/pop-os/libcosmic"
path = "/home/lionel/Devels/libcosmic"
[workspace.dependencies.cosmic-config]
git = "https://github.com/pop-os/libcosmic"
path = "/home/lionel/Devels/libcosmic/cosmic-config"
[workspace.dependencies.cosmic-bg-config]
git = "https://github.com/pop-os/cosmic-bg"
@ -69,19 +71,15 @@ cosmic-client-toolkit = { git = "https://github.com/pop-os/cosmic-protocols//",
# [patch.'https://github.com/pop-os/cosmic-settings-daemon']
# cosmic-settings-config = { git = "https://github.com/pop-os/cosmic-settings-daemon//", branch = "input_nobuild" }
# For development and testing purposes
# [patch.'https://github.com/pop-os/libcosmic']
# libcosmic = { path = "../libcosmic" }
# cosmic-config = { path = "../libcosmic/cosmic-config" }
# cosmic-theme = { path = "../libcosmic/cosmic-theme" }
# iced_futures = { path = "../libcosmic/iced/futures" }
# iced_winit = { path = "../libcosmic/iced/winit" }
# libcosmic = { git = "https://github.com/pop-os/libcosmic//" }
# cosmic-config = { git = "https://github.com/pop-os/libcosmic//" }
# cosmic-theme = { git = "https://github.com/pop-os/libcosmic//" }
# iced_futures = { git = "https://github.com/pop-os/libcosmic//" }
# iced_winit = { git = "https://github.com/pop-os/libcosmic//" }
# Yoda fork: redirect every transitive dep that asks for pop-os/libcosmic
# (cosmic-bg-config, cosmic-comp-config, cosmic-idle-config, cosmic-panel-config,
# cosmic-settings-config, cosmic-settings-daemon-config) to our local paths so
# the whole graph resolves against a single cosmic-config / cosmic-theme / iced_*.
[patch.'https://github.com/pop-os/libcosmic']
cosmic-config = { path = "/home/lionel/Devels/libcosmic/cosmic-config" }
cosmic-theme = { path = "/home/lionel/Devels/libcosmic/cosmic-theme" }
iced_futures = { path = "/home/lionel/Devels/libcosmic/iced/futures" }
iced_winit = { path = "/home/lionel/Devels/libcosmic/iced/winit" }
# [patch.'https://github.com/pop-os/dbus-settings-bindings']
# cosmic-dbus-networkmanager = { path = "../dbus-settings-bindings/networkmanager" }