Discover
Discover copied to clipboard
[WIP] Drastic changes. GTK4
Road to v1.0.0
This PR represents a complete overhaul of this project. The project had languished in GTK3 for quite long enough and needed to be updated. The old Cairo-drawing code path was a tangle.
This update WILL break users experience, but the plan is to break the least number of features and the least number of places it can run.
Requirements before merging
MUST HAVE
- [X] Fully working wlroots layer shell implementation
- [X] Fully working X11 with compositor implementation
-
- [X] Window position & Layer have been removed from GTK so must be done via XLib
- [X] X11 without compositor MUST NOT leave the desktop unusable. Quit if detected
- [x] Fully working X11/Gamescope overlay using atom
-
- [x] Gamescope codepath needs a mechanism to place each overlay into a gtk grid in a parent overlay
- [ ] All removed config options removed and hidden from Settings Window
- [X] Voice overlay drawn & laid out using Gtk Widgets
- [X] Text overlay drawn & laid out using Gtk Widgets
- [X] Notification overlay drawn & laid out using Gtk Widgets
- [ ] Settings Window re-organised
-
- [ ] Try to organise sections in each window
-
- [ ] Hide sections when disabled
Preferable
- [x] Working X11 without compositor. XShape used to cut out the bounding box of the shown elements. Ugly black boxes but should be managable
Would-Be-Nice
- [ ] Working X11 without compositor with a pixel-by-pixel XShape mask (similar to current stable)
- [ ] System tray / App Indicator with menu
-
- [ ] Probably need to write a dbus impl ourselves...
- [ ] Option to rotate usernames
- [ ] Option to limit username by size rather than character count
Changes so far
- Ripped out entire Cairo code paths
- Rendering is done via Gtk Widgets. No custom render. Use CSS and layout management
- Removed features from voice overlay
-
Right alignsplit into two options
-
- Removed text baseline adjustment
-
- Removed user overflow options
- Removed features from notification overlay
-
- Reverse order
- Removed features from text overlay
-
- Custom emojis in text
-
- Attached images
- Removed ALL floating window positions
- Reorganised config reading into each overlay
- Monitor selection updated to GTK4
- X11 support re-created using XLib & EWMH where needed
- Connector changes
-
- Moving away from entire-state data blobs where possible
-
- Send initial state where appropriate, and changes as they happen
-
- Use more timeouts where possible in place of iteration counting
To fix or remove
-
- settings: systemtray & menu