Commit Graph

38 Commits

Author SHA1 Message Date
raichoo 847640dc31 add `public` flag
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.
2020-06-09 15:40:18 +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 97a4089e81 reduce code running with privileges
We can reduce the amount of code running with privileges to the few calls that
are needed to initialize the `wlroots` backend. These calls are now part of
`hikari_server_prepare_privileged`. After this everything is running with the
users privileges again.
2020-05-17 12:16:48 +00:00
raichoo b465a1dfa6 specialize server migrate function to `focus_view`
This function assumes that the view we are migrating is the focus view anyway,
so passing something else would cause an error.
2020-05-16 07:01:27 +00:00
raichoo b25dbc4a2d make workspace cycling attempt to focus last `focus_view`
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.
2020-05-16 07:00:37 +00:00
raichoo ca37bb65c0 rework view order
This patch reworks how views are ordered. A new ordering is introduced for all
views present on all visible workspaces. This makes cycling views with multiple
workspaces less confusing because the ordering is server-wide and not just
workspace-wide. Also showing views now calls the `raise_view` function to bring
the view to the front of all relevant lists and not just the workspace.
2020-05-14 17:52:43 +00:00
raichoo db46efcc61 add `workspace-cycle-[next|prev]` actions
These actions allow one to cycle through all existing workspaces.
2020-05-12 15:16:19 +00:00
raichoo 35f88853bb centralize view migration code
This code has been duplicated 3 times and is now moved to a central place.
2020-05-12 13:21:26 +00:00
raichoo a5da0ec001 move migration for keyboard actions
This patch allows move-migration via move and resize actions. The top left
corner specifies the output the view migrates to.
2020-05-11 15:25:11 +00:00
raichoo 50237c0a34 remove unused function 2020-05-06 15:55:54 +00:00
raichoo 6458dec842 add `workspace-clear` action 2020-05-05 19:21:25 +00:00
raichoo fa3e2479a1 add `workspace-show-all` action 2020-05-05 19:16:22 +00:00
raichoo 29e43bb555 add `workspace-show-invisible` action 2020-05-05 19:02:18 +00:00
raichoo d9e5072e90 add `workspace-show-group` action 2020-05-05 19:00:06 +00:00
raichoo 7a02ab6188 add `sheet-show-group` action 2020-05-05 18:21:05 +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 05c7294d43 add initial client side cursor setting
This allows clients to set the cursor surface. There is still a bug lurking in
`wlroots` that might cause some unpleasant screen flickering which is triggered
by this patch. To prevent this from happening one can set `WLR_DRM_NO_ATOMIC` to
`1` in the environment before startup.
2020-04-30 10:41:30 +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 5e3212adeb refactor damage handling
This patch reworks entirely how `hikari` marks areas as damaged. Instead of
damaging all views during indication just the views that actually change
indication get damaged.
2020-04-25 10:33:12 +00:00
raichoo a08780100e add symetric resize operations
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
2020-04-12 16:46:24 +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 4a20e2f697 add step configuration
Move and resize distance should be configurable.
2020-03-31 09:11:50 +00:00
raichoo b230b375cf add append/prepend layout operations
The operations allow for new views to be attached to an existing layout. The
operation behaves just like setting layout but without changing layout order.
2020-03-31 06:52: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 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 da1d3dea6e add command line flag for autostart
The autostart executable can now be specified via `-a` on startup.
2020-03-11 13:47:23 +00:00
raichoo 36f9f6a0e4 add command line option to specify configuration
Configuration files can now be specified on startup using the `-c` option.
2020-03-11 13:07:00 +00:00
raichoo 8fa65949dd rename iconified to invisible
Iconified state has always been a misnomer. The view is not iconified at all,
there is no icon laying around it is just invisible when a sheet is shown.
2020-03-10 09:13:35 +00:00
raichoo 29ef1066b9 streamline cycling
Since layout mode the default bindings for layout cycling have been bound to
`L+n` and `L+p` by default. Cycling through views can be done with `LS+n` and
`LS+p.` This leads to muscle memory issues when going to the "previous" view
because `hikari` interprets the next view as the one going down the stack and
the previous one as going up the stack. This is counterintuitive because going
back to the previous view requires the user to issue `LS+n`. Therefore we just
switch the meaning for next and previous around for everything by layout
cycling.

Also cycling through sheet views only can be very disorienting with borrowed
views on the workspace. Therefore we replace sheet cycling with cycling though
all the views on the workspace.
2020-03-03 10:17:44 +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 48f5396ae3 add mark actions
Mark actions can now also be bound to a keybinding. That way one does not need
to enter `mark-select` or `mark-switch-select` mode and marks can be selected
just by a issuing a keybinding. The actions are called `mark-show-a` to `z` and
`mark-switch-to-a` to `z`.
2020-03-02 10:42:27 +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
raichoo 849769857b add sheet assign mode
Since it's now possible to move views between sheets this adds a mode where one
can manually select the target sheet. On entering the mode a sheet is selected
by pressing the number of the target sheet. Tab is used to cycle between target
workspaces.
2020-02-21 18:29:48 +00:00
andy 31ed86abd7 add action to change VTs 2020-02-17 15:10:47 +00:00
raichoo a86fe09d6a reload output configuration on configuration reload 2020-02-14 21:20:35 +00:00
raichoo 9c90dde976 make configuration reloadable
This patch introduces a new action called `reload`.
2020-02-14 21:20:35 +00:00
raichoo 9e81a0fa92 Let there be light! 2020-02-05 10:02:33 +00:00