Prevents from generating header files that are not used for a specific build as
well as excluding unnecessary object files. The `clean` target automatically
assumes all features being enabled to clean up all potential files.
This patch adds configuration fir switch devices like "lid switches" and "sleep
buttons". They are configured like any other input device and bind to an action.
Allows keyboard configuration on a device basis.
Available options are:
* `rules`
* `model`
* `layout`
* `variant`
* `options`
All `xkb` settings are configured in the `xbk` section. Rules can be given as an
object and an `xkb` file is specified as a string.
Bindings should get configured when devices are attached. Not when the
configuration is loaded. This patch lays the groundwork for more flexible
keyboard configuration.
Introducing `lock` mode. This turns the screen locker into a mode which
adds some more modularity to the code.
Visible views on sheet 0 are also displayed on the lock screen allowing
for a customizable setup without the needs for extra plugins.
An indicator adds feedback for typing and verification.
This adds a default wallpaper to `hikari` and uses default output configuration
to make use of it. The path to the wallpaper is spliced into the default
configuration view `sed` during installation.
Pull ${CFLAGS_EXTRA} and ${LDFLAGS_EXTRA} from the environment, which allows the
user to specify additional CFLAGS and LDFLAGS that will be added to the
respective CFLAGS and LDFLAGS variables built up by the Makefile. (Setting
CFLAGS or LDFLAGS directly on the command line, at least with NetBSD make, would
cause make to ignore all of the appends in the Makefile.)
Add ${CFLAGS_EXTRA} and ${LDFLAGS_EXTRA} to the hikari-unlocker build command,
so those flags apply when building that target (this is important in Void
cross-compilation, because PAM libs and headers will not generally be in
/usr/lib or /usr/include and require specification).
Reorder the command-line arguments when building the hikari and hikari-unlocker
targets. Some compilers, like GCC, do not properly find symbols from libraries
unless the libraries are listed after the source files that reference them.
Libraries should always be listed last.
Add a ${DESTDIR} prefix to all install destinations, empty by default, to allow
installation into a chroot environment.
Drop the INSTALL_GROUP and associated -g flag to the install commands. Setting a
group explicitly is probably not useful, and can either cause breakage or
require manual specification for reasonable behavior. (In Void packaging
environments, for example, packages are built as an unprivileged user and the
default behavior of grabbing the user's primary group is not correct.) Files are
executable or readable by all users anyway and writable only by the owne
This patch reworks how `hikari` gets configured and provides a default
configuration as well as means to incorporate this into the binary.
This deprecated the `ETC_PREFIX` configuration during make and makes it reuse
`PREFIX`.
A default terminal is now specified via the `TERMINAL` environment variable.
This adds layer-shell support to hikari. Outputs now have a usable area instead
of just the view geometry. This is used to prevent views from being placed under
status bars etc. Support for layer shell is optional and can be compiled in via
`WITH_LAYERSHELL=YES`.
Binding actions to the release event for a certain key is not enough for
functionality like "push to talk". The release action might get lost when a user
releases modifiers first.
This patch introduces *begin* and *end* actions. The *begin* action is followed
by the *end* action once we release any key or push more keys.
Due to increased use of features like "push-to-talk" because of pandemic
reasons, people have requested to be able to bind release key events to actions.
This can now be done by prefixing a binding with `^`.
* remove `debug` build target and replace it with DEBUG variable
* add `dist` target for building release packages
* add `doc` target to build documentation
`execute-mode` was always kind of a crutch that aimed to be a simple program
runner. It's functionality is now merged with mark selection. If a mark gets
selected that is not set to any view `hikari` is going to execute a specified
command. It is left to the user if that application is going to take up that
mark when it started. The user needs to configure an `autoconf` settings for
this.
Layout bindings are taking up valuable key bindings and since one can have quite
a lot of them it is better to move them into registers just like we are already
doing with execute registers.