Ray Strode [Thu, 29 May 2008 04:16:08 +0000 (00:16 -0400)]
Set up event loop exit handler in plugins on show success
Previously we were setting up the exit handler at the top
of the show vtable function. This meant having to remove
the exit handler if the show fails. It's much easier to
not set up the handler until after we know we're going to
succeed.
Since the individual plugins are aware of the window object
anyway, they can register their own on_backspace et al handlers
without going through the ply_splash_plugin_t layer.
Ray Strode [Wed, 28 May 2008 22:02:23 +0000 (18:02 -0400)]
Update spec file to be more current
Package the individual plugins as subpackages and
get the file lists up to date. Also, drop
plymouth-update-initrd %post call since it's not
meant to be used in packages
Ray Strode [Wed, 28 May 2008 21:16:57 +0000 (17:16 -0400)]
Add ctrl-u and ctrl-w to erase password line
Right now we do it in the cheesiest way possible, by
calling the backspace function over and over again on
behalf of the user. It might make more sense to export
another window callback specifically for erase line. It
probably doesn't make sense to do that until we fix the
TODO item:
- have plugins hook into line editing through window
directly, instead of via vtable functions
Ray Strode [Wed, 28 May 2008 20:38:10 +0000 (16:38 -0400)]
Use more descriptive format for control code #defines
The previous format was just the ascii value directly
in octal. I'm getting sick of typing 'man ascii' to look
it up though. The new format is just, e.g.,
('\100' ^ 'U')
which not only means I can add new entries without looking
them up, but also has the added advantage that it looks
sort of similiar to, e.g., ^U, which is a common notation
for respresenting control characters.
Ray Strode [Wed, 28 May 2008 17:50:49 +0000 (13:50 -0400)]
Add the ability to toggle off graphics mode with ctrl-T
When debugging it's useful to be able to force text mode so
text messages become visible on screen. ctrl-t and ctrl-v
combined make it a lot easier to see what's going on.
Ray Strode [Wed, 28 May 2008 14:50:38 +0000 (10:50 -0400)]
Read /proc/cmdline and enable debugging if plymouth:debug is there
Currently we toggle verbose messges if the user presses ctrl-v.
That's fine, but doesn't help to debug problems that happen before
a splash screen is shown. This provides a mechanism to enable messages
earlier
Ray Strode [Tue, 27 May 2008 21:52:27 +0000 (17:52 -0400)]
Compute correct offset when copying from shadow buffer to frame buffer
When I added commit c12164c1622a2209fe07555e682cc479c6854e7e
to copy an entire row at a time to the framebuffer, I miscalculated the
offset to copy from/to. Their may be uninitialized data at the
beginning and end of the temporary row buffer, if only part of the row
is getting copied. We need to make sure we jump passed that junk in
memory and copy just the part that got filled in.
Ray Strode [Tue, 27 May 2008 18:28:48 +0000 (14:28 -0400)]
Add new array type to make managing arrays easier
This is just a thin wrapper around the buffer object,
that keeps the data in terms of "elements" instead of
bytes, and always null terminates the result.
Ray Strode [Tue, 27 May 2008 18:24:58 +0000 (14:24 -0400)]
Add new ply_buffer_steal_bytes method
This function disowns the bytes in the buffer and returns
them to the caller. It's useful for freeing the buffer, but
keeping the bytes around without doing a copy.
Ray Strode [Sat, 24 May 2008 05:39:27 +0000 (01:39 -0400)]
Copy and modify fedora-fade-in to new spinfinity plugin
The idea is to make a plugin that matches mockups done by
Mike Langlie. The mockups feature a throbber that spins
in the shape of an infinity sign. This is just a placeholder.
Most of the mockup isn't implemented yet.
Ray Strode [Fri, 23 May 2008 19:39:47 +0000 (15:39 -0400)]
Update TODO
Add:
- Add limited text support
- Make --ask-for-password take a prompt message
- consider making details plugin have stdin hooked
up to the pty instead of tty so input works
- consider making details plugin go back to pretty
plugin if user presses escape
Ray Strode [Fri, 23 May 2008 05:00:28 +0000 (01:00 -0400)]
Move keyboard handling to window so we can do line editing
The logic for line editing is a little complicated, so it's
best not to duplicate it across all the plugins. Now we
manage it all from the window. The plugins now access the
various editing events via there vtable, but that's an
extra layer of indirection that doesn't matter given that
we pass the window to the plugins anyway. We should drop
that and just have the plugins register for edit events
directly.
Ray Strode [Thu, 22 May 2008 21:01:09 +0000 (17:01 -0400)]
Add new ply_buffer_remove_bytes_at_end
This function is like ply_buffer_remove_bytes, but it
truncates away the end of the buffer instead of shifting
the contents over the start of the buffer.
Ray Strode [Thu, 22 May 2008 02:57:40 +0000 (22:57 -0400)]
Add second cut at password support
This version works even in raw mode, by buffering key presses
passed from the window object, and replying to the client
after the user presses enter. There are a lot of layers of
function pointers getting passed around, so it may make
sense to introduce an opaque type for holding the password
and triggering the reply.
Ray Strode [Wed, 21 May 2008 04:20:28 +0000 (00:20 -0400)]
Only allow root clients to talk to daemon
We don't want normal users on the system to be able to
manipulate plymouth. This will be especially important
later when we run plymouth for post-bootup reasons. This
patch checks peer credentials and sends back a NAK to
clients who aren't root.
Ray Strode [Wed, 21 May 2008 02:42:15 +0000 (22:42 -0400)]
Update TODO
Add:
- Drop all the make ram disk and copy code. That was just to make bolting things
on easier. We can integrate now.
- check peer credentials on client to make sure it's not running unprivileged
Ray Strode [Wed, 21 May 2008 02:37:01 +0000 (22:37 -0400)]
Don't show splash by default, instead require client to request it
plymouthd gets started before the drm modesetting modules are loaded,
so we can't try to access the frame buffer right away. The plan is to
load the drm modules as soon as possible in the initrd and then tell
plymouthd to put up the splash ASAP.
Ray Strode [Tue, 20 May 2008 19:13:48 +0000 (15:13 -0400)]
Update TODO
Add:
- Don't start boot-splash automatically, rather wait until given command from client
- Allow plymouth to be started from nash instead of the other way around
Remove:
- add the ability to watch for timeouts in the event loop
Ray Strode [Mon, 19 May 2008 21:46:10 +0000 (17:46 -0400)]
Create window at layer above boot splash and reuse when changing boot splashes
This requires keyboard handling to be changed, so that each
plugin can hook in their own keyboard hooks when switching
between them, and also handling escape completely above the boot
splash plugin level.
Ray Strode [Sun, 18 May 2008 23:09:16 +0000 (19:09 -0400)]
Set active terminal into non-canonical mode
We want to be able to gain access to key presses immediately,
so we can pass them on to the splash plugin to display to the
user in some form. The "pass to the splash plugin" part isn't
implemented yet.
Ray Strode [Wed, 14 May 2008 12:59:33 +0000 (08:59 -0400)]
fix some confusion with star placement in fedora-fade-in plugin
We did logo_width - frame_buffer_width instead of the other way
around, so we ended up with a negative width