Commit graph

152 commits

Author SHA1 Message Date
Ashley Wulber
0b0d2925ff chore: blur updates 2026-09-16 11:12:18 -06:00
Ian Douglas Scott
06a762caca locker: Rely on cosmic-bg for showing background
Requires https://github.com/pop-os/cosmic-comp/pull/2792 and
https://github.com/pop-os/cosmic-bg/pull/144.
2026-09-11 14:38:19 -06:00
Hojjat
601e16af0e chore: adapt to the changes in libcosmic 2026-09-11 21:49:05 +02:00
r0chd
14cc125fcd
fix: compile without the logind feature 2026-09-09 10:10:52 +02:00
Frederic Laing
0a16d339a4 fix: remove unused Color import 2026-09-01 15:10:56 -06:00
demi
cde1a13140
fix: handle sequential PAM prompts in greeter and locker 2026-09-01 17:04:46 +02:00
chris-010
935891e36b fix(greeter): do not cancel the session on a non-fatal PAM error message
greetd delivers PAM_ERROR_MSG as an auth message of type Error, and ipc.rs
turned that into Message::Error, which cancels the greetd session. But such a
message describes the current attempt, not the end of the conversation:
pam_fprintd reports "Failed to match fingerprint" this way and then retries
until max-tries is reached.

The consequence at the login screen is that a single failed fingerprint press
ends the conversation. The greeter reconnects and immediately creates a new
session, whose PAM worker calls fprintd's Claim 14 ms later while the previous
worker still holds it, so the claim is denied and no fingerprint prompt ever
appears again. The previous worker only exits when it next tries to talk to the
greeter, which can be arbitrarily far in the future, so delaying the new session
does not help either.

Per the greetd protocol every auth message has to be acknowledged with
PostAuthMessageResponse, and for a non-interactive one the response is None,
which is what the Info arm already does. Route the Error message to its own
Message::AuthError that shows the text and acknowledges it. Message::Error and
the Response::Error path stay as they are, so a failed authentication still
cancels the session.

Drafted with AI assistance (Claude Code); the change and the measurements behind
it were reviewed and tested by me on real hardware.

Signed-off-by: chris-010 <10660568+chris-010@users.noreply.github.com>
2026-08-25 02:33:15 +02:00
Michael Aaron Murphy
e9ab9e74a5 feat: enable JPEG-XL and AVIF image support 2026-08-18 18:58:39 +02:00
chris-010
088f26cbb8 fix: ignore empty responses on the login screen
Message::Auth is constructed in exactly one place, the .on_submit of the
password input, and it forwards whatever the field holds to greetd. An
empty field therefore sends PostAuthMessageResponse with response
Some(""), PAM rejects it, and greetd tears the session down; the greeter
then reconnects with a fresh CreateSession. Every stray Enter costs that
round trip, and while it runs the user is looking at the authenticating
spinner.

Non-interactive auth messages (AuthMessageType::Info) are acknowledged
separately with response None and never reach Message::Auth, so an empty
Some can only come from the user submitting an empty field.

This is the login-screen counterpart of the lock-screen fix in #509. The
two do not overlap; that one guards Message::Submit in locker.rs.

Drafted with AI assistance (Claude Code); the change was reviewed, built
and tested by me as described.

Signed-off-by: chris-010 <10660568+chris-010@users.noreply.github.com>
2026-08-18 04:21:19 +02:00
Ralph S
ae627ab0d0
fix: ignore empty password 2026-08-17 13:45:03 -06:00
Hugo
f64e2d8fab
fix: detect and enable logind functionality at runtime
Downstream distributions have optional logind, but the logind feature
must be defined at compile time. If cosmic-greeter is compiled with
logind support it fails to run on a host that's not running logind.

Detect whether logind is present at runtime, enabling the use of the
same binaries regardless of whether logind is installed or not.
2026-07-29 17:51:37 +02:00
Ian Douglas Scott
d39915ae23 Use cosmic-keymap-unstable-v1 2026-07-28 16:17:56 -04:00
Ashley Wulber
95067445be improv: better handling of popover dialog after dropdown 2026-07-09 12:10:46 -06:00
Ashley Wulber
05f09fe33c improv: use the new menu column widget 2026-07-09 12:10:46 -06:00
Ashley Wulber
0b7803077a feat: blur 2026-07-09 12:10:46 -06:00
Fred
953478f801
feat: use spinner widget from libcosmic for authentication 2026-06-24 19:12:46 +02:00
Vukašin Vojinović
9895bd4b43 chore: add rustfmt config 2026-04-29 00:20:17 +02:00
Vukašin Vojinović
a7ca33b6eb chore:: clippy 2026-04-29 00:20:17 +02:00
Vukašin Vojinović
ec1b80534a refactor: replace chrono with jiff 2026-04-29 00:20:17 +02:00
Ashley Wulber
619910c5cc chore: update libcosmic
fixes input clipping
2026-04-14 10:27:16 -06:00
User
c3e2182c38 Fix selected user index during greeter init 2026-04-02 17:12:09 -04:00
Ashley Wulber
e2e1f78550 fix: guard against invalid reported capacity 2026-03-30 12:49:32 -06:00
Ashley Wulber
0255c3f55b chore: cleanup 2026-03-30 12:49:32 -06:00
Ashley Wulber
08f5a3b713 fix: wrap column in a different id when entering name 2026-03-30 12:49:32 -06:00
Ashley Wulber
0272e189f4 fix: battery icon 2026-03-30 12:49:32 -06:00
Ashley Wulber
a51050128e fix: update iced 2026-03-30 12:49:32 -06:00
Ashley Wulber
89671a793f chore: updates after iced rebase 2026-03-30 12:49:32 -06:00
Jeremy Soller
63cd93bddd
Security hardening (#426)
- Switch gid and supplementary groups to user's when reading user's
  config
- Only show users between UID_MIN and UID_MAX in /etc/login.defs
- Open accountsservice icons with O_NOFOLLOW to explicitly disallow
  symlinks
2026-03-13 08:35:18 -06:00
Hojjat
f3e9de2425 fix: ACK so greetd doesn't wait forever on systems with fingerprint scanner
Also show info messages from PAM mainly "Place your finger on the
fingerprint reader"
2026-01-23 03:32:34 +01:00
Hojjat
4acdc099f4 chore: use libcosmic's freedesktop-desktop-entry 2026-01-23 03:32:19 +01:00
Kajus Naujokaitis
5dc1db27ed fix: improve error handling to prevent softlock
- handle greetd ipc auth_message error types as errors
- handle locker pam error_msg as errors
- fixes an issue where greeter would get stuck in 'Authenticating...'
  state due to error messages being treated as normal messages
2025-12-15 12:31:01 -07:00
Frederic Laing
f806087fc8 address feedback 2025-11-14 11:50:14 -05:00
Frederic Laing
97d69f37e9 implement a more consistent login mask with a stable layout and improved error messages 2025-11-14 11:50:14 -05:00
Jeremy Soller
31d0f66d3a Make offset of prompt from top of screen proportional 2025-10-30 18:43:39 -06:00
Vukašin Vojinović
7bab53c5b4 chore: clippy 2025-10-27 15:10:24 -06:00
Vukašin Vojinović
a7f8a62807 improv: don't resize column for caps lock and error text
This prevents the other column items from jumping around depending on if Caps Lock is toggled or if an error is shown. Now only the error text moves depending on if Caps Lock is toggled.
2025-10-27 15:10:24 -06:00
Michael Aaron Murphy
9ba6a0481c
perf: cache image handles 2025-09-17 18:25:57 +02:00
Vukašin Vojinović
31912afaa1 chore: update dependencies
The ICU update reduces binary size by ~20 MB.
2025-09-16 09:28:25 -06:00
Ashley Wulber
79bf2cb4f8 chore: cleanup logs 2025-09-12 23:47:22 +02:00
Ashley Wulber
16185fe21e fix: reposition subsurface after layer surface size update 2025-08-29 10:29:15 -04:00
Ashley Wulber
0e2141ac6c refactor: use randr kdl command
cleanup

chore: update deps

fix: typo
2025-08-29 10:29:15 -04:00
Ashley Wulber
f3f7d5cfb6 feat: load and apply output configs
fix: typo

chore: update deps

cleanup
2025-08-29 10:29:15 -04:00
Ashley Wulber
db59a72eb9 feat: introduce cosmic-greeter-start for state cleanup 2025-08-12 10:59:29 -05:00
Ashley Wulber
9a72c09fed better syncing 2025-08-12 10:59:29 -05:00
Ashley Wulber
9c1306d8c7 feat: accessibility menu 2025-08-12 10:59:29 -05:00
Jeremy Soller
38e6b93d57
Do not inhibit suspend when lock screen already shown, fixes #230 2025-07-08 10:00:32 -06:00
Jeremy Soller
6ea0f9868a
Fix comment formatting 2025-07-08 09:50:05 -06:00
Ashley Wulber
6813da21b5 fix: binary search won't work for name comparison 2025-06-30 18:30:21 +00:00
Ashley Wulber
bbaa1935f4 feat: last user 2025-06-30 18:30:21 +00:00
Ashley Wulber
ab2ae6d31e fix: clear dropdown after enter user is selected 2025-06-27 08:43:04 -04:00