Commit graph

144 commits

Author SHA1 Message Date
Milkey Mouse 82b0296964 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 9877189ea3 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 c4406c206e fix typo
bahavior -> behavior
2018-12-02 20:48:29 +01:00
Cameron Nemo c6b2ee7291
swaylock: fix build with musl libc
Signed-off-by: Cameron Nemo <camerontnorman@gmail.com>
2018-11-30 23:22:09 -08:00
emersion 3a310f92ab
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 fe32a745ee reordered swaylock manpage 2018-10-27 15:25:10 +02:00
Drew DeVault 41f744c224
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 17bb39cd49 Add multiseat support to swaylock 2018-10-24 22:04:16 +10:00
Ian Fan ebfb1388e2 swaylock: exit on display error 2018-10-23 11:49:33 +01:00
Ian Fan 7fffe0a98c 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 d855837da2 Change initial background mode before arg parse. 2018-10-19 16:38:01 +01:00
Ryan Dwyer e644632198 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 32ba8154b8 Sway clients: Exit gracefully when compositor is unavailable 2018-10-15 21:57:59 +10:00
Ryan Dwyer 6921fdc6d6 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 f98f351a52 swaylock: Don't wait too long for surface damage before verifying 2018-10-15 00:26:27 +10:00
Ryan Dwyer fa11b7f701 swaylock: clear password after 10 seconds 2018-10-15 00:26:27 +10:00
Ryan Dwyer c242712262 swaylock: Remove indicator after 3 seconds 2018-10-15 00:26:27 +10:00
Ryan Dwyer 9c833c661a swaylock: Use common event loop 2018-10-15 00:26:27 +10:00
espkk 42f72f8bb4 swaylock: fix clear_password_buffer 2018-10-14 07:40:33 +03:00
Drew DeVault c89e00a97e 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 b0393ae34b swaylock: Support keyboard and pointer disconnects and reconnects 2018-10-06 09:38:12 +10:00
Arkadiusz Hiler eed0bc3ebd 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 1e70f7b19e 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 c977349120 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 c495164f60 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 6de777a986 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 7885a138af Fix swaylock arguments 2018-07-17 21:50:15 -04:00
Brian Ashworth 7b91712416 Switch to using getopt_long for config flag 2018-07-16 12:17:40 -04:00
Brian Ashworth 14c949c1c7 Remove leftover parens 2018-07-16 12:17:40 -04:00
Brian Ashworth 85584734ce Remove int cast after changing to size_t 2018-07-16 12:17:40 -04:00
Brian Ashworth d375f6af18 Change to size_t in swaylock's get_config_path 2018-07-16 12:17:40 -04:00
Brian Ashworth 296889f3d7 Implement swaylock configuration file parsing 2018-07-16 12:17:40 -04:00
Brian Ashworth 22d152f1fe Change formatting of swaylock usage in the code 2018-07-10 22:09:31 -04:00
Brian Ashworth 936a920a8e Implement swaylock customization flags 2018-07-10 21:29:15 -04:00
emersion 63b4bf5000
Update for swaywm/wlroots#1126 2018-07-09 22:54:30 +01:00
emersion ceb08b6365
swaylock: daemonize after locking 2018-07-07 18:36:49 +01:00
Dominique Martinet b78c29a83f 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 3b842f4eed Detect opaque lockscreen when using a solid color 2018-07-07 00:17:08 +10:00
Ryan Dwyer 58b2c8ed14 Use infinite opaque region in swaylock 2018-07-07 00:03:49 +10:00
Ryan Dwyer 839c3a5500 Use opaque region to determine if frame done should be sent 2018-07-07 00:03:49 +10:00
Bor Grošelj Simić 484042efd8 Fix transparency in background images in swaylock 2018-07-04 12:09:05 +02:00
Bor Grošelj Simić 1d0963737e Fix #1857 2018-07-04 01:53:32 +02:00
Dominique Martinet 2725185aeb swaylock daemonize: fix leak of devnull fd 2018-07-02 08:03:41 +09:00
Dominique Martinet c78ce0770a 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 cc10c7af65
swaylock: implement a proper render loop 2018-05-27 13:39:38 +01:00
emersion 7af172ed0a
Delete old asciidoc man pages 2018-05-25 19:11:43 +01:00
emersion df61bfbb57
swaylock: remove unused field 2018-05-23 22:59:24 +01:00
emersion 32f8ade7ab
swaylock: don't try to render unconfigured surfaces 2018-05-23 22:55:57 +01:00
emersion cd0fca2ebf
Merge branch 'master' into fix-swaylock-hotplugging 2018-05-23 22:54:52 +01:00
Ryan Dwyer 8361233295 Swaylock: Use calloc instead of malloc 2018-05-20 22:54:09 +10:00