Commit Graph

43 Commits

Author SHA1 Message Date
f0bbc9d982 Show auth is happening after clicking Unlock
Changes the auth failed label into an auth status label, and prints a
dot once every half second while authenticating.

Also reduces the post-auth-failed pause to 1 second; 2 seconds is longer
than it seems.
2022-05-30 17:27:43 -07:00
50a5e94307 Some low-effort visibility hygiene 2022-05-27 18:38:30 -07:00
8657bc249c Stop threading the xcb connection everywhere
Easier to just store a reference to it in the structs.
2022-05-27 18:35:38 -07:00
761b906fb7 Split Monitor detection/creation 2022-05-27 18:16:02 -07:00
e89b6cb604 Make monitor resource freeing better 2022-05-27 18:11:20 -07:00
a516a25a9f Use regular X11 rather than XFIXES to hide cursor
The semantics of the XFIXES cursor hide deal are annoying and make
things harder.
2022-05-27 18:05:55 -07:00
344907f55a Avoid unmatched ShowCursor/HideCursor requests 2022-05-24 20:32:15 -07:00
63a176c26e Major refactor of locker
Moves the meat of the screensaver into its own file, and separates out
the subservice stuff.
2022-05-24 19:52:21 -07:00
611e3b8dd0 Use constants in settings rather than hard-coded strings 2022-05-23 20:33:14 -07:00
45b5b7fc96 Fix inconsistency in the example config 2022-05-23 20:32:12 -07:00
8eb8dfac2e Refactor a bit and add backlight brightness keys handling
This will only work if the video driver supports the xrandr backlight
property.  It's possible only Intel does this...
2022-05-23 20:27:59 -07:00
6e5dfabcfd Add TODO file 2022-05-23 15:24:14 -07:00
16f88fca5a Add readme 2022-05-22 13:04:13 -07:00
c3166f0b9c Don't forward enter or escape to unlock window on first event
If the user presses enter or escape in order to get the unlock dialog to
show in the first place, forwarding that event to the dialog will only
cause it to close immediately.

Also took the opportunity to clean up the dependencies where I have my
own patches.  I'm now using the cargo 'patch' section so that the
dependencies specified in the individual Cargo.toml files are clean.
2022-05-17 19:56:34 -07:00
9e266894df Fix restart and exit commands not returning replies 2022-05-15 22:04:13 -07:00
dda1a53856 Make the new login button stuff more automatic
By default it'll look at your environment to try to figure out which
display manager is used in order to start a new session.  We first try
the org.freedesktop.DisplayManager dbus interface, and if that fails,
inspect XDG_SESSION_DESKTOP to try to figure out which display manager
is running.

The user can also still specify the correct display manager, or a custom
command.
2022-05-15 20:50:45 -07:00
99ffa88657 Add "auth failed" message to unlock dialog 2022-05-14 18:19:11 -07:00
8394d45d1a Have remote commands return a success/failure message 2022-05-14 17:48:34 -07:00
aafe026092 Make debian package building work
I gave up on getting it to build on bullseye, as its cargo/rustc is too
old for the 2021 edition.  Building newer deb packages of rust is
apparently a difficult, manual process.  I tried installing rustup and
pulling the latest compiler, but that failed with strange errors that I
am tired of debugging.
2022-05-14 00:17:50 -07:00
b63de1d416 Fix another typo in makefile 2022-05-14 00:17:50 -07:00
f6c1020535 Remove the need for rust nightly
My pidfd implmentation is simple enough, and Option.contains() is not
worth requiring nightly.
2022-05-14 00:17:50 -07:00
7e18b87707 Fix typo in DESTDIR in makefile 2022-05-14 00:17:50 -07:00
992f32330c Hide mouse pointer when blanked 2022-05-14 00:17:50 -07:00
cab7d4bfe5 Do xrandr version check on init 2022-05-14 00:17:50 -07:00
64dc809295 Properly init xfixes extension 2022-05-14 00:17:50 -07:00
e588988254 Fix pointer-to-monitor location code 2022-05-14 00:17:50 -07:00
df81c14871 Add debian packaging files
This doesn't quite work, since the debuild stuff refuses to see the
rustup-installed cargo/rustc, which is required for our build.
2022-05-14 00:17:50 -07:00
712467f433 Improve makefile, add autogenerated manpages 2022-05-14 00:17:50 -07:00
050bf5cbac Support more versions of glib and gtk 2022-05-14 00:17:50 -07:00
858cd2750c Support DESTDIR in makefile 2022-05-14 00:17:50 -07:00
23fef4d9e3 Support stable rust
This removes use of Option.contains(), and provides a fallback pidfd
implementation for stable.
2022-05-14 00:17:50 -07:00
04650b3c53 Add license 2022-05-14 00:17:50 -07:00
6420278f71 Add simple (if ugly) settings dialog 2022-05-05 01:14:53 -07:00
fcb997bfb3 Move config parsing to util crate 2022-05-04 16:15:39 -07:00
7ef720467f Don't forget to install bscreensaver-command 2022-05-04 01:29:13 -07:00
9a7fa897ef Remove bscreensaver-dialog-iced
I never even started this; main.rs was empty.
2022-05-04 01:04:50 -07:00
74e81e6581 Remove bscreensaver-dialog-gtk4
I don't think it's even possible to use gtk4 to build a dialog, as gtk4
has dropped GtkPlug/GtkSocket and doesn't support embedding anymore.
They also don't seem to give access to enough internals so I can build
it myself.
2022-05-04 01:03:26 -07:00
c779bca1b0 Remove unused bscreensaver-auth crate 2022-05-04 01:02:03 -07:00
7de9a2cdb8 Tweak makefile 2022-05-04 00:51:14 -07:00
2ae04ff91a Add example config 2022-05-04 00:49:24 -07:00
92504d279a Add 'New Login' button to unlock dialog 2022-05-04 00:48:53 -07:00
832b381421 Implement dialog timeout & timeout bar 2022-05-03 23:47:06 -07:00
2e86445c3d Initial import. Most things seem working.
This includes an abortive attempt to do a gtk4 dialog (which I don't
think is possible, as gtk4 doesn't allow embedding toplevels anymore),
and an iced dialog, which I just never started writing.
2022-05-03 17:05:06 -07:00