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

Fix tooltip text being garbled/blurry sometimes due to fractional x position #779

Closed

Conversation

ZimbiX
Copy link
Collaborator

@ZimbiX ZimbiX commented Jan 23, 2023

Resolves #766. See #766 (comment).

Edit:

Before:

system-monitor.fractional.tooltip.x.values-2023-01-24_03.24.48.mp4

After:

system-monitor.fractional.tooltip.x.values.-.fixed-2023-01-24_03.42.12.mp4

View the videos at 100% scale to see better: right-click -> Open video in new tab

Copy link
Collaborator

@mgalgs mgalgs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

mgalgs and others added 20 commits April 21, 2023 22:31
On first build it won't be present.
We're going to be uploading this to extensions.gnome.org, which means it
needs to have a different UUID from the upstream version. Append a -next to
ensure uniqueness.

Also update the description to clarify provenance.
Add a syncer action and associated workflow that periodically rebases this
fork with upstream and force pushes the result to our master branch.
Add an uploader action and associated workflow to package up and upload the
extension to extensions.gnome.org when a push to master touches the
extension code.

This works in tandem with the syncer action to continuously update the
extension on extensions.gnome.org with upstream's master branch.
When the rebase fails the repo ends up in a mangled state. For example,
.github/sync-failed-template.md might not even be present in the source
directory after the failed rebase, which causes the "create-an-issue"
action to fail.

Fix this by aborting the rebase on failure so that the source directory
gets back to a sane state.

Fixes: https://github.com/mgalgs/gnome-shell-system-monitor-applet/runs/4106665884

    Error: File .github/sync-failed-template.md could not be found in your
    project's workspace. You may need the actions/checkout action to clone
    the repository first.
We don't really need to sync every hour. Bump it to every 6 hours to save
the environment for posterity.

Fixes paradoxxxzero#24
Fixes paradoxxxzero#28

,----
| mkdir: created directory '/github/home/.ssh'
| # github.com:22 SSH-2.0-babeld-8edba9ba
| # github.com:22 SSH-2.0-babeld-8edba9ba
| # github.com:22 SSH-2.0-babeld-8edba9ba
| fatal: detected dubious ownership in repository at '/github/workspace'
| To add an exception for this directory, call:
|
|     git config --global --add safe.directory /github/workspace
`----
Currently it only runs if something changes under the extension directory,
but sometimes (like right now) we need to run the workflow after changing
something in the workflow itself.
I'm using GNOME 44 beta (44~beta-1ubuntu1 on Ubuntu 23.04 with Wayland)
and it looks like everything seems working fine after having forced
version 44 support in metadata.js.

So I guess we can simply update the metadata.js to allow this nice
add-on to run on newer GNOME versions.
…phs in background"

This reverts commit f251e72.

Doesn't adhere to gnome's session mode guidelines.

paradoxxxzero#773 (comment)
… on the lockscreen in an officially-supported manner"

This reverts commit 0069a85.

Doesn't adhere to gnome's session mode guidelines.

paradoxxxzero#773 (comment)
Currently we submit a new build anytime anything is pushed to the master
branch. Unfortunately this means we spam a bunch of builds to
extensions.gnome.org if a multiple commits are pushed (if a multi-commit PR
is merged, for example).

Make build submission a bit more explicit by only running the extension
uploader action on new tags.
I don't think this extra sync ever did anything for us besides spam our
actions builds... I can't remember why I thought we would want to re-sync
after making changes to our GA stuff. ¯\_(ツ)_/¯
The "tooltip-delay-ms" setting introduced in (0236f39: "Add setting for
tooltip delay") never made it into the checked-in schema build.
Fixes paradoxxxzero#38

High-level summary of changes:

  - Migrated to es6 style imports [1]
  - Removed support for GS<45 [2]
  - Added default class exports in lieu of enable/disable functions [3]
  - Moved to subclassing Extension for main extension, with its associated
    helper properties/methods in lieu of extensionUtils [4]
  - Moved to subclassing ExtensionPreferences for prefs, with its
    associated helper properties/methods in lieu of extensionUtils [5]
  - Removed legacy Class syntax (Lang) [6]
  - Migrated to GLib-based Mainloop [7]
  - Use gettext from the extension module [8]
  - Migrated logging to standard console.* methods [9]
  - Migrated preferences dialog to Adwaita [10]

TODO:

  - [ ] Figure out Battery (Main.panel.statusArea.quickSettings._system)

Suggested-by: Gil Vicente Bernardo Pinto <[email protected]>

 [1] https://gjs.guide/extensions/upgrading/gnome-shell-45.html#esm
 [2] https://gjs.guide/extensions/upgrading/gnome-shell-45.html#shell-version
 [3] https://gjs.guide/extensions/upgrading/gnome-shell-45.html#extension-js
 [4] https://gjs.guide/extensions/upgrading/gnome-shell-45.html#extensionutils
 [5] https://gjs.guide/extensions/upgrading/gnome-shell-45.html#prefs-js
 [6] https://gjs.guide/guides/gjs/legacy-class-syntax.html#binding
 [7] https://discourse.gnome.org/t/how-to-import-mainloop-on-gnome-45-version/17605
 [8] https://gjs.guide/extensions/upgrading/gnome-shell-45.html#extensionutils
 [9] https://gjs.guide/extensions/upgrading/gnome-shell-45.html#logging
[10] https://gjs.guide/extensions/development/preferences.html#prefs-js
Currently the close button is not visible unless you horizontally resize
your window by 9 billion pixels. Fix this by wrapping everything in a
scrolled window. This is still ugly but will hold us over until we get a
broader overhaul of the preferences window.
Left PKGBUILD alone since we don't even have an AUR listing for the -next
fork yet, so it doesn't make a ton of sense to update it pretending like we
do.
Packaging and distribution is somewhat outside the scope of this repo.
Upstream is unresponsive and we've begun to diverge substantially, so it's
no longer realistic to say that this fork exists for "packaging purposes
only". We're taking on water, so batten the hatches and patch the sources!
glerroo and others added 26 commits October 28, 2023 18:30
this.settings -> this._settings

Fixes paradoxxxzero#47
The panel module no longer exports all of its constants, so we need to
define what we need ourselves.

And actually, Panel.PANEL_ITEM_IMPLEMENTATIONS.battery was removed from
Gnome Shell 10 years ago in [1], so that has apparently been broken for a
while...

Fixes paradoxxxzero#41

[1] https://gitlab.gnome.org/GNOME/gnome-shell/-/commit/5c8c4e0aad4c1e2d05960efdfded7c69225e2d95
There is currently a fantastically annoying bug in Gnome Shell [1] that
results in a crash if you do an `r' with *any* windows open, so people are
crashing their systems by following the instructions in our
description. Drop our gs restart recommendation for now (and hopefully
forever since we should really just fix the error instead of recommending a
gs restart paradoxxxzero#50).

Fixes paradoxxxzero#49

[1] https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7050
Since we've now committed to the fork (bd66c2d: "README: Commit to the
fork"), we don't need the upstream caveat anymore.
Added multiple GPUs support
On NixOS, /usr/local does not exist. Handle this error gracefully.

Signed-off-by: Anders Kaseorg <[email protected]>
The launcher filename has changed in GNOME 46.

Also drops the unused extensions app lookup.
The interface will be gone in GNOME 46. Prepare for that by switching from
`add()` to Clutter.Actor's `add_child()`.

The replacement has been around forever, so this does not affect compatibility
with the current stable version.
If you are using Clutter.cairo_set_source_color() in St.DrawingArea,
cairo.Context can use setSourceColor() instead (cr.setSourceColor()).
Use Clutter.Actor.remove_child() instead of Clutter.Container.remove_action().
Our system dependency pop-up dialog (smDialog) is currently using some
private APIs which are being removed in Gnome Shell 46 [1]. Rather than
fixing this let's just tie it up and throw it overboard. This is a
reasonable course of action because:

  (1) It's not clear which replacement APIs we should be moving to. We
      could figure this out with a bit of research and testing, but it
      may not be worth it because:

  (2) The smDialog dependency checks have actually been hard-coded out
      since the port to Gnome Shell 45 [2] (since the old dependency
      check method relied on a try/catch of the library imports, which
      isn't supported in es6).

So even if we figure out a new API for copying props to the child, we'd
still never be using any of that new code anyway since we're hard-coding an
assumption of the dependencies being present.

Ultimately we *should* fix this for the best possible user experience, but
in the interest of keeping things moving with Gnome Shell updates we'll
defer that work to the back burner (paradoxxxzero#69).

[1] mgalgs#64 (comment)
[2] (f838b97: "extension: Update for Gnome Shell 45")
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

Successfully merging this pull request may close these issues.

Tooltip font rendering is slightly garbled sometimes
8 participants