913 Commits

Author SHA1 Message Date
Antoine Jacoutot
027e8c1674 system-monitor: Unbreak runtime on (at least) BSD
Calling glibtop_init is not optional on BSD[0], and not doing so will
crash gnome-shell with:

  glibtop(c=57582): [ERROR] glibtop_get_swap: Function not implemented
  gnome-session-binary[34511]: WARNING: Application 'org.gnome.Shell.desktop' killed by signal 6

[0]: https://gitlab.gnome.org/GNOME/libgtop/-/issues/44

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/356>
2025-09-14 21:43:25 +02:00
Florian Müllner
229d39701a workspace-indicator: Ignore 'e' press when already in edit mode
While events should already be consumed by the entry while editing,
it does not hurt to be explicit, so only process 'e' to enter edit
mode while not already in edit mode.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/423>
2025-09-11 04:06:44 +02:00
Florian Müllner
e9153db954 workspace-indicator: Add missing return value to event handler
Event handlers are expected to return a boolean to indicate whether
the event should be stopped or propagated further. Omitting the
return value effectively means returning a random value, which can
lead to unexpected behavior.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/423>
2025-09-10 19:48:25 +02:00
Florian Müllner
a3dce37094 window-list: Adjust to renamed gesture
The action to bring up the OSK is now gesture-based, and was therefore
renamed.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/576
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/421>
2025-09-08 14:18:22 +02:00
Florian Müllner
9e11ec9940 cleanup: Remove unused eslint-disable directives
The 'camelcase' rule only applies to variables and properties,
not to function names are getter/setter.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/413>
2025-06-18 23:31:15 +00:00
Florian Müllner
3a76b9eec4 cleanup: Remove unused catch bindings
Optional catch bindings have been supported for quite a while now,
so we can treat unused error bindings in catch statements like
any other unused variable.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/413>
2025-06-18 23:31:15 +00:00
Florian Müllner
0081bd0d99 window-list: Animate transitions to/from overview
Instead of abruptly hiding/showing the window list, slide it out/in
when transitioning to/from the overview.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/568
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/412>
2025-06-17 15:44:23 +00:00
Florian Müllner
76514e8b23 window-list: Adjust to workspace-indicator changes
Keep the `.panel-button` class to get the expected hover/focus/active
styling when using a regular menu button, but remove the horizontal
padding when using previews for fittsability.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:12 +02:00
Florian Müllner
1899d502a9 workspace-indicator: Remove workspace names from prefs
Now that names can be changed from the extension itself, we no
longer need to expose them in the prefs dialog.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
762903618d workspace-indicator: Allow changing workspace names from menu
Instead of requiring the user to open the prefs dialog to change
workspace names, make the menu items themselves editable.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
b5ac041c1a workspace-indicator: Include workspace settings
While the "Multitasking" panel in Settings already exposes workspace
settings, it makes sense to expose them in our prefs dialog as well
where they are more in context.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
83d7ae031b workspace-indicator: Refine preview settings
Add a group title, and change the single switch row to radio rows
to explicitly choose between "Previews" and "Workspace Name".

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
17b37ff577 workspace-indicator: Add background when using name label
Panel buttons are flat, so the name+arrow are not immediately
recognizable as a single control. Address this by adding a
background to the button when using the name label.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
ee2c76de1d workspace-indicator: Show full name when using menu
With workspace names becoming a more prominent feature, it makes
sense to expose them without opening the menu.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
01d8d4871e workspace-indicator: Expose active workspace name on menu
When not using previews, we currently use a numerical presentation
like "1 / 4" for the top bar button. We will change that to use
the active workspace name instead.

As the menu already has to track workspace switches and name changes,
expose the active workspace name there, so that the button doesn't
have to duplicate the tracking.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
1186b2a7a0 workspace-indicator: Include menu with previews
The menu is currently only used when previews are disabled. But
as we are going to use the menu for changing workspace names, it
should be always available. So add it unconditionally, and show
it on right-click when using previews.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
2840a6b364 workspace-indicator: Remove preview labels
Previews are no longer used in the menu, so they are never
shown with labels.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
990e340366 workspace-indicator: Add back plain workspaces menu
Unlike in the top bar, the previews in the menu were not too
successful. Change back to a regular menu with a list of workspace
names.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
c9678e89d2 workspace-indicator: Split out WorkspacesMenu
The menu currently only contains the previews without any logic
on its own. This is about to change, so split the menu into a
separate class.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
53ba3ce620 workspace-indicator: Remove left-over variable
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
0ad959de1e window-list: Only remove fullscreen tracking in overview
Since commit 981e8e42e2, we untrack chrome in the overview to avoid
fullscreen tracking interfering with hiding the window list in the
overview.

However this also means that we no longer contribute to the struts
while in the overview, which can lead to unwanted window resizes
around the transition.

So instead of fully untracking the actor, retrack without fullscreen
tracking.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/409>
2025-06-17 13:13:09 +02:00
Florian Müllner
a3ff3c79b2 Revert "window-list: Fix initial visibility"
Since we no longer track fullscreen state in the overview,
the workaround is no longer necessary.

This reverts commit 6ee4205f1e.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/409>
2025-06-17 13:13:09 +02:00
Florian Müllner
b0b0f527be screenshot-window-sizer: Adapt to maximization changes
Mutter now exposes the is_maximized() method for checking for
full maximization, and the plain (un)maximize() methods no
longer cover partial maximization.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/398>
2025-05-07 13:17:56 +02:00
Florian Müllner
30f4beb3e1 window-list: Adapt to maximization changes
Mutter now exposes the is_maximized() method for checking for
full maximization, and the plain (un)maximize() methods no
longer cover partial maximization.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/398>
2025-05-07 13:16:34 +02:00
Daniel Buch Hansen
e06b1e8236 windowsNavigator: Adjust to get_key_focus() changes in Clutter
Clutter.Stage.get_key_focus() now always returns the value of
the Clutter.Stage.keyFocus property, whereas previously it
would return the stage itself when no explicit focus was set.

Adjust the code accordingly.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/561
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/395>
2025-04-14 18:57:14 +02:00
Stuart Hayhurst
27d463f572 meta: Correct case and styling for "Launch new instance" and "windowNavigator"
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/392>
2025-03-15 15:31:02 +00:00
Victor Kareh
f4e044b4fe apps-menu: Scroll application into view when active
When an ApplicationMenuItem becomes active, scroll the application
scroll box so that it becomes visible. This stopped working when the
gnome-shell API changed from getActive()/setActive() to the active
GObject property.

Closes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/562

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/391>
2025-03-13 18:56:07 -04:00
Florian Müllner
3b4e241b26 apps-menu: Stop tracking icon-theme changes
St.Icon already tracks theme change, so this is no longer necessary.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/390>
2025-03-13 22:46:51 +01:00
Florian Müllner
29d11e5879 screenshot-window-sizer: Adjust to mutter change
Mutter no longer hides the `event` parameter in Meta.KeyHandlerFuncs,
so update the function to account for the additional parameter.

Closes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/559

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/388>
2025-03-03 16:18:52 +01:00
Florian Müllner
aa5df48c45 apps-menu: Set BoxLayout orientation
Use the new `orientation` property instead of `vertical`, as the
latter is deprecated.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/380>
2025-01-27 20:02:36 +01:00
Florian Müllner
3929dd86bc workspace-indicator: Set BoxLayout orientation
Use the new `orientation` property instead of `vertical`, as the
latter is deprecated.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/380>
2025-01-27 20:02:36 +01:00
Florian Müllner
01f7df1e8a window-list: Use correct params when re-tracking chrome
Since commit 981e8e42, we temporarily untrack the window-list actor
while in the overview.

However as we don't pass pass the chrome parameters when re-tracking
chrome, the window-list no longer contributes to struts or tracks
fullscreen changes, whoops.

Make sure to pass the original parameters when re-tracking chrome
to restore the expected behavior.

Fixes: 981e8e42 ("window-list: Untrack chrome while in overview")
Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/550
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/379>
2025-01-15 12:39:22 +01:00
Florian Müllner
83c41bad30 places-menu: Remove left-over modeline
This one slipped through commit 253ddb864 ...

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/370>
2025-01-10 13:40:03 +01:00
Florian Müllner
2a45d8c145 window-list: Add attention indicator
Some X11 clients still rely on the traditional urgent/demand-attention
hints instead of notifications to request the user's attention.

Support these by adding a visual indication to the corresponding
buttons, based on the visual indicator in libadwaita's tabs.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/543
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/366>
2025-01-08 12:46:37 +00:00
Florian Müllner
77a11fd9cd workspace-indicator: Do not only exclude DESKTOP windows
There are other window types that should be excluded from workspace
previews, including more common ones like menus. Instead of checking
for a variety of window types, delegate the decision to mutter by
checking for the `skip-taskbar` property.

(The internal `skip-pager` property would be more apt in this case,
but as it only differs from `skip-taskbar` for X11 clients that
explicitly set one and not the other, it shouldn't matter in practice)

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/537
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/363>
2024-12-04 22:20:45 +00:00
Florian Müllner
981e8e42e2 window-list: Untrack chrome while in overview
The window list is set up to track the monitor's fullscreen state.
Monitors are never considered in fullscreen while showing the overview,
so if shell's layout manager updates the fullscreen visibility after
we hid the bottom bar, it ends up being visible in the overview.

To avoid this, untrack the actor while the overview is visible.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/509
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/364>
2024-12-03 12:28:06 +01:00
Florian Müllner
4a841dfd49 window-list: Fix disconnecting window signals in context menu
Menus are not actors themselves, so they are not "destroyables" in
terms of automatic signal disconnection, with the result that we
currently leak window signals.

Fix this by using the menu's actor as tracked object, so the signals
are disconnected automatically when the actor is destroyed.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/474
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/362>
2024-12-02 13:10:50 +01:00
Florian Müllner
8957f488dc places-menu: Update fake mount operation source
gnome-shell now checks for an associated drive to automatically
cancel the operation on disconnect, so fake the corresponding
method. While at it, drop the `get_icon()` method that hasn't
been used for quite a while now.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/508
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/361>
2024-11-30 14:56:27 +01:00
Florian Müllner
e0b68a319e places-menu: Catch errors during async operation
Uncaught errors in async functions don't provide a good stack, because
the unhandled promise rejection masks the error that triggered it.

While we already handle *expected* errors inside the function, make
sure we catch all errors to get useful stack information for unexpected
errors as well.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/361>
2024-11-30 14:48:10 +01:00
Florian Müllner
3f1aa9f221 screenshot-window-sizer: Mention shortcut in description
Loosely based on the README entry, so users know how to actually use the
extension.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/541
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/358>
2024-11-25 14:37:37 +00:00
Florian Müllner
568826e489 places-menu: Inherit from PopupImageMenuItem
PopupImageMenuItems used to position the icon after the label,
so we ended up with our own icon+label items.

However the icon position was changed years ago in the shell, so
inherit from PopupImageMenuItem instead.

This does not only simplify the code a bit, but also pulls in
features we are currently missing, like a11y labelling.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/542
2024-11-19 16:00:31 +01:00
Florian Müllner
265935e14b cleanup: Use consistent line break style in meson.build
Either have all arguments on the same line, or have a separate
line for every argument (that is, don't special-case the first
arg).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353>
2024-10-20 22:23:28 +00:00
Florian Müllner
253ddb8642 extensions: Remove modelines
We already include an .editorconfig that is supported by many
editors, including emacs, so no need to repeat an emacs-specific
modeline in every source file.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353>
2024-10-20 22:23:28 +00:00
Florian Müllner
46a4fa0976 cleanup: Use null for nick/blurb in ParamSpecs
As they are only used by gstreamer for gst-inspect & other tools.
Projects like mutter and gtk have already completely dropped them,
so follow their lead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/347>
2024-10-17 22:52:17 +02:00
Florian Müllner
a81f4f4885 places-menu: Add nautilus-specific items
Both the "Starred" and "Network" locations are internal to nautilus
and not exposed to gvfs.

We can still support them by opening them explicitly in nautilus,
so add corresponding places if nautilus is installed and set up
as default file manager.

After this change, the list of places should be consistent with
the sidebar in the file manager again.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/522
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/340>
2024-10-16 14:38:09 +00:00
Florian Müllner
8a62e491a8 places-menu: Add "Trash" item
While much less prominent then "Recent", let's include it for
consistency with nautilus.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/340>
2024-10-16 14:38:09 +00:00
Florian Müllner
8da874355c places-menu: Add "Recent" item
Recent files are much more prominent in Nautilus nowadays, so it makes
sense to include it in the list of places.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/340>
2024-10-16 14:38:09 +00:00
Florian Müllner
f0e7358de4 places-menu: Stop sorting special locations
Nautilus uses a fixed order rather than sorting items alphabetically,
so do the same.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/340>
2024-10-16 14:38:09 +00:00
Florian Müllner
c4e344f1d7 places-menu: Drop user-special dirs
Nautilus no longer special-cases user directories, and instead
added them to the default bookmarks, so the user can customize
which they want to have displayed.

We already show bookmarked places, so just dropping the hard-coded
list gives us the same locations as nautilus.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/340>
2024-10-16 14:38:09 +00:00
Florian Müllner
411da924a7 places-menu: Drop root location
Nautilus no longer exposes it, so stop including it here as well.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/340>
2024-10-16 14:38:09 +00:00