19055 Commits

Author SHA1 Message Date
Sam Hewitt
a32f735ec0 style: Use unlinked rounded buttons for notifications
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3427>
2024-08-02 13:37:44 -02:30
Sam Hewitt
ff4b9fdb08 style: Use unlinked rounded buttons for notifications
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3383>
2024-08-02 15:16:46 +00:00
Emin Tufan Çetin
2e2c5e1cec Update Turkish translation 2024-08-01 18:00:21 +00:00
Sebastian Wick
8e39015b11 tools: Import shell-lg from halfline's os-debug-scripts
It allows interacting with gnome-shell in the same way as looking glass
but does so from a terminal. This can be really useful in some
situations.

Imported from: https://github.com/halfline/os-debug-scripts

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3430>
2024-07-31 05:29:04 +00:00
Florian Müllner
105abab1e4 js: 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/-/merge_requests/3431>
2024-07-30 18:20:55 +00:00
Florian Müllner
949af34522 cleanup: Remove left-over config file
In the early days of shell development, someone accidentally pushed
their eclipse configuration. Most of it was removed at one point,
but one file was missed.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3432>
2024-07-30 17:55:46 +00:00
sorelz
9fc19c9cdb doc: Link to GNOME handbook tutorial for toolbox development
Link gnome-shell's toolbox README to the troubleshooting section
of the toolbox page at handbook.gnome.org, to make it easier to
find information on common toolbox development issues.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7598
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3424>
2024-07-30 12:44:40 -04:00
Scrambled 777
c8f0722ce5 Update Hindi translation 2024-07-29 18:38:34 +00:00
Julian Sparber
7a874334ef overview: Drop unused ShellInfo object
This object isn't used anymore and it's really easy to create a new
system notification via the appropriate notification source.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3387>
2024-07-29 14:57:42 +00:00
Julian Sparber
ab4f80b8ae appFavorites: Display its own notification for every pin/unpin
Show a notification for each user action instead of updating the
notification currently displayed when the user pins or unpins.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3387>
2024-07-29 14:57:42 +00:00
Tuomas Nurmi
a21558d67f status/network: Fix enterprise network connecting from panel
Use the right variable. A static WirelessNetwork._securityTypes
variable does exist, but the correct variable when checking
autoconnect possibility is this._securityType; this._securityTypes
is undefined, causing clicking an enterprise network name in panel
network selector do nothing instead of properly opening GNOME
Settings panel.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3426>
2024-07-29 16:27:26 +02:00
Will Thompson
3d06134545 Make startup animation use async functions throughout
During session startup, we have the following chain:

    LayoutManager._prepareStartupAnimation()
    `- LayoutManager._startupAnimation()
       `- LayoutManager._startupAnimationComplete()       (a)
       | or
       `- LayoutManager._startupAnimationGreeter()        (b)
       | or
       `- LayoutManager._startupAnimationSession()        (c)
          `- Overview.runStartupAnimation()               (d)
             `- OverviewActor.runStartupAnimation()       (e)
                `- ControlsManager.runStartupAnimation()  (f)

Branch (b) calls LayoutManager._startupAnimationComplete() once the
animation is complete. Branch (c) does the same, except that
ControlsManager.runStartupAnimation() is an async function that awaits
LayoutManager.ensureAllocation().

LayoutManager._prepareStartupAnimation() is an `async` function, and its
caller catches & logs any error it raises.

Previously, ControlsManager.runStartupAnimation() – (f) in the above
diagram – was declared `async`, because it uses `await` internally, but
also accepted a callback, which was called on successful completion of
the function and the animation it triggers.

If an exception is raised during execution of the function, its callback
would never be called, and because the promise it implicitly returns is
discarded, the exception would never be logged either. And, stepping a
few levels up the call stack, the callback that
LayoutManager._startupAnimationSession() (c) provided would never be
called, and so LayoutManager._startupAnimationComplete() would never be
called, meaning the cover pane that prevents input would never be
removed and the session would be unusable.

Remove the callback parameter from ControlsManager.runStartupAnimation()
(f), and instead make it resolve in the case where the callback would
previously have been called.

Remove the callback parameter from OverviewActor.runStartupAnimation()
(e) – it is just a wrapper around ControlsManager.runStartupAnimation().

Adjust Overview.runStartupAnimation() (d) accordingly: rather than
passing a callback to OverviewActor.runStartupAnimation(), await its
return and then proceed. There is a slight behaviour change here:
previously, in the branch where this._syncGrab() is false, the callback
would be called before calling this.hide(), whereas now this.hide() is
called before the async function returns.

Adjust LayoutManager._startupAnimationSession() and its siblings to be
async, rather than each calling _startupAnimationComplete() directly.
Finally, in _prepareStartupAnimation()  await _startupAnimation() either
succeeding or failing, and in either case call
_startupAnimationComplete(), removing the cover pane that prevents all
input.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3428>
2024-07-28 18:49:59 +01:00
Martin
acfa372d4f Update Slovenian translation 2024-07-26 11:36:44 +00:00
Daniel Rusek
fa1c59ff91 Update Czech translation 2024-07-26 10:18:35 +00:00
Florian Müllner
1403747863 build: Add option to disable portal-helper
The portal login window uses WebKit, which is a security-sensitive
component that not all vendors want to support.

Support that case with a build option, and update the captive
portal handler to use the user's default browser if the portal-helper
is disabled.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3408>
2024-07-25 01:51:17 +00:00
Florian Müllner
4ab1ccf3f2 status/network: Show notification when detecting captive portal
When NetworkManager detects limited connectivity, we currently
pop up the portal helper window immediately. This can both be
disruptive when it happens unexpectedly, and unnoticeable
when it happens during screen lock.

In any case, it seems better to not pop up a window without
explicit user action, so instead show a notification that
launches the portal window when activated.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7688
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3408>
2024-07-25 01:51:17 +00:00
Florian Müllner
57de9ee874 network: Split out CaptivePortalHandler class
The handling of captive portals is going to be extended a bit,
so split out a proper class instead of mixing it in with the
indicator code.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3408>
2024-07-25 01:51:17 +00:00
José Relvas
44beaa0e1d screencastService: Add gstreamer pipeline for h264 low-power hw encode
VA-API low-power encoder profiles (such as vah264lpenc) reduce power consumption by relying entirely on fixed-function hardware blocks.
Use vah264lpenc over vah264enc by default, in order to save on energy and 3D engine capacity.

Signed-off-by: José Relvas <josemonsantorelvas@gmail.com>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3416>
2024-07-25 01:45:06 +00:00
Sebastian Wick
a65e0722f1 lookingGlass: Make it possible to export the DebugControl service
Mutter has a new tool for interacting with mutter with features we don't
expose to users yet. It can be exported as a dbus service but it is not
done so by default. This adds an easy way to do so without having to
remember some JS snippet.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3425>
2024-07-24 22:33:59 +02:00
Chao-Hsiung Liao
de577c1f87 Update Chinese (Taiwan) translation
(cherry picked from commit 93027ab1f40f03d28420ebddd8267646f3912ac7)
2024-07-24 10:12:45 +00:00
sorelz
9569239ec5 appDisplay: Use AppFolderDialog grabHelper to obtain key focus on popup()
When an app folder is opened it would do so without grabbing the
keyboard focus, so one could not navigate with the arrow keys without
pressing Tab. This adds the focus parameter to popup()'s grab, which
sets the key focus to the elements of the folder when it is opened.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3338>
2024-07-21 14:24:57 -04:00
sorelz
a04b35b569 appDisplay: Use navigate_focus() to keep focus after editing app folder title
The AppFolderDialog would lose keyboard focus after editing the title
(likely due to the folder entry grabbing key focus). This commit adds
navigate_focus() to _showFolderLabel() to send key focus back to the
dialog's elements after editing the title.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3338>
2024-07-21 14:24:57 -04:00
sorelz
3061589610 appDisplay: Use navigate_from_event() for keyboard focus in app folders
It wasn't possible to navigate by keyboard inside app folders due
to the focus being grabbed by the dialog. Changed vfunc_key_press_event()
to use the focus manager's navigate_from_event(), which is the same method
used by modal dialogs (also making use of the focus group already assigned
to AppFolderDialog).

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6331
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3338>
2024-07-21 14:24:57 -04:00
Martin
8b0f3144ca Update Slovenian translation 2024-07-19 20:41:47 +00:00
Will Thompson
93b33cf314 overviewControls: Make sure startup animation completes
In commit e69da36095d5093c1c7bec7a9c96c079c0b837f9, Florian Müllner
wrote:

> We currently complete the animation using an onComplete handler,
> which only runs if the corresponding transition was stopped when
> finished.
>
> While it is unexpected that the transition is interrupted, it can
> apparently happen under some circumstances (like VMs with qlx).
> The consequences of that are pretty bad, mainly due to the cover
> pane that prevents input during the animation not getting removed.
>
> Address this by always completing the animation when the transition
> is stopped, regardless of whether it completed or not.

There are effectively four branches of the startup animation:

1. if Meta.is_restart() is true, no animation is run on startup; I
   believe this is the X11-only case of restarting the shell
   mid-session.
2. if Main.sessionMode.isGreeter is true, just the panel is eased onto
   the screen; this is the GDM case.
3. if Main.sessionMode.hasOverview is true, then a whole sequence of
   animations are run; this is the normal session case.
4. otherwise, the whole UI zooms in to full size, and from full
   transparency to full opacity; this is the Initial Setup case.

The fix above handles cases 2 and 4, but not 3. This patch applies the
same fix to case 3, so that the callback is always called on session
startup even if the transition is interrupted.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3422>
2024-07-19 18:57:18 +00:00
Julian Sparber
3c43983ed1 components/autorunManager: Add description to autorun notification
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3168>
2024-07-19 18:51:57 +00:00
Sam Hewitt
94181ea999 style: Text and icon weight adjustments
- bump the font weight of the clock
- lower the font weight of user names
- adjust avatar weight

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3410>
2024-07-19 18:45:44 +00:00
Florian Müllner
6dc07b4181 ci: Rebuild javascript image
The eslint job occasionally fails because node hits an
illegal-instruction error. There's a chance that a package
update fixed that issue in the meantime, so rebuild the image.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3415>
2024-07-19 18:34:25 +00:00
kramo
7fa763d9cc screenshot: Capitalize file names
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3420>
2024-07-19 18:27:12 +00:00
Florian Müllner
b3f699ded8 ci: Bump mutter image
Mutter now depends on a newer libinput version. Bump the image
to pull in that dependency.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3423>
2024-07-19 18:05:19 +00:00
Sabri Ünal
184a5906ce Update Turkish translation 2024-07-19 15:14:19 +00:00
Bilal Elmoussaoui
2a9722cf3a Adapt to required CoglContext params
They used to retrieve it from a global variable which we are trying to
remove from mutter

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3402>
2024-07-15 12:48:36 +02:00
Martin Abente Lahaye
47159f5ca9 ci: Build and publish system extensions
Use gnomeos-build-sysext CI/CD component to build a system extension
for gnome-shell. This is part of on-going efforts discussed here [1].

[1] https://discourse.gnome.org/t/towards-a-better-way-to-hack-and-test-your-system-components/21075

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3390>
2024-07-13 11:59:38 -04:00
Martin Abente Lahaye
2e5c3aec16 ci: Support additional destdir in install-meson-project.sh
To build a system extension we need to:

1. Add dependencies to the container (to build it), and also
2. Add dependencies to the extension (to run it, later).

So there's effectively two locations where we need to install
those dependencies.

See https://discourse.gnome.org/t/towards-a-better-way-to-hack-and-test-your-system-components/21075
See https://gitlab.gnome.org/GNOME/gnome-build-meta/-/issues/837

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3390>
2024-07-13 11:59:38 -04:00
Martin Abente Lahaye
dfafc97205 ci: Support setting libdir in install-meson-project.sh
Besides building custom fedora images,  we will build
system extensions for GNOME OS. Since GNOME OS uses a
a different libdir compared to what meson defaults to,
we must allow setting libdir in this script.

See https://discourse.gnome.org/t/towards-a-better-way-to-hack-and-test-your-system-components/21075
See https://gitlab.gnome.org/GNOME/gnome-build-meta/-/issues/837

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3390>
2024-07-13 11:59:38 -04:00
Sam Hewitt
fc39c32324 lookingGlass: Clean up the stylesheet and improve visuals overall
- shuffle stylesheet around for readability
- change names and classes of elements to be consistent
- added style classes to window list elements so they can be styled
- make sure all elements follow OSD style even in light theme
- clean out some old styles

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7746
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3412>
2024-07-11 19:00:29 +00:00
Sohrab Behdani
459981ef79 osk-layouts: Fixed Persian OSK
Remove duplicate and unnecessary keys, and add missing ones
(e.g. ZWNJ).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3409>
2024-07-11 18:34:25 +00:00
Florian Müllner
811a4103e4 lookingGlass: Include ScrollView in inspector styling
All styling currently happens on the ScrollView child, which
means that instead of a scrollbar inside the dialog to move
the content, we have a scrollbar next to the dialog that moves
the dialog as a whole.

Fix this by simply moving the style classes to the up-most parent.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3414>
2024-07-11 19:50:03 +02:00
Florian Müllner
6f2c99147c lookingGlass: Stop setting font programmatically
Instead, use CSS to request a monospace font selectively where
it makes sense (the evaluator).

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7776
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3413>
2024-07-11 19:27:08 +02:00
Julian Sparber
6e0227ac3d GtkNotificationDaemon: Add ActionInvoked signal
For the notification portal we need to provide the option to use unexported
actions.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3382>
2024-07-11 12:32:33 +00:00
Florian Müllner
1a12bd4f30 accessDialog: Restrict senders
Now that we no longer provide a portal implementation ourselves,
the only expected callers are the GNOME portal implementation
and (since recently) the remote desktop daemon.

Make that explicit and restrict callers to these senders, like
we do for other D-Bus APIs.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3411>
2024-07-11 14:03:22 +02:00
Jonas Dreßler
ac2ed42de5 screencastService: Add gstreamer pipeline for h264 encoding on hardware
Try h264 on intel and AMD hardware using VA-API, using vapostproc
to do the color conversion using specialized hardware. We're not adding
a vaapi pipeline using the color conversion GL shader here, as vapostproc
color conversion should be better suited for anything needed by vaapi
based encoders/decoders.

A capsfilter is used to enforce the use of DMAbuf (memory:DMABuf) with
the new explicit modifier API (format=DMA_DRM).

Also, we're using the new va* gst elements instead of the vaapi* ones
here, as the vaapi* elements are deprecated, while the va* elements are
actively maintained.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2080>
2024-07-09 17:46:07 +00:00
Jonas Ådahl
90f69dcd25 st: Setup color state on nested paint contexts
This requires plumbing the parent paint context around, to get the
current color state of the paint context.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3363>
2024-07-09 17:36:55 +00:00
Jonas Ådahl
401ba0837e st: Adapt to the paint_node() vfunc passing a paint context
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3363>
2024-07-09 17:36:55 +00:00
Jonas Ådahl
6a612e78cb st: Replace 'material' with 'pipeline'
'Material' is an old name for the same Cogl concept, but lets use the
current naming to avoid confusion.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3363>
2024-07-09 17:36:55 +00:00
Scrambled 777
751fedb95c Update Hindi translation 2024-07-05 17:13:54 +00:00
Ekaterine Papava
06dc9d8118 Update Georgian translation 2024-07-05 04:19:54 +00:00
Florian Müllner
e997a0a724
Bump version to 47.alpha
Update NEWS.
2024-06-29 21:45:07 +02:00
Florian Müllner
beb34eb105 popupMenu: Center-align switches
The default align of FILL was fine with the asset-based switches,
as the image would still keep its fixed height. But after the switch
to a pure CSS implementation, the alignment now results in stretched
switches. Fix this by explicitly center-aligning the widget.

Close: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7745
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3403>
2024-06-29 21:29:32 +02:00
Jonas Ådahl
99a36210b6 tests/fittsy: Await leisure before checking fittsiness
Not until we've waited for leisure can we make precise assumptions about
otherwise animated actors sizes and positions, so do that before
checking fittsiness.

This should fix the flakyness of the fittsy test case.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3398>
2024-06-28 21:52:19 +00:00