aboutsummaryrefslogtreecommitdiff
path: root/src/Rahm/Desktop/Keys/Wml.hs
Commit message (Collapse)AuthorAge
* 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
|
* Rebrand WorkspaceSelect to "WorkspaceWheel"Josh Rahm2025-03-06
| | | | | Made the selector a wheel instead of a row. Added some keybindings and button bindings.
* Ability to move multiple windows at once.Josh Rahm2025-03-05
|
* Add some support for vertially ordered screens.Josh Rahm2024-10-14
| | | | | | | | 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.
* 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 <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.
* 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 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.
* 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.
* 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.
* Add ability to tile-dragJosh Rahm2023-12-05
|
* Change the rotate-screen-left/right to just swap current screen with ↵Josh Rahm2023-12-04
| | | | 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.
* 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 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.
* Change Swap to be instead a shift-and-follow.Josh Rahm2022-11-28
|
* Fully persistent macro settings. Stores the macros in a fileJosh Rahm2022-11-23
|
* Macros should take precedence for windowsetsJosh Rahm2022-11-23
|
* More documentation in Wml.hsJosh Rahm2022-11-23
|
* Change WML to give precedence to macros over everything else.Josh Rahm2022-11-23
| | | | | | | | 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.
* address a couple hlint issues.Josh Rahm2022-11-23
|
* 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 ()`
* 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.
* Better implementation of the pending buffer. Still need to iron out some bugs.Josh Rahm2022-11-22
|
* Rudimentary pending buffer shown in Xmobar.Josh Rahm2022-11-21
|
* Format with ormolu.Josh Rahm2022-11-21
|
* Jumping to the black hole workspace will exit Xmonad (with confirmation).Josh Rahm2022-10-09
|
* Add preferred window for some Workspace jumps.Josh Rahm2022-10-09
| | | | | | | 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>•.
* Add check for xK_Escape to end trynig ot type a Wml object.Josh Rahm2022-10-09
|
* Actually, change the workspace conditional operator.Josh Rahm2022-10-09
| | | | | | | | | | | | | | | | | | | | | | | 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).
* Add new conditional description for workspaces.Josh Rahm2022-10-09
| | | | | | | | | | | | | | | | | 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)."
* Add more Wml adjectives.Josh Rahm2022-10-09
| | | | | | | | | | | | | | | | | | | | | | | 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>=.~,.'~,.
* Change WML workspaces to have a Maybe name.Josh Rahm2022-10-09
|
* Add R.D.StackSet as a replacement for StackSet.Josh Rahm2022-10-09
|
* Infrastructure for better logging, finally!Josh Rahm2022-10-09
| | | | | | | | 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.
* Add macro support to WML.Josh Rahm2022-10-09
| | | | | | | | | | | | | | | | | 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.
* Add :: object to tile windows onto a workspaceJosh Rahm2022-10-09
|
* Add : object to reference floating windowsJosh 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.