| Commit message (Collapse) | Author | Age |
| | |
|
| | |
|
| | |
|
| |
|
|
| |
workspace, making it harder to explicitly go to the hidden workspace
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |\ |
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| | |
Create new Grab and KeyCodeMapping modules to support keycode mapping.
That subsystem did not belong in Dsl2.
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
The code is a bit of a mess, and should probably be moved out of Dsl2
and into a dedicated place, but it works.
I had to do a bit of a hack to get around XMonad's ungrabbing the
keyboard after a Mapping event, which is not the best, but I don't have
a better way of doing it.
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Binding to keycodes is good for nonmnemonic key bindings -- where the
choice of key is due to its position on the keyboard rather than the
character associated with it.
Right now only window bindings and subbindings can use keycode bindings.
Root bindings can still only be keysyms and buttons.
I've been using this feature to map some movement keys to Hyper. This
emulates the function key on my M770 keyboard where fn+ijkl are used as
arrow keys. I use the tab key as my hyper key. With xcape it can operate
as a Tab key when release, or a modifier key when held down, which is
awesome.
|
| | |
|
| |
|
|
|
|
|
|
| |
These keybindings give me the ability to use arrow keys and other
movement keys without physical keys.
This is helped by my keyboard script which maps Tab to Hyper when held
down, so tab acts like a function key of sorts.
|
| | |
|
| |
|
|
|
|
| |
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.
|
| |
|
|
| |
is too much work.
|
| |
|
|
|
| |
As I move to use mod4 again instead of Hyper (mod3) it will conflict
with switching xmobar.
|
| |
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
These keybindings are
1. Expensive, it's 3 different keys on a prime spot on the keyboard.
2. Position dependent to make sense. Not interoperable between QWERTY
and Dvorak.
3. Not very powerful
These keys are being replaced with a new 'f' keybinding. 'f' operates
just like 'g' except it will non-greedily focus the workspace if it's
already visible. (and 'f' only works with normal workspaces right now).
|
| |
|
|
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
small bug where pinned windows would move down slightly on release when Xmobar is present
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
This new DSL is cleaner and more powerful. This new DSL allows mixing
key and mouse bindings in submappings, which can be very useful.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
| |
completed
|
| | |
|
| |
|
|
| |
now except the border color does not change.
|
| | |
|
| |
|
|
| |
This fixes the bug where many bindings don't work if numberlock is set.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
| |
window correctly
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|