Commit Graph

194 Commits

Author SHA1 Message Date
Milkey Mouse
51838df916 swaylock: Submit password on Ctrl-D
Ctrl-D functions as EOF in most cases on the terminal. login(1) & many other
programs check the password on EOF, same as Enter. To make behavior consistent,
have swaylock submit the password on Ctrl-D.

This commit moves the handling for Enter into its own static function, which is
now also called on Ctrl-D.
2018-12-23 12:08:03 +01:00
Milkey Mouse
4363430d8d swaylock: Clear password buffer on Ctrl-C
I've got in the habit of using Ctrl-C with login(1) to restart password entry.
If Sway does the same thing I don't have to retrain my login muscle memory ;)
2018-12-23 12:08:03 +01:00
bschacht
84426bbde6 fix typo
bahavior -> behavior
2018-12-02 20:48:29 +01: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
madblobfish
b0b20a8e1f reordered swaylock manpage 2018-10-27 15:25:10 +02: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
a59fa9d1b6 Remove timerfd from loop implementation
timerfd doesn't work on the BSDs, so this replaces it with a timespec
for the expiry and uses a poll timeout to check the timers when needed.
2018-10-15 00:26:27 +10:00
Ryan Dwyer
e63e0e4ec4 swaylock: Don't wait too long for surface damage before verifying 2018-10-15 00:26:27 +10:00
Ryan Dwyer
076827d4cb swaylock: clear password after 10 seconds 2018-10-15 00:26:27 +10:00
Ryan Dwyer
f27204e5a1 swaylock: Remove indicator after 3 seconds 2018-10-15 00:26:27 +10:00
Ryan Dwyer
1d0579aca4 swaylock: Use common event loop 2018-10-15 00:26:27 +10:00
espkk
7931487347 swaylock: fix clear_password_buffer 2018-10-14 07:40:33 +03:00
Drew DeVault
c7776e7804 Fix swaylock w/shadow on glibc, improve security
Today I learned that GNU flaunts the POSIX standard in yet another
creative way. Additionally, this adds some security improvements,
namely:

- Zeroing out password buffers in the privileged child process
- setuid/setgid after reading /etc/shadow
2018-10-06 12:20:12 -04:00
Ryan Dwyer
ec35e9943e swaylock: Support keyboard and pointer disconnects and reconnects 2018-10-06 09:38:12 +10:00
Arkadiusz Hiler
e184e5987f Add support for installing binaries with DT_RPATH
It's better to use DT_RPATH dynamic section of the elf binary to store
the paths of libraries to load instead of overwriting LD_LIBRARY_PATH
for the whole environment, causing surprises. This solution is much more
transparent and perfectly suitable for running contained installations
of wayland/wlroots/sway.

The code unsetting the LD_LIBRARY_PATH/LD_PRELOAD was also deleted as
it's a placebo security at best - we should trust the execution path
that leads us to running sway, and it's way too late to care about those
variables since we already started executing our compositor, thus we
would be compromised anyway.
2018-09-30 15:37:01 +03: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
sghctoma
2376a9c5d7 Add FreeBSD-specific PAM configuration
The "login" PAM configuration means somathing entirely different on
FreeBSD than on Linux: if you try to authenticate as the calling user,
it OKs the request without prompting for password. The "passwd" config
implements the desired functionality, therefore it should be used by
swaylock.
2018-08-30 09:58:57 +02: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
Dominique Martinet
01d2c492fd swaylock: fix the displaying of "verified"
Displaying verified after damaging state needs more than one roundtrip,
so keep looping until surfaces are not dirty anymore
2018-07-07 21:02:28 +09: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
Bor Grošelj Simić
0978661a1b Fix transparency in background images in swaylock 2018-07-04 12:09:05 +02:00
Bor Grošelj Simić
175c21d36d Fix #1857 2018-07-04 01:53:32 +02:00
Dominique Martinet
8406c501b9 swaylock daemonize: fix leak of devnull fd 2018-07-02 08:03:41 +09:00
Dominique Martinet
d68ddd1532 swaylock: implement ^U to clear buffer
The whole state->xcb.modifiers thing didn't work at all (always 0)
The xkb doc says "[xkb_state_serialize_mods] should not be used in
regular clients; please use the xkb_state_mod_*_is_active API instead"
so here it is
2018-06-08 22:42:15 +09:00
emersion
515f03c94c swaylock: implement a proper render loop 2018-05-27 13:39:38 +01:00
emersion
e0922094a6 Delete old asciidoc man pages 2018-05-25 19:11:43 +01:00
emersion
cc12bc3723 swaylock: remove unused field 2018-05-23 22:59:24 +01:00
emersion
8eca011fa7 swaylock: don't try to render unconfigured surfaces 2018-05-23 22:55:57 +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