Commit graph

127 commits

Author SHA1 Message Date
Ian Douglas Scott
a5474e8c76 Fix clippy lints
Like Smithay, disable `clippy::collapsible_match`. It seems prone to
offering dubious suggestions.
2026-04-27 14:51:46 -07:00
Ian Douglas Scott
826ad9a91a chore: Update smithay 2026-04-27 14:51:46 -07:00
Vukašin Vojinović
2ca99c670a chore: clippy 2026-03-18 18:19:03 +01:00
Victoria Brekenfeld
2adebb5fe1 config: Add and propagate appearance_config 2026-01-13 19:12:22 +01:00
Victoria Brekenfeld
e6a3a3a9c9 xwm: Set xcursor variables in Xresources db 2026-01-09 20:49:56 +01:00
Ian Douglas Scott
a3904af03c wayland: Remove atspi protocol
If we want to use the `org.freedesktop.a11y.KeyboardMonitor` protocol on
Pop!_OS, there is no need to support the Cosmic-specific protocol that
requires an `at-spi2-core` patch.
2025-11-24 13:53:05 -08:00
Vukašin Vojinović
1f7f0c70b7 chore: format for Rust 2024 2025-10-22 23:55:11 +02:00
Vukašin Vojinović
b6c5d00bec cargo fmt 2025-10-22 23:55:11 +02:00
Vukašin Vojinović
0847247c33 chore: clippy 2025-10-22 23:55:11 +02:00
Victoria Brekenfeld
b83e9f1d32 config: Make read_outputs failable
Previously we ignored when we had no output configuration
**and** failed to apply the automatically created one.

This leads to two problems:
- If this happens on startup, we end up with no outputs being added to the shell and we quit.
- If this happens later, we might end up in an inconsistent state, where the shell thinks we have an output, when it didn't light up for similar reasons.

Thus `read_outputs` is failable and handling that very much depends on
the where is was called from, because `read_outputs` doesn't know what
configuration was active before.

Thus make it failable and provide useful mitigations everywhere
possible:
- Try to enable just one output in case we fail on startup.
- Don't enable any additional outputs, when we fail on hotplug.
- Log the error like previously in any other case (and come up with more
  mitigations, once we understand these cases better).
2025-09-15 09:13:00 +02:00
Ashley Wulber
458f5f4dcf refactor(config): fix no features enabled 2025-09-09 10:01:43 -04:00
Ashley Wulber
bb8e066d6d feat(config): load cosmic-randr output Lists 2025-08-26 11:30:56 -04:00
Ashley Wulber
416b66b776 refactor(output config): move to config crate
this allows the greeter to easily sync to the user config
2025-08-26 11:30:56 -04:00
Victoria Brekenfeld
4a385d5535 config: Allow overriding touchpad state 2025-08-22 18:23:05 +02:00
Vukašin Vojinović
7f7ab8bcbe chore: Rust 2024 edition
Set the formatting style to 2021 edition to avoid disrupting existing work.
Remove when possible.
2025-08-21 13:10:11 +02:00
Vukašin Vojinović
35d781dc1e chore: update dependencies 2025-08-21 13:10:11 +02:00
Victoria Brekenfeld
de43fb1f0e config: Ignore configs disabling every output 2025-08-11 18:47:57 +02:00
Victoria Brekenfeld
e34a289c01 kms: lock during screen conf changes 2025-07-25 17:51:01 +02:00
Ashley Wulber
8a3436edb2 Revert "feat: power button handling"
This reverts commit 534584b9e48fcae406094367bdcb911f8957a523.
2025-06-13 19:19:32 +02:00
Ashley Wulber
8e3590fb4d feat: power button handling 2025-06-13 18:40:30 +02:00
Victoria Brekenfeld
465813c1c5 shell: Using parking_lot's RwLock for fairness guarantees 2025-05-27 20:00:21 +02:00
Ian Douglas Scott
96e9bf3b81 Initial support for workspace pinning and moving
Adds support for cosmic-workspace-v2 pin, unpin, move_after, and
move_before requests.

Both features need some work with workspaces span displays mode, so that
will need more fixes later.

We also want to generate a unique id for pinned workspaces to send in
the ext-workspace-v1 protocol. But that isn't a strict requirement for
anything. So I haven't yet fully implemented that. We'll also want to
persist other things, like workspace naming when that's added.

Overall, though, with separate workspaces per display, this is working
pretty well.
2025-04-24 12:45:50 +02:00
Victoria Brekenfeld
aeed8f256f xwayland: store and restore primary output 2025-04-14 18:15:28 +02:00
Victoria Brekenfeld
7472351de0 feat: Allow fractional xwayland client scale 2025-04-14 18:15:28 +02:00
Victoria Brekenfeld
cbc4ad6fc2 xwayland: Allow eavesdropping on certain keyboard/pointer events 2025-04-02 17:26:09 +02:00
Ian Douglas Scott
e74eafce2c Add EdidProduct, as user data for kms Outputs
This is the same as `libdisplay_info::edid::VendorProduct`, but with
implementations for `Serialize`, `Eq`, etc.
2025-04-02 13:40:56 +02:00
Victoria Brekenfeld
babb96ddfa a11y/zoom: Drop last state 2025-03-28 18:35:06 +01:00
Victoria Brekenfeld
ea09334ff7 config: Add screen-filter configuration and persistent state 2025-03-24 19:10:52 +01:00
Victoria Brekenfeld
d76f372c29 actions: Shortcut handling changes for #1005 2025-03-05 18:24:28 +01:00
Victoria Brekenfeld
b92879e60b zoom: Fix config/state changes 2025-02-20 23:51:55 +01:00
Victoria Brekenfeld
55e4dd7c0f config: Handle zoom updates in Common::update_config 2025-02-20 23:51:55 +01:00
Victoria Brekenfeld
58f96e6f4a config: Read/store zoom state 2025-02-20 23:51:55 +01:00
Victoria Brekenfeld
55d1ce5e3b config: Add zoom configuration 2025-02-20 23:51:55 +01:00
Daniel
2553810621
grabs: Snap Window Edges to Close Output Edges 2025-02-14 11:58:09 +01:00
András
2678cf41b2 Reactivated num/caps-lock upon keyboard layour change 2025-02-13 11:45:47 +01:00
Paul Daniel Faria
f1f9d205be
Make numlock state on boot configurable
Make numlock state on boot configurable

This will expose 3 settings for numlock behavior:
1. Numlock is off on boot (this is the current default behavior)
2. Numlock is on on boot
3. Numlock will restore the state from the last boot

Fixes #369

* Address comments:

Get keyboard after create_seat called rather than returning from
create_seat.
Use constants rather than magic numbers for keypress.
Only save updated modifier state after keypresses are handled/skipped.

* Remove unused import, fold other into existing use block.
2025-02-12 14:35:22 +01:00
Victoria Brekenfeld
d9b15f1eb3 chore: ron 0.9 update 2025-02-07 13:32:30 +01:00
Michael Aaron Murphy
476470e6f1 fix(config): wrong config context for system actions on startup 2025-02-04 14:10:54 +01:00
Victoria Brekenfeld
870e5be2a6 kms: Use scaled sizes for placing new outputs 2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
8b87d6524e kms: Use new DrmOutput api 2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
80965a61b9 kms: Adaptive VRR support 2024-11-27 09:37:01 +01:00
Ian Douglas Scott
90883c6ab1 Add cosmic_atspi_v1 protocol
Used to provide a backend for `AtspiDevice` in `at-spi2-core`, so Orca
keybindings can work.
2024-10-31 18:49:56 +01:00
Ian Douglas Scott
15a6425836
Set default output transform based on DRM panel orientation (#901) 2024-10-07 18:12:40 +02:00
Ian Douglas Scott
01d78689b5 Run cargo fmt 2024-09-19 16:23:25 +02:00
Richard Weber
4cf34fe312 Fix iter parameter change 2024-09-04 20:50:42 +02:00
Richard Weber
5482ff65e5 Add config reloading for tiling exceptions 2024-09-04 20:50:42 +02:00
Richard Weber
5fe9ba29eb Use new config from cosmic-settings-config 2024-09-04 20:50:42 +02:00
Richard Weber
e8947b8742 Move tiling exceptions to configuration file 2024-09-04 20:50:42 +02:00
skewballfox
7da0bc430a added cursor_follows_focus and focus_follows_cursor 2024-09-04 20:22:40 +02:00
Victoria Brekenfeld
971c28db38 xwayland: Add descaling option 2024-09-02 18:58:13 +02:00