Commit Graph

18465 Commits

Author SHA1 Message Date
Florian Müllner
6871b7aa20 docs: Document how to build and run gnome-shell
While we use the standard meson build steps, our dependencies
are non-trivial and running the shell can be tricky; it's
certainly worth documenting.

This is also a good opportunity for plugging out toolbox tooling.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3122>
2024-01-27 22:23:24 +01:00
Florian Müllner
05e27fd59a docs: Document C coding style
We have a fair bit of C code, yet don't document the expected
coding style. This is not much of an issue for regular GNOME
contributors as we are following the conventions of the wider
project (glib, gtk, clutter, ...), but it's still better to
spell it out.

Do that by adapting the corresponding documentation from mutter.

Even if much of our C code doesn't match all the new guidelines,
it's good to consolidate the coding style between both projects.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3122>
2024-01-27 22:23:24 +01:00
Florian Müllner
96e27f0e7d docs: Update title of coding style guide
We are about to add a C coding style, so make clear that the
existing coding style doc refers to JS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3122>
2024-01-27 22:23:24 +01:00
Florian Müllner
98464868c7 docs: Move HACKING
Start consolidating project-wide documentation in the docs/ folder.

While at it, change the name `js-coding-style`, which is both less
ominous and allows for an accompanying `c-coding-style`.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3122>
2024-01-27 22:23:10 +01:00
Florian Müllner
c345dac9d9 docs: Use dashes in filenames
Mutter's documentation was extended recently, with files using a
pattern of `some-stuff.md`. There is no strong argument for using
camel case, so switch to the same pattern as mutter to remove some
unnecessary friction for people who contribute to both projects.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3122>
2024-01-27 22:22:11 +01:00
Florian Müllner
77e3ea3451 docs: Use consistent spacing
Sometimes we use a blank line between heading and paragraph,
sometimes we don't. Settle on the former.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3122>
2024-01-27 22:22:11 +01:00
Florian Müllner
0b1dab120f docs: Use mutter.gnome.org URL for API docs
Mutter has a new public website, so use that for its API docs
instead of gitlab pages.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3122>
2024-01-27 22:22:11 +01:00
Florian Müllner
a6d35fdd2a ci: Check snippets in coding style
To avoid having the coding style get out of sync with the actual
coding style in the future, run eslint on the individual snippets
when either the guide or the linter config change.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3146>
2024-01-27 18:18:23 +00:00
Florian Müllner
b496a9cf9f doc: Use valid code in snippets
Some of the code examples use invalid code like `var` as variable
name or declarations in a single-statement context.

Fix those.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3146>
2024-01-27 18:18:23 +00:00
Florian Müllner
01a386b286 doc: Fix style errors in coding style
As we've adapted our coding style, the corresponding documentation
hasn't always caught up. Fix the errors that eslint would point
out if it checked the code snippets.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3146>
2024-01-27 18:18:23 +00:00
Florian Müllner
c5188aebf1 doc: Remove outdated paragraph on quote style
We stopped differentiating between translatable and non-translatable
strings a long time ago.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3146>
2024-01-27 18:18:23 +00:00
Florian Müllner
8a1f44f10a iconGrid: Don't recreate StIcons on icon theme changes
Now that StIcon updates its texture automatically on icon theme
changes, we only have to recreate icon actors that aren't StIcons.

(This probably only applies to the folder icon in the app grid
where the sub-icons do use St.Icon, but making that assumption
feels dodgy with an API as generic as `createIcon()`)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3141>
2024-01-26 23:36:25 +00:00
Florian Müllner
671c242958 st/icon: Automatically update on icon theme changes
St.Icon is very commonly used for displaying themed icons, yet so
far updating the icon on icon theme changes is left to the caller.

Unsurprisingly, very few actually do that, with the result that
for most icons, icon theme changes only take effect after a delay
(say, a color change on hover) or not at all.

This is also inconsistent with GTK, where Gtk.Image will automatically
pick up icon theme changes.

Address this by tracking whether the current icon corresponds to
a themed icon, and update it automatically on theme changes if
it does.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3141>
2024-01-26 23:36:25 +00:00
Sam Hewitt
e97175d2bf calendar: Stylesheet clean up & fixes
- added style class for when there are no world clocks present
- restructured the scss to match the widget structure
- cleaned up padding and font color styles
- improved high contrast support

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7324
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3120>
2024-01-26 16:01:37 -03:30
Florian Müllner
569293fad6 build: Remove dummy gi-docgen dependency
Instead, add a provide to the wrap that allows it to be pulled in
by the `find_program('gi-docgen')` call.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3131>
2024-01-26 13:43:28 +00:00
Florian Müllner
79b0c9c726 util: Handle .rc in version comparisons
We somehow missed that the new version scheme include '.rc' when
adding the comparison function, whoops.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3130>
2024-01-26 13:20:07 +00:00
Florian Müllner
b02460fa63 tests: Fix check for global scope pollution
Since commit c570011 dropped the `with` statement, this bit of
the test has only checked for writes to a specific variable
in the file.

There is no direct replacement for `with` here, the best we can
do (I think) is comparing property names on the global objects
before and after the `eval()` call.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3132>
2024-01-26 13:12:40 +00:00
Florian Müllner
ab40b5c711 tools/toolbox: Remove prepare step when setting up classic
The classic styling is no longer build from a subproject, so
there aren't any submodules that need initializing anymore.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3133>
2024-01-25 22:11:22 +00:00
Florian Müllner
1965ddc24f Add .editorconfig
This should ensure that all editors which support
https://editorconfig.org/ use the correct indentation
with spaces (not tabs) by default.

This is hardly a full specification of our coding style,
but it's a correct subset and better than nothing.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3137>
2024-01-25 16:53:36 +00:00
Sam Hewitt
e58cd282e7 style: Be consistent with Adwaita flat elements in High Contrast
- update drawing mixin for buttons to override HC inset in flat style
- drop outlines for app icons in dash

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3143>
2024-01-25 16:46:41 +00:00
Sam Hewitt
703ac12b4a style: Fix issues with OSD buttons in light style
- update drawing mixin to account for missing always_dark colors
- fix button in app grid folder not being always dark

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3139>
2024-01-25 14:33:46 +00:00
Sam Hewitt
b14623c664 dash: Resolve padding and alignment issues with dash items
- revert a change to y-expand on dash items
- clean up the manual padding on dash items in stylesheet
- fix an issue with the running dot being misaligned

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7322
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3119>
2024-01-24 17:51:16 +00:00
Sam Hewitt
38944e1c8f style: Fix color and margin issue in notification and dialog buttons
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3138>
2024-01-24 14:08:12 +00:00
Fran Dieguez
0c120ca727 Update Galician translation 2024-01-24 00:20:51 +00:00
Allan Day
c991239ca2 data: Add Text Editor to the dash by default
Add another app to the dash, to prevent it from being too empty by
default in some situations.

Fixes #7027

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3135>
2024-01-23 12:07:03 +00:00
Florian Müllner
876ca5d2de ci: Bump mutter image
Mutter's wayland-protocols dependency has been bumped, so pull
in the updated image that satisfies it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3136>
2024-01-23 12:49:23 +01:00
Sabri Ünal
97d8d1a687 Update Turkish translation 2024-01-22 08:32:04 +00:00
Daniel Rusek
2fc89d24aa Update Czech translation 2024-01-22 00:46:52 +00:00
Daniel Rusek
7a9903c6bc Update Czech translation 2024-01-22 00:26:29 +00:00
Florian Müllner
731bd212c1 panel: Actually switch to connectObject()
Fixes: 29ba8ab03c ("panel: Use connectObject() for overview signals")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3129>
2024-01-19 19:29:33 +01:00
Florian Müllner
29ba8ab03c panel: Use connectObject() for overview signals
We expect top bar and activities button to be around for the
entire duration of the session, but some extra caution doesn't
hurt.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3126>
2024-01-19 17:56:25 +00:00
Florian Müllner
10f7344336 panel: Remove unnecessary code
Since commit a466029374, the activities button uses the standard
`:checked` pseudo class in the overview instead of the custom
`:overview`.

As a side effect, the generic handling of the `CHECKED` Atk state
in StWidget now covers the case, and we no longer need to manage
the state explicitly.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3126>
2024-01-19 17:56:25 +00:00
Leorize
dad06fa423 keyboard: Add keyboard model configuration support
Enables the use of a new `xkb-model` dconf key to let user configure
their desired keyboard model.

Also included is additional glue for respecting X11Model set at the
system level (ie. via `localectl`).

For simplicity, this assumes the use of one global keyboard model.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2583>
2024-01-19 14:18:38 +00:00
Florian Müllner
11e9fbf264 windowManager: Fix effects of transient wayland windows
On wayland, transient windows don't use the DIALOG window type,
so any effects that special-case dialogs currently pick the
wrong animation.

Fix that with an "animation window type" that is used instead
of the real type.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3125>
2024-01-18 18:15:19 +01:00
Robert Mader
5ab3177acd tests/build: Silence meson deprecation warning
This produced the following warning:
```
DEPRECATION: Project uses feature that was always broken, and is now
deprecated since '1.3.0': str.format: Value other than strings,
integers, bools, options, dictionaries and lists thereof..
```

The resulting value of `SHELL_BACKGROUND_IMAGE` was indeed bogus, not
containing a proper file path.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3123>
2024-01-18 14:25:36 +01:00
Shmuel Melamud
e7734e30bd st/drawing-area: Merge ClutterCanvas to StDrawingArea
Since StDrawingArea is the only user of ClutterCanvas, it is possible
to move ClutterCanvas completely out of Mutter to gnome-shell. This
allows to remove another Cairo dependency from Mutter.

This patch merges ClutterCanvas code extracted from Mutter to
StDrawingArea.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3098>
2024-01-17 09:41:40 +00:00
Florian Müllner
ccdd3f5f53 popupMenu/switch: Follow "show-status-shapes" setting
Whether or not switches include shapes to indicate their ON/OFF
state is currently controlled by the stylesheet.

However there are use cases for both using the HighContrast style
without shapes, and for using shapes with the regular styesheet,
so follow the newly added "show-status-shapes" setting instead.

https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2675

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3107>
2024-01-17 04:30:11 +00:00
Florian Müllner
672ca4a1c5 popupMenu/switch: Use icons for state indicators
The indicators are currently part of the background image in the
high contrast theme. Using symbolic icons instead allows separating
the switch shapes from the high-contrast setting in the future.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3107>
2024-01-17 04:30:11 +00:00
Florian Müllner
3dec080324 data: Strip blanks from SVG icons
The size reduction will be modest, but given that there's no downside,
it's still a good idea.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3107>
2024-01-17 04:30:11 +00:00
Florian Müllner
2df9b025eb ci: Bump mutter image
... to pull in an up-to-date gsettings-desktop-schemas version.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3107>
2024-01-17 04:30:11 +00:00
Florian Müllner
7e0209f905 build: Make g-ir-scanner warnings fatal when werror is set
This should help catching problems with introspection in CI.

Adapted from Sebastian Wick's corresponding mutter change
in https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3528.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3121>
2024-01-16 23:51:13 +00:00
Barnabás Pőcze
c227d0b38e status/backlight: Do only one dbus call per local change
The values of the two control widgets are syncronized, meaning
that both emit signals when the local value changes, regardless
which one is visible and is actually used by the user.

This is not ideal because it leads to two dbus calls
per local change. To alleviate this, only consider
changes from the widget that is visible.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3086>
2024-01-16 23:30:42 +00:00
Barnabás Pőcze
be944ff2dc status/backlight: Fix keyboard backlight infinite loop
The logic could enter an infinite loop because it tried to
propagate local changes to g-s-d that were caused by signals sent
by g-s-d. For example:

  1. slider is set to 50
  2. Set(50) dbus call is sent
  3. slider is set to 51
  4. Set(51) dbus call is sent
  5. PropertiesChanged arrives due to Set(50)
  6. this._sliderItem.value is set to 50
  7. notify::value is emitted from this._sliderItem
  8. Set(50) dbus call is sent
  9. PropertiesChanged arrives due to Set(51)
 10. this._sliderItem.value is set to 51
 11. notify::value is emitted from this._sliderItem
 12. Set(51) dbus call is sent

To alleviate this issue, block signal handlers when the local state is
changed due to a remote event.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7111

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3086>
2024-01-16 23:30:42 +00:00
A S Alam
f2e51cb722 Update Punjabi translation 2024-01-16 13:35:23 +00:00
Sam Hewitt
7abe91918f style: Add lockscreen style to entry drawing mixin
- include style condition to entry drawing mixin to accommodate transparent bg on lockscreen
- see https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6802 and https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3109#note_1970652

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7326
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3118>
2024-01-15 22:45:25 +00:00
Florian Müllner
17b7162121 closeDialog: Close existing dialogs on shutdown
Otherwise mutter will request to hide the dialog when the meta
context is destroyed, but at the JS context has already shut down,
resulting in a crash.

Close https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7328

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3117>
2024-01-15 22:40:47 +00:00
Florian Müllner
655eb672d6 tools/toolbox: Add meson test convenience wrapper
It can be fairly tedious to enter a toolbox and invoke `meson test`
with the right build directory, so add a companion script to the
existing meson-build.sh to handle that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3114>
2024-01-15 17:27:46 +00:00
Florian Müllner
96ecdba855 tools/toolbox: Expose --wipe meson flag
It's useful when the existing build directory became invalid,
for instance after a meson update, and exposing it directly
from the wrapper script is more convenient than removing the
directory or entering the toolbox manually to invoke meson.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3113>
2024-01-15 17:18:09 +00:00
Florian Müllner
26e8408b92 tools/toolbox: Consistently handle option parsing failures
`getopt` already prints a message on parse errors, but it still
seems like good style to point to --help as we do elsewhere.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3113>
2024-01-15 17:18:09 +00:00
Florian Müllner
f1422dff83 tools/toolbox: Consistently abort on failure
Unlike the other scripts, meson-build currently doesn't set
the `-e` option. The script is mainly a wrapper around a single
toolbox call, but it means that any errors during option parsing
print a warning, but are otherwise ignored.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3113>
2024-01-15 17:18:09 +00:00