Commit Graph

162 Commits

Author SHA1 Message Date
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
Drew DeVault
64259db8d6 Add support for building swaylock without PAM
This involves setuid'ing swaylock, which then forks and drops perms on
the parent process. The child process remains root and listens on a pipe
for requests to validate passwords against /etc/shadow.
2018-09-28 13:53:01 +02:00
Geoff Greer
1ba79a159e swaybar, swaylock, & tree/container: Set cairo font options to render text and lines with subpixel hinting (if available). 2018-09-22 11:34:21 -07:00
Brian Ashworth
01e7492d70 Fix swaylock arguments 2018-07-17 21:50:15 -04:00
Brian Ashworth
2bb424ea89 Switch to using getopt_long for config flag 2018-07-16 12:17:40 -04:00
Brian Ashworth
96af98e976 Remove leftover parens 2018-07-16 12:17:40 -04:00
Brian Ashworth
bd4a8e0673 Remove int cast after changing to size_t 2018-07-16 12:17:40 -04:00
Brian Ashworth
e1ddb4373f Change to size_t in swaylock's get_config_path 2018-07-16 12:17:40 -04:00
Brian Ashworth
6fb2cf9507 Implement swaylock configuration file parsing 2018-07-16 12:17:40 -04:00
Brian Ashworth
cd9295c9d9 Change formatting of swaylock usage in the code 2018-07-10 22:09:31 -04:00
Brian Ashworth
77cf57ae14 Implement swaylock customization flags 2018-07-10 21:29:15 -04:00
emersion
ecf5b656c9 Update for swaywm/wlroots#1126 2018-07-09 22:54:30 +01:00
emersion
d4886a3cd5 swaylock: daemonize after locking 2018-07-07 18:36:49 +01:00
Ryan Dwyer
1468d89395 Detect opaque lockscreen when using a solid color 2018-07-07 00:17:08 +10:00
Ryan Dwyer
788b771632 Use infinite opaque region in swaylock 2018-07-07 00:03:49 +10:00
Ryan Dwyer
f43f683720 Use opaque region to determine if frame done should be sent 2018-07-07 00:03:49 +10:00
Dominique Martinet
8406c501b9 swaylock daemonize: fix leak of devnull fd 2018-07-02 08:03:41 +09:00
emersion
515f03c94c swaylock: implement a proper render loop 2018-05-27 13:39:38 +01:00
emersion
cc12bc3723 swaylock: remove unused field 2018-05-23 22:59:24 +01:00
emersion
ab7d22052a Merge branch 'master' into fix-swaylock-hotplugging 2018-05-23 22:54:52 +01:00
Ryan Dwyer
7072f6112c Swaylock: Use calloc instead of malloc 2018-05-20 22:54:09 +10:00
Ryan Dwyer
9a06de63e7 Swaylock: Log error if multiple images are defined for the same output 2018-05-20 22:54:09 +10:00
Ryan Dwyer
3afd535a3b Swaylock: Allow per-output images 2018-05-20 22:54:09 +10:00
emersion
b0c5fa2bdf Fix output hotplugging 2018-05-18 21:57:58 +01:00
emersion
af713a5adb Fix swaylock crashing when unplugging output 2018-05-18 19:13:08 +01:00
Geoff Greer
d8f0fb1378 swaylock: Securely zero-out password.
- Replace char* with static array. Any chars > 1024 will be discarded.
- mlock() password buffer so it can't be written to swap.
- Clear password buffer after auth succeeds or fails.

This is basically the same treatment I gave the 0.15 branch in https://github.com/swaywm/sway/pull/1519
2018-04-12 17:49:21 -07:00
Drew DeVault
b9afbf0bd3 Error handling in swaylock daemonize()
Fixes #1741
2018-04-05 09:21:39 -04:00
Drew DeVault
f39499b139 Address review feedback from @emersion 2018-04-04 18:52:44 -04:00
Drew DeVault
61b2e71c0c Add hidpi support to swaylock 2018-04-04 18:47:48 -04:00
Drew DeVault
f3f3e642bd Implement input-inhibit in sway, swaylock 2018-04-04 18:47:48 -04:00
Drew DeVault
5e61e86883 Actually let's not do that TODO 2018-04-04 18:47:48 -04:00
Drew DeVault
d9287eb53b R E N D E R I N G 2018-04-04 18:47:48 -04:00
Drew DeVault
3f21cd441b Add password buffer, refactor rendering/surfaces 2018-04-04 18:47:48 -04:00
Drew DeVault
1ca6d92c34 Split seat code into its own file 2018-04-04 18:47:48 -04:00
Drew DeVault
26b58a7db8 Set up an XKB context for the keyboard 2018-04-04 18:47:48 -04:00
Drew DeVault
566703675e Grab keyboard off of the seat 2018-04-04 18:47:48 -04:00
Drew DeVault
2d1a44703b Initial swaylock port 2018-04-04 18:47:48 -04:00
Drew DeVault
a2ca567149 Clean up fallthrough issues 2017-08-09 18:34:51 -04:00
Calvin Lee
3c03e851b6 Allow swaylock indicator size to be configurable 2017-07-31 19:49:01 +02:00
Sebastian Noack
235e6b653d Add -DVERSION flag for release version numbers 2017-04-26 15:56:46 +02:00
Drew DeVault
595a19c390 UnGNUify the codebase 2017-03-10 23:41:24 -05:00
Calvin Lee
a2273e2207 Documentation and style fixes for swaylock 2017-02-21 21:17:01 -07:00
Calvin Lee
84335e3cee Feature for #1078: Configurable swaylock colors
Colors are configured through the command line so that swaylock conforms
to the i3lock fork 'github.com/chrjguill/i3lock-color'. Differences from
it are that one letter options '-r' and '-s' are not implimentend because
'-s' is already used by '--scaling' in swaylock.
This commit also fixed whitespace in 'include/swaylock/swaylock.h' and
changed `parse_color` in 'common/util.h' so that it can accept colors
that do not start with a hash. This was done to keep compatability with
the i3lock fork.
2017-02-21 14:12:31 -07:00
Zandr Martin
4930451e32 fix #971 2016-12-27 17:54:50 -06:00
Drew DeVault
434e46b9d7 Clear swaylock properly during re-render
Fixes #999
2016-12-20 15:53:42 -05:00
Vasilij Schneidermann
bc3b7a870c Explicitly set cairo font to avoid wonky fallback
See also https://github.com/i3/i3lock/pull/89
2016-10-05 22:07:54 +02:00
Drew DeVault
dd1eb78931 Add client support for HiDPI
This adds HiDPI support to swaybar, swaybg, and swaylock.
2016-09-05 11:36:48 -04:00
Drew DeVault
5fac02d278 Reorganize includes 2016-09-01 08:18:37 -04:00
Drew DeVault
91b7153dcf Fix warning from unused daemon return value 2016-07-15 08:03:31 -04:00
David Eklov
43c84e68a4 swaylock: Add -f option to detach from the controlling terminal, fixes #725 2016-07-13 08:20:40 -05:00
David Eklov
12ded9a141 Bug fix: Add missing header file, unistd.h
Without unistd.h the following functions getuid, alarm and
close are implicitly declared causing compilation to fail due to
-Werror=implicit-function-declaration
2016-06-26 23:25:56 -05:00
Zandr Martin
6c1182716b make numpad enter key work in swaylock
see issue #647
2016-06-04 13:35:41 -05:00
Zandr Martin
51d7c9bc00 add documentation for client commands 2016-06-04 10:43:23 -05:00
Zandr Martin
7fa862363c add --no-unlock-indicator to swaylock 2016-05-26 10:16:34 -05:00
Zandr Martin
4911e97541 clear swaylock password buffer with esc
for i3lock compatibility
2016-05-26 08:41:22 -05:00
Zandr Martin
d0c8c394ca clear password buffer with ctrl-u in swaylock
also prevent screen redraws on modifier key presses
2016-05-26 08:35:16 -05:00
Kevin Hamacher
480efede66 swaylock: fix double free 2016-04-25 20:24:33 +02:00
Mikkel Oscar Lyderik
a50ca76abe swaylock: Handle possible fail on password realloc 2016-04-10 00:01:05 +02:00
Kevin Hamacher
d86b3496bf Improve swaylock event flushing 2016-04-03 00:50:34 +02:00
Kevin Hamacher
41f22a57cd swaylock: improve graphical feedback 2016-03-31 13:49:59 +02:00
Drew DeVault
f264c89d11 Squash warning about uninitialized variable 2016-03-27 10:01:06 -04:00
Kevin Hamacher
a8d9752726 Add graphical feedback to swaylock (#526) 2016-03-25 15:24:41 +01:00
Nuew
61ee70d26e Replace with in swaylock 2016-03-24 19:55:00 -04:00
Nuew
49bf3ec118 Change 'display' to 'output' in swaylock error messages where necessary 2016-03-24 18:52:57 -04:00
Nuew
8b73c3db29 Change 'display' to 'output' in swaylock docs where necessary 2016-03-24 18:49:58 -04:00
Nuew
92b3963996 Add choice of display to --image.
Additionally
  - Made background colors display when an image is enabled if
a --color is specified.
  - Link CJson to swaylock.
  - Add the --socket option to swaylock.
2016-03-24 18:02:34 -04:00
Julius Michaelis
f9276e440c swaylock: Interpret XKB_KEY_BackSpace as a deletion instead of a normal key. 2016-03-24 19:41:33 +01:00
Mikkel Oscar Lyderik
12c8d40d89 swaylock: Fix crash when unable to connect to wl
Prevent swaylock from crashing when it can't connect to wayland for
whatever reason. i.e. XDG_RUNTIME_DIR not set.

Fix #534
2016-03-23 14:37:56 +01:00
Gökberk Yaltıraklı
f5bb2b8766 swaylock: Grow the password buffer 2016-03-21 22:17:48 +02:00
Mikkel Oscar Lyderik
381df20e24 Correctly exit sway on errors.
Calling `exit` in sway_terminate prevents sway from correctly shutting
down (freeing data, cleanly terminating the ipc server, etc.).

A better way is to exit straight away if the failure occurs before
`wlc_run` and use sway_abort as usual if it occur when wlc is running.
2016-02-26 09:42:21 +01:00
crondog
f62e05982f swaylock: Allow for transparent color values
There is only a slight issue. When using a transparent color the views
are arranged to make room for swaylock which we can now see. I tried removing
the arrange call but that just made it worse by putting in an opaque view on the
workspace and not making the lockoverlay color. Ill raise an issue if
this is not easily solved
2016-01-28 13:44:18 +11:00
Drew DeVault
e592fe0f8c Remove pointer from swaylock surface 2016-01-26 18:38:05 -05:00
Christoph Gysin
76cfde7813 extract cairo_set_source_u32() 2016-01-25 22:44:33 +02:00
Christoph Gysin
a1569545a1 swaylock: support --color 2016-01-25 21:46:26 +02:00
Christoph Gysin
a71baf816d swaylock: extract render_image 2016-01-25 21:18:53 +02:00
Christoph Gysin
133c0cfdbc swaylock: don't memset memory that has been freed
swaylock is randomly crashing because we write to password that has already been
freed in pam_authenticate().
2016-01-25 20:15:00 +02:00
Christoph Gysin
b8f8398ae6 swaylock: fix pam conversation 2016-01-25 20:14:59 +02:00
Christoph Gysin
1fc6e45a85 swaylock: add pam conversation debug output 2016-01-25 20:14:44 +02:00
Christoph Gysin
a17033fdd2 swaylock: remove global variable pam_reply 2016-01-25 19:43:51 +02:00
Christoph Gysin
7b74002576 swaylock: add i3lock compatible options 2016-01-23 16:36:19 +02:00
Christoph Gysin
39655c63eb swaylock: add option parsing 2016-01-23 16:00:14 +02:00
Mikkel Oscar Lyderik
b1fc427c08 Fix whitespace issues. 2016-01-05 23:42:40 +01:00