diff --git a/.eslintrc.yml b/.eslintrc.yml
index 5e3347d3a..018e857f7 100644
--- a/.eslintrc.yml
+++ b/.eslintrc.yml
@@ -1,3 +1,8 @@
extends:
- ./lint/eslintrc-gjs.yml
- ./lint/eslintrc-shell.yml
+overrides:
+ - files:
+ - js/ui/init.js
+ parserOptions:
+ sourceType: module
\ No newline at end of file
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 97aff4027..38c3df836 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -123,7 +123,7 @@ js_check:
- .gnome-shell.fedora:34
stage: review
script:
- - find js -name '*.js' -exec js78 -c '{}' ';' 2>&1 | tee $JS_LOG
+ - find js -name '*.js' $(printf "! -wholename %s " $(cat .jscheckignore)) -exec js78 -c '{}' ';' 2>&1 | tee $JS_LOG
- (! grep -q . $JS_LOG)
artifacts:
paths:
diff --git a/.jscheckignore b/.jscheckignore
new file mode 100644
index 000000000..7313eb4af
--- /dev/null
+++ b/.jscheckignore
@@ -0,0 +1 @@
+js/ui/init.js
\ No newline at end of file
diff --git a/js/js-resources.gresource.xml b/js/js-resources.gresource.xml
index 6dc01b924..93d5932f5 100644
--- a/js/js-resources.gresource.xml
+++ b/js/js-resources.gresource.xml
@@ -64,6 +64,7 @@
ui/ibusCandidatePopup.js
ui/iconGrid.js
ui/inhibitShortcutsDialog.js
+ ui/init.js
ui/kbdA11yDialog.js
ui/keyboard.js
ui/layout.js
diff --git a/js/ui/init.js b/js/ui/init.js
new file mode 100644
index 000000000..a0fe63343
--- /dev/null
+++ b/js/ui/init.js
@@ -0,0 +1,6 @@
+import { setConsoleLogDomain } from 'console';
+
+setConsoleLogDomain('GNOME Shell');
+
+imports.ui.environment.init();
+imports.ui.main.start();
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
index 4bc89ab49..0c8451d64 100644
--- a/po/POTFILES.skip
+++ b/po/POTFILES.skip
@@ -1,3 +1,4 @@
data/org.gnome.Shell@wayland.service.in
data/org.gnome.Shell@x11.service.in
+js/ui/init.js
subprojects/extensions-tool/src/templates/indicator/extension.js
diff --git a/src/gnome-shell-plugin.c b/src/gnome-shell-plugin.c
index 39af545ac..5364f043a 100644
--- a/src/gnome-shell-plugin.c
+++ b/src/gnome-shell-plugin.c
@@ -106,7 +106,7 @@ gnome_shell_plugin_start (MetaPlugin *plugin)
{
GnomeShellPlugin *shell_plugin = GNOME_SHELL_PLUGIN (plugin);
GError *error = NULL;
- int status;
+ uint8_t status;
GjsContext *gjs_context;
ClutterBackend *backend;
@@ -126,13 +126,10 @@ gnome_shell_plugin_start (MetaPlugin *plugin)
gjs_context = _shell_global_get_gjs_context (shell_plugin->global);
- if (!gjs_context_eval (gjs_context,
- "imports.ui.environment.init();"
- "imports.ui.main.start();",
- -1,
- "",
- &status,
- &error))
+ if (!gjs_context_eval_module_file (gjs_context,
+ "resource:///org/gnome/shell/ui/init.js",
+ &status,
+ &error))
{
g_message ("Execution of main.js threw exception: %s", error->message);
g_error_free (error);