Shutting down `hikari` now sends a `quit` action to each active view. And waits
for all of them to quit before exiting. Sending a quit again during shutdown
will terminate `hikari` right away.
`inherit` can be used to configure child view properties, strings are used to
indicate copied properties and objects can be used to overwrite them. Not
stating a property indicates that the default value should be used.
This patch adds layout registers `0` to `9` which correspond to default layout.
These are currently only useful when restacking a sheet that does not have a
layout applied. If this is the case the default layout will be used to arrange
the current sheet.
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.
Public views are used to populate the lock screen to display additional
information, they should never display sensitive information.
Even hidden are displayed. This uses a `force` flag that overrides visibility
that is set in mode enter and reset on mode exit.
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.
This patch enables to change the default configuration value for outputs and
pointer by defining a configuration for "*". Values defined in this object
override unconfigured values.
This patch tries to focus the last `focus_view` during cycling. If that view is
no longer visible the first sheet view gets focused. This patch also makes
`hikari` focus the `focus_view` of a workspace when entering it with the cursor.
`focus_view` is no longer set to `NULL` when leaving a workspace.
Focusing the first sheet view excludes borrowed views. The idea is that views on
sheet 0 should not become a fallback when the workspace is otherwise empty.
Views on that sheet are supposed to take a background role.
This patch moves all UI related configuration options from the top level into
their own section to group them up. This constitutes a breaking change for the
end user because it invalidates previous configurations and requires users to
adjust their configuration manually.
This patch introduces more configuration options for pointer devices:
* adds `tap` option
* adds `tap-drag` option
* adds `tap-drag-lock` option
* adds `natural-scrolling` option
* adds `no-scroll` to `scroll-method`
This also changes the way unconfigured options are handled. `hikari` is no
longer going to overwrite unconfigured values with its own default but rather
keeps them unchanged.
If this does not happen the focus can change to a different view during this
action. This is disorienting. To prevent this we raise the view to the top at
the beginning of the action.
This patch allows to position views relative to the output by stating one of the
following values as position:
* `bottom-left`
* `bottom-middle`
* `bottom-right`
* `center`
* `center-left`
* `center-right`
* `top-left`
* `top-middle`
* `top-right`
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.
Resizing should be possible in every direction, this is especially useful for
views that have been tiled.
This patch adds the following action to complete the set of resize operations.
* view-increase-size-up
* view-decrease-size-down
* view-increase-size-left
* view-decrease-size-right