Alexander Orzechowski
f6f804013f
Check for existence of subcompositor
...
We need this protocol
2022-11-14 21:07:01 +01:00
Aleksei Bavshin
1225e75be0
Ensure that ext_session_lock_v1.unlock_and_destroy is processed.
...
Use wl_display_roundtrip to ensure that the unlock request is received
and processed by the server. The protocol requires[1] this to avoid
possible races.
[1]: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/161
2022-11-12 10:40:19 +01:00
Daniel De Graaf
dafbef3ade
Unlock the screen on SIGUSR1
...
When the screen is locked using ext_session_lock, killing swaylock will
leave the session locked. This is normally desirable if the kill is due
to the OOM killer or swaylock crashing, but can be undesirable if an
unlock is desired. This adds a signal handler for SIGUSR1 if using
ext_session_lock.
2022-09-24 12:15:53 +02:00
Robin Ebert
bdeb891378
Use mlock for password buffer
2022-06-15 10:49:32 +02:00
Simon Ser
2813756a19
Drop xdg-output requirement
...
Rely on wl_output v4 instead.
2022-03-10 10:31:51 +01:00
tiosgz
92de4d2e31
Do not crash on connecting new output
...
The problem here was that a commit in reaction to wl_output::geometry
was made before the surface was configured, which is a protocol error.
See 65552.531 in the following log.
[ 65537.378] wl_registry@2.global(37, "wl_output", 4)
[ 65537.534] -> wl_registry@2.bind(37, "wl_output", 3, new id [unknown]@21)
[ 65537.679] -> wl_compositor@5.create_surface(new id wl_surface@19)
[ 65537.744] -> wl_compositor@5.create_surface(new id wl_surface@23)
[ 65537.822] -> wl_subcompositor@6.get_subsurface(new id wl_subsurface@24, wl_surface@23, wl_surface@19)
[ 65537.934] -> wl_subsurface@24.set_sync()
[ 65537.973] -> ext_session_lock_v1@3.get_lock_surface(new id ext_session_lock_surface_v1@25, wl_surface@19, wl_output@21)
[ 65538.086] -> wl_compositor@5.create_region(new id wl_region@26)
[ 65538.148] -> wl_region@26.add(0, 0, 2147483647, 2147483647)
[ 65538.275] -> wl_surface@19.set_opaque_region(wl_region@26)
[ 65538.325] -> wl_region@26.destroy()
[ 65538.383] -> wl_display@1.sync(new id wl_callback@27)
[ 65551.781] wl_display@1.delete_id(26)
[ 65551.924] wl_display@1.delete_id(27)
[ 65551.971] wl_pointer@13.enter(839, wl_surface@15, 558.01562500, 785.66796875)
[ 65552.093] -> wl_pointer@13.set_cursor(839, nil, 0, 0)
[ 65552.231] wl_output@21.geometry(0, 0, 440, 300, 0, "Samsung Electric Company", "SyncMaster", 0)
[ 65552.453] -> wl_surface@19.frame(new id wl_callback@26)
[ 65552.531] -> wl_surface@19.commit()
[ 65552.568] wl_output@21.mode(1, 1680, 1050, 59883)
[ 65552.685] wl_output@21.scale(1)
[ 65552.762] wl_output@21.done()
[ 65552.796] ext_session_lock_surface_v1@25.configure(840, 1680, 1050)
[ 65552.893] -> ext_session_lock_surface_v1@25.ack_configure(840)
[ 65553.044] -> wl_shm@4.create_pool(new id wl_shm_pool@28, fd 7, 7056000)
[ 65553.156] -> wl_shm_pool@28.create_buffer(new id wl_buffer@29, 0, 1680, 1050, 6720, 0)
[ 65553.224] -> wl_shm_pool@28.destroy()
[ 65558.903] -> wl_surface@19.set_buffer_scale(1)
[ 65558.953] -> wl_surface@19.attach(wl_buffer@29, 0, 0)
[ 65558.981] -> wl_surface@19.damage_buffer(0, 0, 2147483647, 2147483647)
[ 65559.013] -> wl_surface@19.commit()
[ 65559.026] -> wl_subsurface@24.set_position(842, 465)
[ 65559.063] -> wl_surface@23.attach(nil, 0, 0)
[ 65559.088] -> wl_surface@23.commit()
[ 65559.110] -> wl_subsurface@24.set_position(782, 465)
[ 65559.186] -> wl_shm@4.create_pool(new id wl_shm_pool@30, fd 8, 58564)
[ 65559.220] -> wl_shm_pool@30.create_buffer(new id wl_buffer@31, 0, 121, 121, 484, 0)
[ 65559.266] -> wl_shm_pool@30.destroy()
[ 65559.287] -> wl_surface@23.attach(nil, 0, 0)
[ 65559.316] -> wl_surface@23.commit()
[ 65559.385] -> wl_surface@23.set_buffer_scale(1)
[ 65559.402] -> wl_surface@23.attach(wl_buffer@31, 0, 0)
[ 65559.427] -> wl_surface@23.damage_buffer(0, 0, 2147483647, 2147483647)
[ 65559.458] -> wl_surface@23.commit()
[ 65559.467] -> wl_surface@19.commit()
[ 65559.478] wl_callback@27.done(840)
[ 65559.740] wl_display@1.error(ext_session_lock_surface_v1@25, 0, "session lock surface has never been configured")
ext_session_lock_surface_v1@25: error 0: session lock surface has never been configured
2022-02-10 09:54:57 +01:00
Simon Ser
1d1c75b631
Add support for ext-session-lock-v1
...
This is a new protocol to lock the session [1]. It should be more
reliable than layer-shell + input-inhibitor.
[1]: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/131
2022-02-02 15:30:45 +01:00
grumpey
366db56553
Call fclose vice free, fixes #198
2021-07-11 19:52:55 +02:00
Simon Ser
9d3da72a39
Use wl_surface.damage_buffer
...
We incorrectly used the buffer size instead of the surface size.
Let's not bother and just damage the maximum region.
2021-02-17 16:50:38 +01:00
Simon Ser
05325b1197
Initialize indicator size to zero
...
Initializing to 1 is incorrect when the surface scale is > 1.
2021-02-17 16:50:38 +01:00
Martin Dørum
235b925df7
Fix a potential use-after-free
2020-10-15 15:17:41 +02:00
Martin Dørum
a99afe6a70
Implement key repeat
2020-06-19 23:02:23 +02:00
Matt Della
a7404e1096
Added option to adjust ring position via CLI arguments and the config file
2019-11-27 19:53:07 -05:00
Olegs Jeremejevs
426e1ce93d
Fix, clean up and sync docs and completions
2019-09-12 16:33:24 -04:00
Alexander Martin
666ae950bc
Adds option to show indicator even if idle
2019-08-04 02:15:49 -04:00
Martin Dørum
b1a7defa00
seed rand
2019-06-28 10:27:42 -04:00
Abdelhakim Qbaich
89b214612c
Resizable buffer size for the subsurface
2019-06-22 22:36:53 +03:00
Peter Kasza
183d1bd549
Add fixed font-size option for indicator
...
This commit adds a new command line option called --font-size to
specify a fixed font size in the indicator. The default value for
font-size is 0, which means that the text will autoscale. Any other
positive value will result in a fixed text size.
2019-05-05 09:25:59 -06:00
bbgun7
86f4fea55e
Added hide keyboard layout option
2019-04-22 10:34:19 -07:00
Brian Ashworth
7892d8cc51
Allow spaces in image file path
...
This allows one or more spaces to be in the image file path
2019-04-01 11:33:14 +03:00
Kenny Levinsen
d815e29b64
Do not exit if no outputs are present
2019-03-30 00:37:59 +02:00
Anders Nylander
7d5a73b0a9
Decouple the drawing of the background from drawing the indicator.
...
* Render background only once in main wl_surface
* Render indicator on subsurface
2019-03-20 23:07:31 +02:00
Dominik Bendle
a052a56bc2
Display xkb layout while typing
...
Displays the current keyboard layout below the unlock indicator if more
than one xkb layout is configured or the show-keyboard-layout option is
given. The text is displayed with a background box.
Adds commandline options for text color, background color and border
color of the box as well.
2019-02-06 01:42:49 +01:00
Dominik Bendle
40e9098a74
Add option show-failed-attempts
...
Keeps track of unsuccessful authentication attempts via an int counter
in the state struct. Displays on the unlock indicator, but will be
replaced by the Caps Lock text if enabled.
2019-01-29 20:44:32 +01:00
Dominik Bendle
c2b99768e9
Allow setting both background image and colour
...
The -c/--color option no longer sets BACKGROUND_MODE_SOLID_COLOR (which
disables the background image) and the background color is now set in
all cases. One can still use --scaling solid_color to disable display of
a background image.
As a consequence, there is now only one possible default background
colour (white), regardless of whether a background image is given or not.
2019-01-25 10:30:13 +01:00
emersion
d98ada0efd
Simplify XDG_CONFIG_HOME handling
2019-01-19 08:36:09 +01:00
Drew DeVault
52eeb9fc1e
Merge pull request #24 from c-edw/feature/AbortSUIDWithPAM
...
Log error and exit if swaylock is suid with PAM backend.
2019-01-18 09:07:17 -05:00
Connor E
648b0ccd64
Make setuid error clearer.
2019-01-18 13:52:17 +00:00
Connor E
7c0ba89197
Handle alloc failures.
2019-01-18 13:45:34 +00:00
Connor E
291bae1e44
Remove VLAs.
2019-01-18 12:27:42 +00:00
Michael Weiss
710a711fd7
Replace old Sway references with swaylock
2019-01-17 17:18:20 +01:00
Drew DeVault
79dd99cb3c
Merge pull request #19 from swaywm/async
...
Async password verification
2019-01-17 08:12:03 -05:00
William Hua
8de5a06883
Allow image file paths to contain colons
...
Colon characters are allowed in file paths, so if an image file named
'foo:bar.png' is passed as an --image argument, it's currently parsed as
image 'bar.png' on output 'foo'.
This fix allows the caller to pass the argument ':foo:bar.png' and treat
an output of '' the same as NULL. This is assuming there will never be
an output named '' however...
2019-01-17 07:41:10 -05:00
emersion
c77f0eb4ed
Check password without blocking
2019-01-17 12:42:13 +01:00
Brian Ashworth
e3935ad143
Implement logging and remove wlroots dependency
...
This implements a simpler version of the wlroots logger for swaylock.
With this logger, the dependency on wlroots can be dropped. This also
adds a debug flag and disables debugging output by default
2019-01-14 23:30:54 -05:00
Robinhuett
1e7696fceb
Add caps lock state to indicator
...
This implements customization for the indicator as proposed in sway#2788 with comments from sway#3367 in mind.
The default behaviour does not change exept for the caps lock text color.
Since these changes seem to be lost in the split I've remade them.
2019-01-14 16:51:04 +01:00
Drew DeVault
b90637e2a6
Convert swaylock into standalone project
2019-01-13 21:16:47 -05:00
Ian Fan
70ce4f9dc6
Remove readline.c
...
All occurrences of read_line have been replaced by getline.
peek_line has been absorbed into detect_brace.
2019-01-01 09:01:25 +00:00
Cameron Nemo
53f55a7140
swaylock: fix build with musl libc
...
Signed-off-by: Cameron Nemo <camerontnorman@gmail.com>
2018-11-30 23:22:09 -08:00
emersion
8191c2147b
Replace _XOPEN_SOURCE with _POSIX_C_SOURCE
...
And make sure we don't define both in the same source file.
2018-11-25 17:19:43 +01:00
Drew DeVault
28e5138fad
Merge pull request #2925 from ianyfan/swaylock
...
swaylock: exit early if unable to get input inhibitor
2018-10-24 18:54:22 +02:00
Ryan Dwyer
d7ffed8b49
Add multiseat support to swaylock
2018-10-24 22:04:16 +10:00
Ian Fan
274179a804
swaylock: exit on display error
2018-10-23 11:49:33 +01:00
Ian Fan
4b312c1389
swaylock: exit early if unable to inhibit input
...
This stops the program from going into a spinlock without exiting
2018-10-23 11:41:45 +01:00
Connor E
5521293dc7
Change initial background mode before arg parse.
2018-10-19 16:38:01 +01:00
Ryan Dwyer
b239eba5a9
Fix swaylock version string
...
The referenced constants were not defined so it always printed "version
unknown".
Also it would exit with code 1. It now exits with code 0.
2018-10-16 00:09:16 +10:00
Ryan Dwyer
529f5ce2e4
Sway clients: Exit gracefully when compositor is unavailable
2018-10-15 21:57:59 +10:00
Ryan Dwyer
1d0579aca4
swaylock: Use common event loop
2018-10-15 00:26:27 +10:00
Ryan Dwyer
ec35e9943e
swaylock: Support keyboard and pointer disconnects and reconnects
2018-10-06 09:38:12 +10:00
Arkadiusz Hiler
5ca9cd6d4e
Turn funcs() into funcs(void)
...
If they really do not take undefined number of arguments.
2018-09-30 14:09:05 +03:00