aboutsummaryrefslogtreecommitdiff
path: root/src/Rahm/Desktop/Common.hs
Commit message (Collapse)AuthorAge
* Rebrand WorkspaceSelect to "WorkspaceWheel"Josh Rahm2025-03-06
| | | | | Made the selector a wheel instead of a row. Added some keybindings and button bindings.
* Fix vertial alignment of WorkspaceSelect.Josh Rahm2025-03-06
|
* Ability to move multiple windows at once.Josh Rahm2025-03-05
|
* 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.
* 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.
* Add multi-select Rofi support and allow multiselect for windows.Josh Rahm2023-12-13
|
* 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.
* 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.
* Still a work-in-progress, but better dragging window.Josh Rahm2023-12-05
| | | | | | | | | | 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.
* Added a couple of draggable bindings.Josh Rahm2023-12-04
| | | | | | 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.
* Add ability to swap two workspaces with the W commandJosh Rahm2023-12-04
|
* run ormoluJosh Rahm2023-11-30
|
* Better modelling for moving between windows. Reworked shifting windows and ↵Josh Rahm2023-11-30
| | | | made the movement atomic to improve speed
* Change win+w to a swap windows command.Josh Rahm2023-11-30
|
* Change history to work on a per-screen basis.Josh Rahm2023-11-25
| | | | | | | | | 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.
* Add export lists to all modules.Josh Rahm2022-11-23
|
* Remove more unused imports.Josh Rahm2022-11-23
| | | | GHC left some of the unused imports as `import X ()`
* Remove PromptConfig.hs. Not used.Josh Rahm2022-11-23
|
* Change to use minimal imports.Josh Rahm2022-11-23
| | | | | This is achieved by using `stack build --ghc-options=-ddump-minimal-imports` and looking for the *.imports files.
* Format with ormolu.Josh Rahm2022-11-21
|
* Add Bordering layout.Josh Rahm2022-10-09
| | | | | | 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.
* Roll Windows.hs into R.D.StackSetJosh Rahm2022-10-09
|
* Add R.D.StackSet as a replacement for StackSet.Josh Rahm2022-10-09
|
* Run hlintJosh Rahm2022-10-09
|
* Change window border when selecting windowsJosh Rahm2022-10-09
|
* Rename Lang to WindowManagementLanguage (Moved to Wml.hs). Add more features ↵Josh Rahm2022-10-09
| | | | to it.
* Add basic language for moving windows aroundJosh Rahm2022-10-09
|
* Starting to implement window management languageJosh Rahm2022-10-09