Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Progress tracking for GlazeWM C# to Rust rewrite πŸ¦€ #604

Open
59 of 62 tasks
lars-berger opened this issue May 9, 2024 · 6 comments
Open
59 of 62 tasks

Progress tracking for GlazeWM C# to Rust rewrite πŸ¦€ #604

lars-berger opened this issue May 9, 2024 · 6 comments

Comments

@lars-berger
Copy link
Collaborator

lars-berger commented May 9, 2024

This issue serves as a central place to track the progress of the C# to Rust rewrite.

Current progress stands at roughly 90%:
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘οΈβ–‘οΈβ–‘οΈβ–‘οΈβ–‘οΈ

If you want to reserve a particular task, please leave a message in this issue, or in the #dev-chat channel on the Discord server.

Purpose of the rewrite

The goal is to make the WM as speedy and stable as possible, as well as easier to maintain.

It'll also be an opportunity to introduce some breaking changes. Most notably will be the replacement of the built-in bar with Zebar (https://github.com/glzr-io/zebar). It's a separate project but we'll focus on keeping the installation of both smooth and simple. We're also looking to make window rules and binding modes a lot more extendable.

Big tasks:

  • User config parsing, validation, and generation️
  • Hooking window events️
  • Hooking mouse events️
  • Hooking keyboard events️
  • IPC client and server
  • Command parsing️
  • Populating initial WM state️
  • Watcher process
  • System tray
  • Wix installer (also package Zebar using Burn bundle)

Event handlers:

  • DisplaySettingsChanged
  • WindowDestroyed️
  • WindowFocused️
  • WindowHidden️
  • WindowLocationChanged️
  • WindowMinimizeEnded️
  • WindowMinimized️
  • WindowMovedOrResized️
  • WindowShown️

Common commands:

  • ExecProcess
  • SetBindingMode

Container commands:

  • AttachContainer️
  • CenterCursorOnContainer️
  • DetachContainer️
  • FlattenSplitContainer️
  • FocusContainerUnderCursor
  • FocusInDirection
  • MoveContainerWithinTree️
  • RedrawContainers️
  • ReplaceContainer️
  • ResizeContainer️
  • SetActiveWindowBorder
  • SetFocusedDescendant️
  • SyncNativeFocus️
  • ToggleFocusMode
  • ToggleTilingDirection️

Monitor commands:

  • AddMonitor️
  • RefreshMonitorState
  • RemoveMonitor

User config commands:

  • ReloadUserConfig
  • RunWithSubjectContainer (βŒ› WIP @lars-berger)

Window commands:

  • CloseWindow️
  • IgnoreWindow
  • ManageWindow️
  • MoveWindow
  • ResizeWindowBorders
  • ResizeWindow️
  • SetFloating️
  • SetMaximized️
  • SetMinimized️
  • SetTiling️
  • SetWindowSize
  • ToggleFloating️
  • ToggleMaximized️
  • UnmanageWindow️

Workspace commands:

  • ActivateWorkspace️
  • DeactivateWorkspace
  • FocusWorkspace
  • FocusWorkspaceRecent
  • FocusWorkspaceSequence
  • MoveWindowToWorkspace
  • MoveWorkspaceInDirection (βŒ› WIP @lars-berger)
@aaronedev
Copy link

thank you for updating!

@moktavizen
Copy link

So excited to try the Rust rewrite πŸ¦€

@pu-007
Copy link

pu-007 commented Jun 24, 2024

It appears that it will be arriving imminently.

@Xdavlar
Copy link

Xdavlar commented Jun 26, 2024

Very cool to se the progress. This has gone a lot faster then I expected after you announced the rewrite, great work :)

I had an idea for a new feature when it comes to the bar, but now I'll have a look in Zebar project instead.

@YMKO67
Copy link

YMKO67 commented Jun 28, 2024

I love using your work in a daily basis, really thank you !

@AdamBuchweitz
Copy link

Yes! I also greatly appreciate your efforts and use Glaze every day at work. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants