| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
| |
This adds a new "KeyFeed" monad which is reminiscent of a parsec-type
monad. This allows keys like 'g' to be mapped using a subbind and the
actual WML part be handled in the catch-all handler.
This also significantly cleans up the typing and complexity of the Wml
implementation.
|
| |
|
|
|
|
| |
In the future I would like to auto-detect when a window is large enough
to be fullscreen and remove the border in that case, but that will take
more work. For now a manual action is sufficient.
|
| | |
|
| |
|
|
|
|
|
|
| |
This module manager border colors for the windows and handles
automatically maintaining the colors across stack changes.
This also adds green borders to pinned windows to differentiate them
from normal windows.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This new feature creates a 'selected windows' buffer which allows
the user to select windows. These windows are then automatically
made the argument for a Wml window operation such as shifting.
This is great for when one wants to apply an action to a set of windows
which are too difficult to describe with Wml expressions.
In addition, I have added a bunch of mouse bindings and key bindings
to this.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Added ShiftAndSwap functionality, which allows user to shift a
<windowset> to a <workspace> and then swap that workspace with
another <workspace>
e.g. move Spotify to workspace 's' and put workspace 's' on the last
monitor.
This replaces the shift-and-follow as this is more powerful (shift
and follow just puts the "shifted-to" workspace on the current
monitor.)
ofc if the two workspaces to swap are not visible, this just operates
as a normal shift command.
- Moved more dragging functionality to the Dragging.hs file and cleaned
it up a little. More is certainly needed.
- With the more powerful dragging functionality, many bindings are made
redundant. I replaced one of these redundant bindings (button13 ->
mouseWheel). This used to move the focused window around the stack,
but this has been made redundant by the drag-to-swap functionality
(button14 -> left-click-drag), so now it changes the master region
size.
|
| |
|
|
|
|
|
|
|
|
| |
Dragging a window will leave a hole behind until it reaches its final
destination, making it look a little better.
Now I've also implemented drag so that when ending the drag with a
right-click it tiles the window on the screen it's currently on.
It is still pretty jenky and very much a WIP.
|
| |
|
|
|
|
| |
These new bindings allow the user to click on a window and "drag" it to
a different window. This will swap the two windows once the drag button
is released. The other binding is similar, but for whole workspaces.
|
| | |
|
| | |
|
| |
|
|
| |
made the movement atomic to improve speed
|
| | |
|
| |
|
|
|
|
|
|
|
| |
This change is still experimental, but it is more intuitive that each
screen has its own history because each screen is generally dedicated to
a specific use case.
I'm going to try this on for size, though it is possible that
per-workspace history mighte prove to be more useful. We'll see.
|
| | |
|
| |
|
|
| |
GHC left some of the unused imports as `import X ()`
|
| | |
|
| |
|
|
|
| |
This is achieved by using `stack build --ghc-options=-ddump-minimal-imports`
and looking for the *.imports files.
|
| | |
|
| |
|
|
|
|
| |
The bordering layout can add windows along the border of the screen,
that way something like videos or something can be shown in the corner
of the screen.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
to it.
|
| | |
|
| |
|