| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
| |
This change adds a "workspaceWindows" function on a pseudo-workspace
level so now the windowsets '@_', '@#', '@-' actually have meaning.
Also now the "move to workspace" function buffers the windows which
makes things more responsive and intuitive.
|
| | |
|
| |
|
|
|
| |
Made the selector a wheel instead of a row. Added some keybindings and
button bindings.
|
| | |
|
| |
|
|
|
|
|
|
| |
Add's the workspace '+' as the first workspace that's not on the same
'plane' as the current workspace.
A screen, screen1 is considered on the same plane as screen2 if
screen2's vertical center point is within screen1's vertical bounds.
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
This is more general than it was before. It's quicker than typing its
synonymous equivalent, <M-f>,. as a bonus it's the same on both dvorak
and qwerty keyboards.
|
| |
|
|
|
|
|
|
| |
This function invokes a handler if a WML workspace is entered, or if a
non-Wml key is entered, it invokes a different handler.
This allows Wml-tied keys like 'g' to handle non-wml sequences. I.e. "g
<F1>" now displays help.
|
| | |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
| |
now except the border color does not change.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
| |
left/right. It is more intuitive and is more flexible. As a part of this, I incresed the timeout for multiple button bindings to 5000ms like how keystrokes work.
|
| | |
|
| |
|
|
| |
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.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
This makes it so one can record a macro to M- keys where the
lookupString might be alphanumeric, but has another modifier.
This allows one to write a macro for double tapping <M-g><M-g>, for
example.
|
| | |
|
| | |
|
| |
|
|
| |
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 wml workspace @w refers to the workspace that contains the window
marked 'w', however when jumping to that workspace, an arbitrary window
is focused. It's more intuitive to set focus to the window 'w'. This
means that <H-g>@• is the same as <H-w>•.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It was <l₀l₁w₀w₁ to condition on if l₀ is a subset of l₁, but this is
redundant, instead add "?" that conditions of if l₀ is empty.
So the new syntax is
?lw₀w₁ which is read, if the windowset l is not empty, then workspace w₀
else w₁.
This is the same use-case as before. Handy for defining macros to, say,
jump to Spotify if it's not on the current workspace, otherwise jump
to the prior window.
This is now accomplished with (assuming Spotify is marked 's'):
<H-g>?&s@.'@s
This reads as, if (?) the intersection between the Spotify window and the
windows on the current workspace (&s@.) is not empty (if spotify is on
the current window), go to the last workspace ('), otherwise go to the
workspace Spotify is on (@s).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds the "<" condition, it used as "in"
i.e. "<l₀l₁w₀w₁" reads as "if l₀ is a subset of l₁, then w₀ else w₁"
Useful for macro programming like, if Spotify is on the current
workspace, then go back to where I came from, otherwise jump to Spotify.
This can be achieved with the following (assuming Spotify is marked with
"s"):
"<H-g><s@.'@s"
"if spotify (s) is in the set of the windows on the current screen (@.), jump
back to where I came from (workspace '), otherwise goto the workspace
spotify is on (@s)."
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These are:
'~ws' - Associated workspace, which is the workspace of the toggled
case. I.e. workspace ~w == W, or ~. is the toggled case of the current
workspace.
'=ws₀ws₁ws₂ws₃' ws₂ if name(ws₀) == name(ws₁) otherwise ws₃
while not _that_ helpful for interactive usage, it is useful for
programming macros. I.e.
to jump to Spotify, unless I'm already on spotify, in which case go back
to where I was, I can record this macro on my keyboard:
<Hyper-g>=.s's
or a macro to jump back and forth between the current workspace and the
associated workspace on the next monitor:
<Hyper-g>=.~,.'~,.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
Right now all existing logs are logged at Info, but this will
change. This should make it significantly easier to debug
things wit log levels like Trace. I may at some point define more
log level endpoints or come up with a more expressive logging
system, but this is a good start.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Macros may be defined by using <M-d>
<M-d>w begins defining a windowset macro
<M-d>t begins defining a workspace macro
The next character typed is the key chord to save the macro to. The next
sequence of keys read up until the Return key is the macro value. This
macro may then be used as WML objects.
Macros are pretty primitive right now. I need to think about if it would
be worthwhile to make these macros either take arguments or add some
kind of state to WML a la sed to take a step to make the language Turing
complete, and if such a development would actually be desirable. If
anything it would be an academic exercise.
|
| | |
|
| | |
|
| | |
|
|
|
to it.
|