Commit graph

2276 commits

Author SHA1 Message Date
a103e7619b chore: fige Cargo.lock 2026-09-10 18:12:37 +02:00
a69f659983 Merge tag 'epoch-1.8.0' into local/yoda-main
Epoch 1.8.0

# Conflicts:
#	Cargo.lock
2026-09-10 17:57:28 +02:00
apassert
a55785993e config: sort outputs by connector for deterministic fallback layout
When no saved configuration matches the current output set, positions
were assigned in hotplug/registration order. On hotplug races (e.g.
reconnecting monitors through a KVM switch) outputs can appear in
arbitrary order, producing a swapped left/right layout that then gets
persisted to outputs.ron, poisoning all future reconnects.

Sort outputs by connector name before generating fallback positions so
the layout is deterministic regardless of arrival order.

AI disclosure: implemented with the assistance of an LLM coding agent,
directed, reviewed, and tested by the author.

Signed-off-by: apassert <249084898+apassert@users.noreply.github.com>
2026-09-09 15:54:44 +02:00
Aleksandr Kosachev
7d1daab7bc fix: remove foreign toplevel handle too 2026-09-08 23:50:31 +02:00
Victoria Brekenfeld
6026520bd3
Merge pull request #2832 from weblate/weblate-pop-os-cosmic-comp 2026-09-08 17:13:58 +02:00
Hosted Weblate
8ad541dbe3
i18n: translation updates from weblate
Co-authored-by: Quentin PAGÈS <quentinantonin@free.fr>
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-comp/oc/
Translation: Pop OS/COSMIC Comp
2026-09-08 16:51:34 +02:00
haydonryan
f61c0f9f76 tabs: avoid two HashSet allocations in tab-change detection
Replace the symmetric_difference over two freshly-materialized HashSets
with direct contains_key lookups on the existing key sets. Semantically
identical (set difference non-empty iff any key is in exactly one set) but
removes two heap HashSet allocations plus hashing of every key on each
widget update. Also drops the now-unused HashSet import.

Implements compact-idiomatic-code-20 from the cosmic-comp optimization
report. Created with the help of DeepSeek V4 Flash.
2026-09-07 15:42:06 +02:00
Hojjat
0f56d214b9 chore: clippy fixes 2026-09-05 01:16:34 +02:00
Hojjat
057e7b72cc chore: remove the gaurd against large paddings 2026-09-04 16:05:57 -04:00
Hojjat
e8caf335b3 refactor: align the corner radii order with the theme
It's [TL, TR, BR, BL] everywhere now
2026-09-04 13:43:40 +02:00
Victoria Brekenfeld
f8344126a1 input: Update the pointer state on absolute pointer events as well 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
bd0b834128 element/stack: Use correct serial for tablet grabs 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
1c8a0070c0 element/stack: Handle touch (and tablet) inputs on tabs 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
e563dc85bf input: Don't update pointer position on proximity_out 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
2a3b4dca5f shell: fix client initiated tablet grabs 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
0e15b14ab2 utils/iced: Fix tablet serials and buttons 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
6bf75e1c10 shell: Handle Tablet grabs 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
bb95a57f5a move: Make sure to always unset tool grab 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
87d73dbce3 resize/tiling: Set cursor icons on tool input 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
f00ff834c9 resize/tiling: Fix location for tablet tools 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
b8824128a0 element: Add cursor shape and resize handling on tool input 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
e65f6608a4 element: Remove unnecessary grab variants 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
85564f0336 input: Focus on tool tip down 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
a66f629a4e input: Make sure to update internal pointer position state on tool input 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
67aa6a0c49 input: Don't send out pointer events for tool events 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
9125f8a2a7 input: Add pointer-emulation grab for tablet tools 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
6467f79025 shell: Add tablet grabs 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
ca9dd27350 chore: Fix debug feature by updating smithay-egui 2026-09-03 21:00:11 +02:00
Ian Douglas Scott
8ec1ffb740 protocols/keyboard-layout: Send ei modifiers on group change
This makes `cosmic-osk` show a group change on `super+space`. Previously
a change like that wouldn't be sent until a keyboard input changed the
modifier state, for instance releasing the shift key.
2026-09-03 19:31:56 +02:00
Frederic Laing
0d75928579 chore: refactor throttle function 2026-09-03 17:46:37 +02:00
Frederic Laing
e62e35e5cc fix: keep Xwayland frame callbacks progressing 2026-09-03 17:46:37 +02:00
Hojjat
8691956644 fix: validate layer radius against the pending surface size 2026-09-02 15:32:26 -06:00
Konstantinos
9059873c84 fix: Do not magnify cursor when there is an active grab. 2026-09-02 15:39:42 +02:00
Shehriyar Qureshi
e93ec67a11 fix(kms): typo in log message 2026-09-02 15:23:09 +02:00
Victoria Brekenfeld
a7d31a75d2 backend/kms: Check all connectors for primary gpu 2026-09-01 08:02:38 -06:00
Victoria Brekenfeld
b407ed560a wayland/decoration: Make default decoration mode configurable 2026-09-01 08:01:43 -06:00
Victoria Brekenfeld
a830784f11
Merge pull request #2796 from weblate/weblate-pop-os-cosmic-comp 2026-08-31 19:13:08 +02:00
Hojjat
9fe22c86b6 fix(corner-radius): use layer surface size for radius validation 2026-08-31 19:10:49 +02:00
RipleyTom
94178034dd feat: allow XWayland window to start minimized 2026-08-31 16:29:03 +02:00
Hosted Weblate
158e2b7f91
i18n: translation updates from weblate
Co-authored-by: Kurt Harren Catindig <kurtharrencatindig03@gmail.com>
2026-08-29 18:07:44 +02:00
af6d31f413 Merge tag 'epoch-1.7.0' into local/yoda-main
Epoch 1.7.0
2026-08-27 07:49:24 +02:00
Victoria Brekenfeld
5c93094574 chore: update smithay 2026-08-26 20:07:05 +02:00
Hojjat
31827ed240 improv: clear image_cache on refresh 2026-08-25 17:33:56 +02:00
Hojjat
80b8eb47d7 improv: round up and down sample cursor sizes to limit cache 2026-08-25 17:33:56 +02:00
Hojjat
01b79c3eae feat: scalable cursor support 2026-08-25 17:33:56 +02:00
Tom Grushka
8304b18886 Clamp zoom level to 1.0 if < 1.01
Fix floating point edge cases that keep zoom enabled when level ≈ 1.0

Co-authored-by: Luuk van der Duim <luukvanderduim@gmail.com>
2026-08-21 22:56:16 +02:00
Tom Grushka
738e0b3124 a11y: magnifier: change zoom stepping to multiplicative, bound max, add presets
1. Change magnifier zoom stepping from additive to multiplicative,
   because zoom is a ratio, not a difference, and human perception is
   logarithmic (browser zoom steps, map zoom levels, microscope powers).

2. Add `pub const ZoomConfig::ZOOM_INCREMENT_PRESETS` with two
   additional presets: 10% (macOS, Cinnamon) and 75% (for users at
   70-90x zoom).

3. Bound the zoom level to a generous maximum, beyond what anyone is expected
   to need, to prevent runaway / unrecoverable levels (#1230).

Full background and rationale at #2615.

I used AI to assist with research and issue writeup. Code is 100% mine.

- Closes #2615.
- Fixes #1239.
- Partially addresses #1230 and #1237.
2026-08-21 22:56:16 +02:00
8ac198de15 kms: revient au mode prefere pour le choix initial de sortie
Revient sur 7187efd5, qui elisait le rafraichissement le plus eleve a la
resolution native au lieu du mode marque PREFERRED.

Sans effet au quotidien : ~/.local/state/cosmic-comp/outputs.ron memorise
le mode choisi par sortie et pin deja DP-1 en 3840x2160 a 119,88 Hz.
populate_modes ne decide qu'en l'absence d'etat memorise, c'est-a-dire sur
un profil neuf ou un ecran jamais vu.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-21 09:54:25 +02:00
be1fab51ea comp: retire le runtime Tokio, devenu sans objet
Revient sur 3d01a219. La feature "tokio" de libcosmic-yoda activait
zbus?/tokio, ce qui imposait un Handle::current() ambiant alors que la
boucle de cosmic-comp n'est pas async ; d'ou le garde de runtime dans
main(). La feature est retiree de la dependance libcosmic, zbus n'a donc
plus besoin de reacteur Tokio et le garde n'a plus lieu d'etre.

Cargo.lock perd tokio et toute la chaine qui venait avec la feature :
ashpd, rfd, atspi, accesskit_unix, zbus_xml, tokio-stream.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-21 09:54:17 +02:00
Hojjat
f20de50e41 feat: shake cursor to find by magnifying the cursor 2026-08-21 00:39:02 +02:00