Commit Graph

60 Commits

Author SHA1 Message Date
raichoo 6a7a3664d1 Installation without `suid` for `hikari` is now the new default
`seatd` and similar mechanisms are present on all relevant platforms.
2020-12-10 10:38:09 +00:00
raichoo 9f7e3ffb52 `pkg-config` configuration
Submitted by: Aisha
It's now possible to configure which `pkg-config` binary should be used.
2020-12-09 17:35:39 +00:00
raichoo ea7877788d Add CoC to repository
The CoC is still based on the Geekfeminism Code of Conduct, but now it is self
hosted with the community name adjusted.
2020-08-21 13:23:53 +00:00
raichoo 82f5829893 Clean up Makefile
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.
2020-07-30 16:35:26 +00:00
raichoo 8d62b18dec Add `WITH_ALL` build option
Selecting all the options manually can be a bit tedious for packagers and
testers. `WITH_ALL` just turns on all the features.
2020-07-30 16:02:25 +00:00
Andri Yngvason 6ec8e14592 add virtual keyboard 2020-07-21 18:58:49 +00:00
raichoo 4f013c3cbd remove unused `glib` dependency 2020-07-08 13:29:23 +00:00
raichoo eb0841caee add switch configuration
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.
2020-06-30 17:05:16 +00:00
raichoo 46ae0e8929 add `keyboards` configuration section to `inputs`
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.
2020-06-26 13:54:30 +00:00
raichoo 8ca5233f55 refactor binding configuration code
Bindings should get configured when devices are attached. Not when the
configuration is loaded. This patch lays the groundwork for more flexible
keyboard configuration.
2020-06-23 14:23:15 +00:00
raichoo 09037ab936 rename `view_autconf` to `view_config`
Unifies naming with other configuration objects.
2020-06-20 14:20:40 +00:00
raichoo d5547a07bc add `hikari_renderer`
Remove `hikari_render_data` in favor of `hikari_renderer`.
2020-06-18 22:00:45 +00:00
raichoo 164a93c3cb factor out rendering code
Move all rendering code to one compilation unit to make the inliner happy. This
also unclutters the output code.
2020-06-18 14:46:57 +00:00
raichoo 515499e8da add lock mode
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.
2020-06-09 15:37:41 +00:00
raichoo f9204bbf5b streamline default `PREFIX` and related operations
We should deal better with leading slashes during compilation.
2020-06-09 09:22:36 +00:00
raichoo 79ca424c86 remove `hikari.desktop` on `uninstall` 2020-06-09 09:22:08 +00:00
raichoo 2d8568eadf add hikari.desktop session file to distribution tarball 2020-05-25 08:54:32 +00:00
timothee.floure 062a5fb769 Add wayland-session desktop file for use by display managers 2020-05-24 08:13:02 +00:00
raichoo 91dcf7a4b6 add `WITHOUT_SUID` install option
Some systems to not require SUID to be set for the `hikari` binary.
2020-05-17 09:31:44 +00:00
raichoo 92798b74e1 add default wallpaper
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.
2020-05-16 07:56:29 +00:00
raichoo 2666869608 remove excess `/` from PREFIX default path
Otherwise paths are going to start with `//` in case of an empty `DESTDIR`.
2020-05-16 07:55:57 +00:00
raichoo 28b39d629f add CHANGELOG.md to dist tarball 2020-05-14 15:39:09 +00:00
raichoo 776d1b021f Makefile changes to support more general builds
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
2020-05-06 14:38:26 +00:00
raichoo f2ab7f7e9e factor out position configuration
Views and outputs can be configured with an explicit position. This can be
generalized into a single struct which streamlines the code.
2020-05-05 15:01:57 +00:00
raichoo f58b55aa68 reintroduce ETC_PREFIX for Linux builds 2020-05-02 18:52:21 +00:00
raichoo 401b900323 refactor configuration infrastructure
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.
2020-05-02 14:34:45 +00:00
raichoo 2091de7625 refactor cursor handling
Cursor handling is moved into its own module and normal mode. This adds to
readability and removes the need for a couple of checks.
2020-04-30 12:35:18 +00:00
raichoo 5949a550d5 initial drag and drop support
This allows drag and drop support inside of a view. This does not work across
views yet.
2020-04-27 16:21:45 +00:00
raichoo 830c58ff68 add support for xdg toplevel decorations
The lack of this caused applications like `alacritty` to segfault on startup.
2020-04-06 20:56:35 +00:00
raichoo 658906513c add layer-shell support
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`.
2020-04-06 12:19:30 +00:00
raichoo 25f1096764 remove tiling mode
This has been dead code for quite some time.
2020-03-30 18:22:22 +00:00
raichoo eade900a25 deprecate release bindings for action begin/end
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.
2020-03-22 14:27:56 +00:00
raichoo e1c4deed30 add key release event configuration
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 `^`.
2020-03-18 08:58:19 +00:00
raichoo 881be78523 more example file to hikari folder
This is how the files should be installed on the system, so let us reflect that
in our directory structure as well.
2020-03-14 13:46:17 +00:00
raichoo d7d656242b turn keyboard grab mode into input grab mode
This mode is now capable of redirecting all input to its view meaning keyboard
and mouse events instead of only keyboard events.
2020-03-12 15:32:10 +00:00
raichoo 099db7cc38 add command line flags
* -h for displaying the help message
* -v for version
2020-03-11 12:58:37 +00:00
raichoo db29dc5f18 clean manpage before creating a tarball
This way we can ensure that the manpage is fresh.
2020-03-10 14:15:52 +00:00
raichoo 0b0c3ae2be adjust `pam.d` paths for `dist` target 2020-03-10 14:03:56 +00:00
raichoo cd0e0c46ee use program expansion in Makefile 2020-03-10 13:44:57 +00:00
raichoo 46913a069b automate install and uninstall in `Makefile` 2020-03-10 13:34:14 +00:00
raichoo 4add59560f simplify man page title upate
This works via setting the title as a command line argument to pandoc and does
not require `sed` hackery.
2020-03-09 18:21:12 +00:00
raichoo 3008a9ba80 add compile time option for adding gammacontrol
This is needed to make tools like `redshift` work. To enable this compile with
`WITH_GAMMACONTROL=YES`.
2020-03-07 16:34:27 +00:00
raichoo 914bb9db33 add `screencopy` as an option
You can compile with `hikari` with support for the `wlroots` screencopy protocol
by compiling it with `WITH_SCREENCOPY=YES`.
2020-03-07 15:50:24 +00:00
raichoo bdf90506c3 rename example_hikari.conf to hikari.conf 2020-03-06 10:55:49 +00:00
raichoo 532f3eeeb8 package up pam.d files into dist tarball 2020-03-06 08:42:36 +00:00
raichoo b75cf3304c ignore error on cleaning manpage from tarball dist 2020-03-06 08:42:08 +00:00
raichoo b6ce382b82 clean up Makefile
* remove `debug` build target and replace it with DEBUG variable
* add `dist` target for building release packages
* add `doc` target to build documentation
2020-03-05 16:55:27 +00:00
raichoo 6cbdaacf27 add manpage 2020-03-04 19:32:20 +00:00
raichoo 59fe0b2249 merge execute-mode and mark-select
`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.
2020-03-02 14:53:43 +00:00
raichoo 9657719da3 add layout select mode
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.
2020-02-24 10:07:20 +00:00