aboutsummaryrefslogtreecommitdiff
path: root/src/Rahm/Desktop/Keys.hs
Commit message (Collapse)AuthorAge
* [feat] implement dragging the "alternate" workspace.HEADmainJosh Rahm11 days
|
* Get rid of the corners-config ... it is quite annoyingJosh Rahm2025-12-03
|
* Change volume controls to change the volume of the selected app.Josh Rahm2025-10-29
| | | | As opposed to always changing the volume of the default sink.
* Add tabs-search key binding. Unfortunately only really useful whenJosh Rahm2025-10-29
| | | | running Chrome.
* Add quick-clip and bind it to <M-z>c.Josh Rahm2025-10-29
| | | | | Quick-clip makes it easy to keep text snippets around for quick copy-paste.
* Add a mechanism for local key bindings.Josh Rahm2025-03-19
|
* Change some of how Workspaces work in WML.Josh Rahm2025-03-09
| | | | | | | | 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.
* Misspelling: accompaning -> accompanyingJosh Rahm2025-03-07
|
* Rename dzen selection to workspaceWheelJosh Rahm2025-03-07
|
* Rebrand WorkspaceSelect to "WorkspaceWheel"Josh Rahm2025-03-06
| | | | | Made the selector a wheel instead of a row. Added some keybindings and button bindings.
* Implement basic screen corners.Josh Rahm2025-03-06
| | | | | It would be really cool to integrate screen corners with the binding DSL, but that requires extra thought.
* Implement a mouse-driven workspace switcher using dzen.Josh Rahm2025-03-06
| | | | | | When a key or button is pressed, RDE will display the set of current workspaces, prompting the user to click on one to switch to that workspace.
* Ability to move multiple windows at once.Josh Rahm2025-03-05
|
* Make Dzen2 font bold.Josh Rahm2025-02-28
|
* Implement new <M-/> binding which displays which workspace is on each screenJosh Rahm2025-02-28
| | | | This uses Dzen to display this, so that's a new dependency.
* Add notes system.Josh Rahm2025-02-21
|
* Add more keycode bindings for 'u' and 'o' to help navigate tabs.Josh Rahm2024-10-18
|
* Add popup terminal when the "explode" happendsJosh Rahm2024-08-23
|
* Add explode layout modifier and make it toggleable with <M-z>cJosh Rahm2024-08-23
|
* Fix firefox matching with window-specific bindingsJosh Rahm2024-03-15
|
* Add some keybindings. Add some manage hooks.wip_mapping_keycodesJosh Rahm2024-03-15
|
* Remove some extreneous logging in Keys.hsJosh Rahm2024-02-07
|
* Overhaul how Wml is implemented.Josh Rahm2024-02-04
| | | | | | | | | 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.
* Merge branch 'main' into wip_mapping_keycodesJosh Rahm2024-02-03
|\
| * Reverse keybindings between xK_x and Space,xK_xJosh Rahm2024-02-03
| |
| * Add Firefox to the browsers listJosh Rahm2024-02-01
| |
* | Break out some stuff in Dsl2.Josh Rahm2024-02-03
| | | | | | | | | | Create new Grab and KeyCodeMapping modules to support keycode mapping. That subsystem did not belong in Dsl2.
* | Configure some more mod3 keys; add a test mod2 key.Josh Rahm2024-02-02
| |
* | Add support for root-level keycode mappings.Josh Rahm2024-02-02
| | | | | | | | | | | | | | | | | | 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.
* | Add limited ability to bind directly to keycodes.Josh Rahm2024-01-31
|/ | | | | | | | | | | | | | | 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.
* Add movement keybindings to Mod3.Josh Rahm2024-01-30
| | | | | | | | 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.
* Add ability to move floating windows around using mod+shift+{l,h}Josh Rahm2024-01-30
|
* Add Keybinding to remove the border from a window.Josh Rahm2024-01-30
| | | | | | 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.
* Change binding for launching xterm. Add bindings for killing XMonad.Josh Rahm2024-01-29
| | | | | As I move to use mod4 again instead of Hyper (mod3) it will conflict with switching xmobar.
* Add <M-a> and <S-M-a> to cycle between monitors.Josh Rahm2024-01-29
| | | | | | 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.
* Moving away from the a, o, e keybindings. Change f to 'focus'Josh Rahm2024-01-26
| | | | | | | | | | | | 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).
* Add withNextWorkspaceOrKey.Josh Rahm2024-01-26
| | | | | | | | 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.
* Add ability to add a hole to the layout. Doesn't work perfectly.Josh Rahm2023-12-18
|
* Added documentation ability for Dsl2 keys.Josh Rahm2023-12-13
|
* Replacing existing binder DSL with a better and more expressive DSL.Josh Rahm2023-12-13
| | | | | This new DSL is cleaner and more powerful. This new DSL allows mixing key and mouse bindings in submappings, which can be very useful.
* Make button 15 escape from the window selection submodeJosh Rahm2023-12-12
|
* Fixed workspace mouse movements to be more intuitive.Josh Rahm2023-12-11
|
* Some better handling for pinned windows.Josh Rahm2023-12-09
|
* Added BorderColors.hsJosh Rahm2023-12-09
| | | | | | | | 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.
* Fix some dragging behavior. Remove some conflicting bindings.Josh Rahm2023-12-08
|
* Got the pin window layout to work. It works better than the main branch for ↵pinwindowJosh Rahm2023-12-08
| | | | now except the border color does not change.
* WIP trying to use pin-window as a layout. Not really working too wellJosh Rahm2023-12-07
|
* Add duplicate windowJosh Rahm2023-12-06
|
* Add new 'selected windows' featureJosh Rahm2023-12-06
| | | | | | | | | | | | 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.
* Bunch of changes. Not good git ettiquiteJosh Rahm2023-12-06
| | | | | | | | | | | | | | | | | | | | | | | | | | - 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.