| Age | Commit message (Collapse) | Author |
|
|
|
These are a bit jarring without an animation.
|
|
Lets borders, gaps, and everything else stay pixel-perfect even with
fractional scale. Allows setting fractional border widths, gaps,
struts.
See the new wiki .md for more details.
|
|
|
|
* add focus-column-right-or-first
* add focus-column-left-or-last
|
|
column to the left or right if there is no window above or below
|
|
|
|
This is an implementation of named, pre-declared workspaces. With this
implementation, workspaces can be declared in the configuration file by
name:
```
workspace "name" {
open-on-output "winit"
}
```
The `open-on-output` property is optional, and can be skipped, in which
case the workspace will open on the primary output.
All actions that were able to target a workspace by index can now target
them by either an index, or a name. In case of the command line, where
we do not have types available, this means that workspace names that
also pass as `u8` cannot be switched to by name, only by index.
Unlike dynamic workspaces, named workspaces do not close when they are
empty, they remain static. Like dynamic workspaces, named workspaces are
bound to a particular output. Switching to a named workspace, or moving
a window or column to one will also switch to, or move the thing in
question to the output of the workspace.
When reloading the configuration, newly added named workspaces will be
created, and removed ones will lose their name. If any such orphaned
workspace was empty, they will be removed. If they weren't, they'll
remain as a dynamic workspace, without a name. Re-declaring a workspace
with the same name later will create a new one.
Additionally, this also implements a `open-on-workspace "<name>"` window
rule. Matching windows will open on the given workspace (or the current
one, if the named workspace does not exist).
Signed-off-by: Gergely Nagy <niri@gergo.csillger.hu>
|
|
|
|
|
|
|
|
advance_animations() is called from places like input, whereas
update_render_elements() is strictly for rendering.
|
|
Visible when consuming left/right when always-centered and differing
horizontal view anim.
|
|
|
|
|
|
|
|
|
|
|
|
* implement workspace back and forth
* Make our own ID counter instead of SerialCounter, use a newtype
* Rename FocusWorkspaceBackAndForth to FocusWorkspacePrevious
* Add focus-workspace-previous to tests
* Don't special case in switch_workspace_previous
* Minor clean up
* Add switch_workspace_auto_back_and_forth to tests
* Skip animation on switch_workspace_previous
* Preserve previous_workspace_id on workspace movement
* Make Workspace::id private with a getter
Reduce the chance it gets overwritten.
* Add test for workspace ID uniqueness
* Update previous workspace ID upon moving workspace across monitors
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
400 is for width not height.
|
|
Values and implementation are heavily inspired by AdwSwipeTracker.
|
|
|
|
|
|
|
|
|
|
|
|
Less boilerplate elsewhere.
|
|
This way when a dialog opens on a different workspace, the user will see
it right away when they switch to that workspace.
|
|
|
|
|
|
|
|
|
|
Doesn't need to be any more.
|
|
|
|
As opposed to move-window-to-workspace*
|
|
Get miette and knuffel deps contained within.
|
|
|
|
|
|
|
|
|
|
I missed the window_y thing and found it thanks to the rename. Too lazy
to split it into a commit.
|
|
backdrop
Windows are now wrapped in Tiles, which keep track of window-specific
decorations. Particularly, I implemented a black fullscreen backdrop,
which finally brings fullscreened windows smaller than the screen in
line with how the Wayland protocol says they should look—centered in a
black rectangle. I also implemented window borders, which are similar to
the focus ring, but always visible (and hence affect the layout and
sizing).
|
|
|
|
|