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

Closed
63 tasks done
lars-berger opened this issue May 9, 2024 · 14 comments
Closed
63 tasks done

Progress tracking for GlazeWM C# to Rust rewrite 🦀 #604

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

Comments

@lars-berger
Copy link
Member

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 95 100%:
████████████████████

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)
  • Code signing

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

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
@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!

@txj-xyz
Copy link

txj-xyz commented Jul 2, 2024

Following 🙏🏽

@gespau gespau mentioned this issue Jul 2, 2024
@AfzGit
Copy link

AfzGit commented Jul 11, 2024

Please add this to the upcoming reworks default configuration file. Prevents the lock screen from constantly waking the PC up.

#518 (comment)

@tommerty
Copy link

Love this project, thank you for everything ❤ It's been something I've always wanted, but lack the skill and time to work on the problem myself.

Can I ask:

  1. I assume as this is an entire rewrite, configs from now won't be compatible with v3?
  2. As a web developer, I want to reach out my hand with assistance for helping create a documentation site. I see on the orgs profile it says "Website up soon". If you're looking for any help with this I'd be happy to help. While mostly a developer using React, I'm quite comfortable with Jekyll/Hugo for simplicity.

@pu-007
Copy link

pu-007 commented Jul 22, 2024

Love this project, thank you for everything ❤ It's been something I've always wanted, but lack the skill and time to work on the problem myself.

Can I ask:

  1. I assume as this is an entire rewrite, configs from now won't be compatible with v3?
  2. As a web developer, I want to reach out my hand with assistance for helping create a documentation site. I see on the orgs profile it says "Website up soon". If you're looking for any help with this I'd be happy to help. While mostly a developer using React, I'm quite comfortable with Jekyll/Hugo for simplicity.

For point 1, as per the README file in the quick-test(v3) branch, it appears that the current configuration is compatible with v3.

@Louis047
Copy link

waiting for this to be completed ❤️

@aaronedev
Copy link

waiting for this to be completed ❤️

yup cant wait for rust rewrite 💖

@lars-berger
Copy link
Member Author

V3 is finally out now! Thanks for all the feedback and troubleshooting on here and on the Discord the last few months ❤️

Release

@AfzGit
Copy link

AfzGit commented Aug 5, 2024

image

Thanks to all involved 🦀

@lars-berger lars-berger unpinned this issue Aug 6, 2024
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