Instead of using "NULL, NULL, NULL, " in every macro, we now provide a
*_FULL variant which allows setting these. All other macros simply set
these to NULL by default.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
We need to call afterchecks after any parsing we do. To signal that there
are no extra-arguments, we pass argv==NULL.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
We allow options to specify "aftercheck" callbacks but do not call them
during a copy. Therefore, we need a way to copy side-effects. As we cannot
do that generically, we now allow each option to specify such a callback.
We use it for the "all_seats" and "argv" parameters in kmscon.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
We allow users to specify grabs on the command-line or in config-options.
We sometimes want multiple grabs to do the same. Therefore, this changes
the grab-parser and handlers to allow this.
Furthermore, this adds support for keysyms that are assembled of multiple
syms. This isn't needed by any keymap, yet, but might be used in the
future.
Last but not least, you can also specify modifiers only now. This might be
used by subsystems to use the default keysyms but let the user specify
what modifiers should be used.
However, be careful when specifying modifiers-only for normal grabs as
this means the grab is executed everytime the modifier is reported with
_any_ key.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Even though I really like the high repeat-rates, it might not be the best
default option. Hence, change it to some sane default.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
You can now use --xkb-repeat-rate/delay to configure the Xkb key-repeat
settings instead of using the default 25/250.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This implements copy/paste support for the terminal widgets via the
recently introduced helpers.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This adds a --grab-fullscreen parameter which configures the key that
toggles fullscreen. This is handled in the theme widget as we consider it
the main window-handler.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This copies the grabs from kmscon over to wlterm. It is now possible to
scroll up and down in the scrollback-buffer if you manually increase the
buffer size.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This forwards the PTY-HUP event to the caller so we can close the terminal
window when the client application exits.
Reported-by: Alexander Preisinger
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Current default size is pretty small and there are still some resizing
bugs so increase it to have a working terminal.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
We need the text-font modules to render fonts in wlterm. Therefore, load
all the font modules during startup before initializing the application.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Sorry for the big commit, but I was working on the wlterm application and
then thought I can rework the whole configure-logic again. This mainly
renames all build-defines to BUILD_DEFINE_* and BUILD_HAVE_* and allows
specifying which applications to build via --enable-kmscon/--enable-wlterm
and similar.
wlterm is a new application which is a native wayland client with no
external dependencies. It serves several purposes:
* It uses TSM (not yet implemented, but will come soon) to create a
console independent from kmscon. This shows how TSM can easily be used
to create independent terminal emulators.
* It is a native wayland application (probably the first independent
wayland app so far?) and is used to test how well the wayland API
works. As wayland is still under heavy development, we need more
application-writers who report back whether the wayland-API makes
sense to them and whether it works correctly.
* A proper terminal-emulator for wayland! There is currently no proper
emulator so we really need something that we can work with.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>