Giter Site home page Giter Site logo

oae / gnome-shell-extensions-sync Goto Github PK

View Code? Open in Web Editor NEW
295.0 10.0 19.0 566 KB

Syncs gnome shell keybindings, tweaks settings and extensions with their configuration across all gnome installations

Home Page: https://extensions.gnome.org/extension/1486/extensions-sync/

License: GNU General Public License v2.0

JavaScript 6.26% TypeScript 93.66% CSS 0.08%
gnome-shell-extension gjs gnome extensions-sync gist typescript gitlab syncs-gnome gnome-installations rollupjs

gnome-shell-extensions-sync's Introduction

Extensions Sync

ts opensource licence latest compare

Syncs gnome shell keybindings, tweaks settings and extensions with their configuration across all gnome installations

Provider Synced Data Other Settings

Installation

From Git

git clone https://github.com/oae/gnome-shell-extensions-sync.git
cd ./gnome-shell-extensions-sync
yarn install
yarn build
ln -s "$PWD/dist" "$HOME/.local/share/gnome-shell/extensions/[email protected]"

From Ego

You can install it from here

Usage

  • You can select the data types that are going to be saved in the settings.

For Github

  1. Create a new gist from here I suggest you make it secret. You will need the gist id for this. You can find it in the url after username. For example on gist url https://gist.github.com/username/f545156c0083f7eaefa44ab69df4ec37, gist id will be f545156c0083f7eaefa44ab69df4ec37. Guide
  2. Create a new token from here. Only gist permission is needed since we edit the gists. Guide
  3. Open extension settings, select the Github provider and fill gist id from first step and user token from second step.

For Gitlab

  1. Create a new snippet from here I suggest you make it private. You will need the snippet id for this. You can find it in the url. For example on snippet url https://gitlab.com/-/snippets/324234234, snippet id will be 324234234. Guide
  2. Create a new token from here. Only api scope is needed. Guide
  3. Open extension settings, select the Gitlab provider and fill snippet id from first step and user token from second step.

For Local

  1. Select a file that has read/write permission by your active user. (default backup file is in ~/.config/extensions-sync.json)

Cli Usage

You can trigger upload download operations using busctl.

busctl --user call org.gnome.Shell /io/elhan/ExtensionsSync io.elhan.ExtensionsSync save # uploads to server
busctl --user call org.gnome.Shell /io/elhan/ExtensionsSync io.elhan.ExtensionsSync read # downloads to pc

Development

  • This extension is written in Typescript and uses rollup to compile it into javascript.

  • To start development, you need nodejs installed on your system;

    • Clone the project

      git clone https://github.com/oae/gnome-shell-extensions-sync.git
      cd ./gnome-shell-extensions-sync
    • Install dependencies and build it

      yarn install
      yarn build
      ln -s "$PWD/dist" "$HOME/.local/share/gnome-shell/extensions/[email protected]"
    • During development you can use yarn watch command to keep generated code up-to-date.

gnome-shell-extensions-sync's People

Contributors

dependabot[bot] avatar hrqmonteiro avatar hugoferrant avatar oae avatar paysonwallach avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gnome-shell-extensions-sync's Issues

Update for Gnome 40

Hi πŸ‘‹πŸΌ !

Can you update and publish a version of this great extension for Gnome 40 ?

yarn: libraries not found

When trying to build this project, I get the following error:

> yarn build
yarn run v1.22.19
$ yarn run lock:types && yarn run build:types && yarn run build:ts && yarn run build:extension
$ cross-env XDG_DATA_DIRS=$XDG_DATA_DIRS:/usr/share/gnome-shell:/usr/lib/mutter-10 yarn run gi-ts config --lock
$ /home/lith/gnome-shell-extensions-sync/node_modules/.bin/gi-ts config --lock
Generating local lock file for configuration...
$ yarn run clean:types && gi-ts generate
$ rm -rf ./@types
Loading docs.json...
Finding GIR files...
Using cached docs-lock.json
Resolving libraries...
    Error: Missing Libraries!
    .The following libraries were not found: Gtk, Soup, Gio, GObject, Gdk, 
    GdkPixbuf, GLib.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

It seems that some of the libraries listed in docs.json are not available? That's my guess at least.

console is not defined

HI, I am using Pop OS 21.10 and I just faced this "console is not defined" error

I don't know if it's an issue or not but it just appeared from nothing because I was using the extension before without this error

Here is the error:
image

Settings for the extension can't be displayed

On trying to open the settings for this extension, I receive the following message:

Something's gone wrong. We're very sorry, but there's been a problem: the settings for this extension can't be displayed. We recommend that you report the issue to the extension authors.

I'm using Ubuntu 20.04 with Gnome 3.36.8.

The error message includes the following technical details.

TypeError: providerSelectionContainer.append is not a function

Stack trace:
  _init@/home/paddy/.local/share/gnome-shell/extensions/[email protected]/prefs.js:102:40
  createNotebook@/home/paddy/.local/share/gnome-shell/extensions/[email protected]/prefs.js:1514:35
  _init@/home/paddy/.local/share/gnome-shell/extensions/[email protected]/prefs.js:1507:18
  buildPrefsWidget@/home/paddy/.local/share/gnome-shell/extensions/[email protected]/prefs.js:1522:36
  _init@resource:///org/gnome/Shell/Extensions/js/extensionsService.js:207:40
  OpenExtensionPrefsAsync/<@resource:///org/gnome/Shell/Extensions/js/extensionsService.js:122:28
  asyncCallback@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:132:13
  run@resource:///org/gnome/Shell/Extensions/js/dbusService.js:175:20
  main@resource:///org/gnome/Shell/Extensions/js/main.js:19:13
  run@resource:///org/gnome/gjs/modules/script/package.js:222:19
  start@resource:///org/gnome/gjs/modules/script/package.js:206:5
  @/usr/share/gnome-shell/org.gnome.Shell.Extensions:1:17

I tried uninstalling the extension, restarting the computer and reinstalling the extension, but that didn't help.

I have no idea how to understand, diagnose or fix this problem.

[UX] Make upload and download icons look less similar.

UX problem

From a distance and on hi-res displays it is difficult to see what way that the arrow in the icons for Upload and Download.

Possible solution

Make the arrow heads bigger of more clear.

I looked for a suitable GTK icon but could not find one.

Save dconf-editor settings too

In addition to gnome-extensions, tweaks and keybindings, I use dconf-editor to set very specific desktop preferences like dock settings (delay, height, transparency for example) etc. Can we save that too?

Sync to file

Since GNOME has the feature to connect cloud accounts, I thought this extension probably supports those. Sadly not. Would be cool if you could implement syncing to a file, so I could use my Nextcloud to sync my extensions

corrupts menu functionality

corrupts menus from being able to search and display on open specific settings.

This happens for Gno-Menu and Applications Menu, probably most others. I tracked it down to this sync extension corrupting the /.config/dconf/user file.....

Set Gist ID and token programmatically ?

Could it be possible to set the gist ID and token by command line ? I started to write a script that auto install Gnome Shell Extensions, and if I could set the ID and token in that script, everything could be done during the install.

Thanks! Nice extension by the way.

Can't install extensions

[extensions-sync] [api] got read request, reading settings...
[extensions-sync] [api] read settings from Github successfully
[extensions-sync] [data] updating extensions settings in local machine
[extensions-sync] [extension-provider] downloading extensions: [email protected],[email protected],color-picker@tuberry,[email protected]@gmail.com,[email protected],[email protected],blur-my-shell@aunetx,[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected]
[extensions-sync] [data] updating keybindings settings in local machine
[extensions-sync] [data] updating tweaks settings in local machine
[extensions-sync] [shell] loaded settings for /org/gnome/shell/extensions/user-theme/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/shell/extensions/status-area-horizontal-spacing/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/shell/extensions/espresso/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/shell/extensions/gtktitlebar/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/shell/extensions/blur-my-shell/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/shell/extensions/panelScroll/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/shell/extensions/blur-my-shell/overview/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/shell/extensions/blur-my-shell/appfolder/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/shell/extensions/blur-my-shell/panel/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/shell/extensions/blur-my-shell/dash-to-dock/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/shell/extensions/blur-my-shell/applications/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/shell/extensions/blur-my-shell/hidetopbar/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/shell/extensions/appindicator/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/shell/extensions/date-menu-formatter/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/desktop/calendar/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/desktop/input-sources/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/desktop/interface/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/desktop/peripherals/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/desktop/screensaver/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/desktop/sound/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/desktop/wm/preferences/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/shell/extensions/clipboard-history/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/shell/extensions/round-system-menu-buttons/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/shell/extensions/gsconnect/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/desktop/wm/keybindings/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/shell/keybindings/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/settings-daemon/plugins/media-keys/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/desktop/background/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
[extensions-sync] [shell] loaded settings for /org/gnome/mutter/
JS WARNING: [resource:///org/gnome/gjs/modules/core/overrides/Gio.js 422]: Too many arguments to method Gio.IOStream.close_async: expected 3, got 4
JS ERROR: Error: Unexpected response: Bad Request
installExtension/</<@/home/nameduser/.local/share/gnome-shell/extensions/[email protected]/extension.js:1747:31
JS ERROR: Error: Unexpected response: Bad Request
installExtension/</<@/home/nameduser/.local/share/gnome-shell/extensions/[email protected]/extension.js:1747:31
JS ERROR: Error: Unexpected response: Bad Request
installExtension/</<@/home/nameduser/.local/share/gnome-shell/extensions/[email protected]/extension.js:1747:31
JS ERROR: Error: Unexpected response: Bad Request
installExtension/</<@/home/nameduser/.local/share/gnome-shell/extensions/[email protected]/extension.js:1747:31
JS ERROR: Error: Unexpected response: Bad Request
installExtension/</<@/home/nameduser/.local/share/gnome-shell/extensions/[email protected]/extension.js:1747:31
JS ERROR: Error: Unexpected response: Bad Request
installExtension/</<@/home/nameduser/.local/share/gnome-shell/extensions/[email protected]/extension.js:1747:31
JS ERROR: Error: Unexpected response: Bad Request
installExtension/</<@/home/nameduser/.local/share/gnome-shell/extensions/[email protected]/extension.js:1747:31
JS ERROR: Error: Unexpected response: Bad Request
installExtension/</<@/home/nameduser/.local/share/gnome-shell/extensions/[email protected]/extension.js:1747:31
JS ERROR: Error: Unexpected response: Bad Request
installExtension/</<@/home/nameduser/.local/share/gnome-shell/extensions/[email protected]/extension.js:1747:31
JS ERROR: Error: Unexpected response: Bad Request
installExtension/</<@/home/nameduser/.local/share/gnome-shell/extensions/[email protected]/extension.js:1747:31
JS ERROR: Error: Unexpected response: Bad Request
installExtension/</<@/home/nameduser/.local/share/gnome-shell/extensions/[email protected]/extension.js:1747:31
JS ERROR: Error: Unexpected response: Bad Request
installExtension/</<@/home/nameduser/.local/share/gnome-shell/extensions/[email protected]/extension.js:1747:31
JS ERROR: Error: Unexpected response: Bad Request
installExtension/</<@/home/nameduser/.local/share/gnome-shell/extensions/[email protected]/extension.js:1747:31
JS ERROR: Error: Unexpected response: Bad Request
installExtension/</<@/home/nameduser/.local/share/gnome-shell/extensions/[email protected]/extension.js:1747:31
JS ERROR: Error: Unexpected response: Bad Request
installExtension/</<@/home/nameduser/.local/share/gnome-shell/extensions/[email protected]/extension.js:1747:31
JS ERROR: Error: Unexpected response: Bad Request
installExtension/</<@/home/nameduser/.local/share/gnome-shell/extensions/[email protected]/extension.js:1747:31
JS ERROR: Error: Unexpected response: Bad Request
installExtension/</<@/home/nameduser/.local/share/gnome-shell/extensions/[email protected]/extension.js:1747:31
JS ERROR: Error: Unexpected response: Bad Request
installExtension/</<@/home/nameduser/.local/share/gnome-shell/extensions/[email protected]/extension.js:1747:31

Missing settings of some extensions

Hi,
very useful extension, but some extensions are not supported. I'd say the problem is that extensions with different name in uuid and the gsettings schema and also gsettings subdirectories are ignored. For example Custom Hot Corners (- Extended) have all settings in subdirectories, AATWS - Advanced Alt-Tab Window Switcher has different uuid and schema name, but the information is available in its metadata.json file.

Synchronise also /org/gnome/shell/keybindings

/org/gnome/shell/keybindings is not part of the keybindings synced by the extension.

This entry contains keys which are part of the "global gnome" keybindings :

focus-active-notification=@as []
open-application-menu=@as []
switch-to-application-1=@as []
switch-to-application-2=@as []
switch-to-application-3=@as []
switch-to-application-4=@as []
switch-to-application-5=@as []
switch-to-application-6=@as []
switch-to-application-7=@as []
switch-to-application-8=@as []
switch-to-application-9=@as []
toggle-application-view=['<Super>d']
toggle-message-tray=@as []
toggle-overview=@as []

For example here, I disable the native Super+? for switch-to-application-? and I add Super+D for application view.

No gir file found for Meta-6, Gtk3.0...

While trying to build, the following stack pop up. Any hint to fix it ? Maybe a missing dependency on my setup :

Ξ»  gnome-shell-extensions-sync feature/add-org-gnome-shell-keybindings βœ— yarn build:types      yarn run v1.23.0-20210103.1434
warning Skipping preferred cache folder "/home/kheraud/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1000".
$ yarn run clean:types && ts-for-gir generate
warning Skipping preferred cache folder "/home/kheraud/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1000".
$ rm -rf ./@types
Parsing /usr/share/gnome-shell/St-1.0.gir...
Parsing /usr/share/gnome-shell/Shell-0.1.gir...
[ModuleLoader] WARN: No gir file found for 'Meta-6', this module will be ignored
[ModuleLoader] WARN: No gir file found for 'Gtk-3.0', this module will be ignored
[ModuleLoader] WARN: No gir file found for 'Clutter-6', this module will be ignored
[ModuleLoader] WARN: No gir file found for 'Cally-6', this module will be ignored
[ModuleLoader] WARN: No gir file found for 'PolkitAgent-1.0', this module will be ignored
[ModuleLoader] WARN: No gir file found for 'NM-1.0', this module will be ignored
Parsing /usr/share/gnome-shell/Gvc-1.0.gir...
[ModuleLoader] WARN: No gir file found for 'Gcr-3', this module will be ignored
[ModuleLoader] WARN: No gir file found for 'ClutterX11-6', this module will be ignored
[ModuleLoader] WARN: No gir file found for 'Gio-2.0', this module will be ignored
[ModuleLoader] WARN: No gir file found for 'GObject-2.0', this module will be ignored
Start to generate .d.ts files for 'gjs' as 'lib'.
Files parsed, loading types...
Types loaded, generating .d.ts...
 - St-1.0 ...
[gjs][St-1.0] ERROR: Dependency gir file not found: 'Meta-6.gir'
[gjs][St-1.0] ERROR: Dependency gir file not found: 'Gtk-3.0.gir'
[gjs][St-1.0] ERROR: Dependency gir file not found: 'Clutter-6.gir'
[gjs][St-1.0] ERROR: Dependency gir file not found: 'Cally-6.gir'
[gjs][St-1.0] ERROR: Dependency gir file not found: 'GObject-2.0.gir'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'actor'
[gjs][St-1.0] WARN: Could not find type 'GObject.Object' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Transition' for 'transition'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Transition' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'child'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'accessible-role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'child'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Object' for 'accessible'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Gio.File' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Gio.File' for 'file'
[gjs][St-1.0] WARN: Could not find type 'Gio.File' for 'file'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'accessible-role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Object' for 'accessible'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'child'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'accessible-role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'child'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Object' for 'accessible'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Meta.Selection' for 'selection'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'accessible-role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'cairo.Context' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Object' for 'accessible'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Text' for 'clutter-text'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'hint-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentHintFlags' for 'input-hints'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentPurpose' for 'input-purpose'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'primary-icon'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'secondary-icon'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'accessible-role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentHintFlags' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentPurpose' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'hint_actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentHintFlags' for 'hints'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentPurpose' for 'purpose'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'icon'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'icon'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Object' for 'accessible'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Event' for 'event'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Stage' for 'stage'
[gjs][St-1.0] WARN: Could not find type 'Cally.Actor' for 'parent'
[gjs][St-1.0] WARN: Could not find type 'Atk.Object' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'actor'
[gjs][St-1.0] WARN: Could not find type 'Atk.Object' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'actor'
[gjs][St-1.0] WARN: Could not find type 'Gio.Icon' for 'fallback-gicon'
[gjs][St-1.0] WARN: Could not find type 'Gio.Icon' for 'gicon'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'accessible-role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Gio.Icon' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Gio.Icon' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Gio.Icon' for 'fallback_gicon'
[gjs][St-1.0] WARN: Could not find type 'Gio.Icon' for 'gicon'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Object' for 'accessible'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Content' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Text' for 'clutter-text'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'accessible-role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Object' for 'accessible'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Text' for 'clutter-text'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'hint-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentHintFlags' for 'input-hints'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentPurpose' for 'input-purpose'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'primary-icon'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'secondary-icon'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'accessible-role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentHintFlags' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentPurpose' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'hint_actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentHintFlags' for 'hints'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentPurpose' for 'purpose'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'icon'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'icon'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Object' for 'accessible'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'accessible-role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Object' for 'accessible'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'child'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'accessible-role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'child'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Object' for 'accessible'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Effect' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Effect' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'GObject.Object' for 'parent'
[gjs][St-1.0] WARN: Could not find type 'GObject.Object' for 'object'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Gio.File' for 'file'
[gjs][St-1.0] WARN: Could not find type 'cairo.Surface' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Gio.File' for 'file'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Gio.Icon' for 'icon'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Gio.File' for 'file'
[gjs][St-1.0] WARN: Could not find type 'GLib.Func' for 'load_callback'
[gjs][St-1.0] WARN: Could not find type 'Gio.File' for 'object'
[gjs][St-1.0] WARN: Could not find type 'Gio.File' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Gio.File' for 'file'
[gjs][St-1.0] WARN: Could not find type 'Gio.File' for 'file'
[gjs][St-1.0] WARN: Could not find type 'Gio.File' for 'application_stylesheet'
[gjs][St-1.0] WARN: Could not find type 'Gio.File' for 'theme_stylesheet'
[gjs][St-1.0] WARN: Could not find type 'Gio.File' for 'default_stylesheet'
[gjs][St-1.0] WARN: Could not find type 'Gio.File' for 'application_stylesheet'
[gjs][St-1.0] WARN: Could not find type 'Gio.File' for 'theme_stylesheet'
[gjs][St-1.0] WARN: Could not find type 'Gio.File' for 'default_stylesheet'
[gjs][St-1.0] WARN: Could not find type 'Pango.FontDescription' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Pango.FontDescription' for 'font'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Stage' for 'stage'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'color'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'start'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'end'
[gjs][St-1.0] WARN: Could not find type 'Gio.File' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.ActorBox' for 'allocation'
[gjs][St-1.0] WARN: Could not find type 'Clutter.ActorBox' for 'paint_box'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'color'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'color'
[gjs][St-1.0] WARN: Could not find type 'Clutter.ActorBox' for 'allocation'
[gjs][St-1.0] WARN: Could not find type 'Clutter.ActorBox' for 'content_box'
[gjs][St-1.0] WARN: Could not find type 'Pango.FontDescription' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'color'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'color'
[gjs][St-1.0] WARN: Could not find type 'Clutter.ActorBox' for 'allocation'
[gjs][St-1.0] WARN: Could not find type 'Clutter.ActorBox' for 'paint_box'
[gjs][St-1.0] WARN: Could not find type 'Gio.File' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'color'
[gjs][St-1.0] WARN: Could not find type 'Gio.File' for 'file'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'accessible-role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Object' for 'accessible'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'accessible-role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][St-1.0] WARN: Could not find type 'Atk.Object' for 'accessible'
[gjs][St-1.0] WARN: Could not find type 'Atk.Role' for 'role'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Cally.Actor' for 'parent'
[gjs][St-1.0] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
[gjs][St-1.0] WARN: Could not find type 'Clutter.ChildMetaClass' for 'parent_class'
[gjs][St-1.0] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
[gjs][St-1.0] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'foreground'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'warning'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'error'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'success'
[gjs][St-1.0] WARN: Could not find type 'Clutter.ImageClass' for 'parent_class'
[gjs][St-1.0] WARN: Could not find type 'Clutter.ShaderEffectClass' for 'parent_class'
[gjs][St-1.0] WARN: Could not find type 'GObject.TypeInterface' for 'parent'
[gjs][St-1.0] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'color'
[gjs][St-1.0] WARN: Could not find type 'Clutter.ActorBox' for 'actor_box'
[gjs][St-1.0] WARN: Could not find type 'Clutter.ActorBox' for 'shadow_box'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'color'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'color'
[gjs][St-1.0] WARN: Could not find type 'Cogl.Framebuffer' for 'framebuffer'
[gjs][St-1.0] WARN: Could not find type 'Clutter.ActorBox' for 'actor_box'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'source'
[gjs][St-1.0] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
[gjs][St-1.0] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
[gjs][St-1.0] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
[gjs][St-1.0] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
[gjs][St-1.0] WARN: Could not find type 'Cogl.Pipeline' for 'box_shadow_pipeline'
[gjs][St-1.0] WARN: Could not find type 'Cogl.Pipeline' for 'prerendered_texture'
[gjs][St-1.0] WARN: Could not find type 'Cogl.Pipeline' for 'prerendered_pipeline'
[gjs][St-1.0] WARN: Could not find type 'Cogl.Pipeline' for 'corner_material'
[gjs][St-1.0] WARN: Could not find type 'Gio.File' for 'file'
[gjs][St-1.0] WARN: Could not find type 'Cally.ActorClass' for 'parent_class'
   Prettify ...
Error: No files matching '@types/Gjs/St-1.0.d.ts' were found.
[gjs][St-1.0] WARN: Can't prettify file: "@types/Gjs/St-1.0.d.ts", please check your .eslintrc.js in your working directory
undefined
 - Shell-0.1 ...
[gjs][Shell-0.1] ERROR: Dependency gir file not found: 'Meta-6.gir'
[gjs][Shell-0.1] ERROR: Dependency gir file not found: 'Gtk-3.0.gir'
[gjs][Shell-0.1] ERROR: Dependency gir file not found: 'Clutter-6.gir'
[gjs][Shell-0.1] ERROR: Dependency gir file not found: 'Cally-6.gir'
[gjs][Shell-0.1] ERROR: Dependency gir file not found: 'PolkitAgent-1.0.gir'
[gjs][Shell-0.1] ERROR: Dependency gir file not found: 'NM-1.0.gir'
[gjs][Shell-0.1] ERROR: Dependency gir file not found: 'Gio-2.0.gir'
[gjs][Shell-0.1] ERROR: Dependency gir file not found: 'GObject-2.0.gir'
[gjs][Shell-0.1] ERROR: Dependency gir file not found: 'Gcr-3.gir'
[gjs][Shell-0.1] ERROR: Dependency gir file not found: 'ClutterX11-6.gir'
[gjs][Shell-0.1] WARN: Could not find type 'cairo.Surface' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Capture' for 'captures'
[gjs][Shell-0.1] WARN: Could not find type 'GdkPixbuf.Pixbuf' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'GdkPixbuf.Colorspace' for 'colorspace'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Content' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'window_actor'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Rectangle' for 'window_rect'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'actor'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.ActorBox' for 'box'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Display' for 'display'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'actor'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.File' for 'file'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.AsyncReadyCallback' for 'callback'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.File' for 'file'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.AsyncResult' for 'res'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.OutputStream' for 'stream'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.ActionGroup' for 'action-group'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Window' for 'window'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.DesktopAppInfo' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Window' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Workspace' for 'workspace'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Window' for 'window'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Window' for 'window'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.AppInfo' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Gtk.Window' for 'parent_instance'
[gjs][Shell-0.1] WARN: Could not find type 'Gtk.Widget' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Gtk.Widget' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.OffscreenEffect' for 'parent_instance'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Display' for 'display'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.Settings' for 'settings'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'stage'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.DBusProxy' for 'switcheroo-control'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'top-window-group'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'window-group'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WorkspaceManager' for 'workspace-manager'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.ModalOptions' for 'options'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.AppLaunchContext' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Display' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'GLib.Variant' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.ModifierType' for 'mods'
[gjs][Shell-0.1] WARN: Could not find type 'GLib.Variant' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.Settings' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Stage' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'GLib.DestroyNotify' for 'notify'
[gjs][Shell-0.1] WARN: Could not find type 'GLib.Variant' for 'variant'
[gjs][Shell-0.1] WARN: Could not find type 'GLib.Variant' for 'variant'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Rectangle' for 'rectangles'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Clone' for 'parent_instance'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Effect' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Effect' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Text' for 'confirm-actor'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Text' for 'password-actor'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Text' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Text' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Text' for 'confirm_actor'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Text' for 'password_actor'
[gjs][Shell-0.1] WARN: Could not find type 'GLib.Pid' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.MountOperation' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.MountOperation' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.AsyncReadyCallback' for 'callback'
[gjs][Shell-0.1] WARN: Could not find type 'NM.VpnPluginInfo' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.AsyncResult' for 'result'
[gjs][Shell-0.1] WARN: Could not find type 'NM.Connection' for 'p0'
[gjs][Shell-0.1] WARN: Could not find type 'GLib.DestroyNotify' for 'notify'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.OutputStream' for 'out'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.OutputStream' for 'out'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Display' for 'display'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Stage' for 'stage'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Stage' for 'stage'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Stage' for 'stage'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.AsyncReadyCallback' for 'callback'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.AsyncResult' for 'result'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Color' for 'color'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.OutputStream' for 'stream'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.AsyncReadyCallback' for 'callback'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.OutputStream' for 'stream'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.AsyncReadyCallback' for 'callback'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.AsyncResult' for 'result'
[gjs][Shell-0.1] WARN: Could not find type 'cairo.RectangleInt' for 'area'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.AsyncResult' for 'result'
[gjs][Shell-0.1] WARN: Could not find type 'cairo.RectangleInt' for 'area'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.OutputStream' for 'stream'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.AsyncReadyCallback' for 'callback'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.AsyncResult' for 'result'
[gjs][Shell-0.1] WARN: Could not find type 'cairo.RectangleInt' for 'area'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.TextBuffer' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.TextBuffer' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Atk.Role' for 'accessible-role'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][Shell-0.1] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][Shell-0.1] WARN: Could not find type 'Atk.Role' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][Shell-0.1] WARN: Could not find type 'Atk.StateType' for 'state'
[gjs][Shell-0.1] WARN: Could not find type 'Atk.Object' for 'accessible'
[gjs][Shell-0.1] WARN: Could not find type 'Atk.Role' for 'role'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Clone' for 'parent_instance'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Event' for 'event'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'actor'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'actor'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'actor'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'actor'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'actor'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.CloseDialog' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Window' for 'window'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.InhibitShortcutsDialog' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Window' for 'window'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.KeyBinding' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Window' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Rectangle' for 'p0'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Window' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Rectangle' for 'p1'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.SizeChange' for 'p0'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Rectangle' for 'p1'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Rectangle' for 'p2'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Plugin' for 'plugin'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Plugin' for 'plugin'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.StartupSequence' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Window' for 'metawin'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.StartupSequence' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
[gjs][Shell-0.1] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
[gjs][Shell-0.1] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.EffectClass' for 'parent_class'
[gjs][Shell-0.1] WARN: Could not find type 'Gtk.WindowClass' for 'parent_class'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.OffscreenEffectClass' for 'parent_class'
[gjs][Shell-0.1] WARN: Could not find type 'Cogl.Pipeline' for 'base_pipeline'
[gjs][Shell-0.1] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.CloneClass' for 'parent_class'
[gjs][Shell-0.1] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
[gjs][Shell-0.1] WARN: Could not find type 'Gio.MountOperationClass' for 'parent_class'
[gjs][Shell-0.1] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
[gjs][Shell-0.1] WARN: Could not find type 'PolkitAgent.ListenerClass' for 'parent_class'
[gjs][Shell-0.1] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
[gjs][Shell-0.1] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.TextBufferClass' for 'parent_class'
[gjs][Shell-0.1] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
[gjs][Shell-0.1] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
[gjs][Shell-0.1] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
   Prettify ...
Error: No files matching '@types/Gjs/Shell-0.1.d.ts' were found.
[gjs][Shell-0.1] WARN: Can't prettify file: "@types/Gjs/Shell-0.1.d.ts", please check your .eslintrc.js in your working directory
undefined
 - Gvc-1.0 ...
[gjs][Gvc-1.0] ERROR: Dependency gir file not found: 'Gio-2.0.gir'
[gjs][Gvc-1.0] ERROR: Dependency gir file not found: 'GObject-2.0.gir'
[gjs][Gvc-1.0] WARN: Could not find type 'GObject.Object' for 'parent'
[gjs][Gvc-1.0] WARN: Could not find type 'GObject.Object' for 'parent'
[gjs][Gvc-1.0] WARN: Could not find type 'Gio.Icon' for 'undefined'
[gjs][Gvc-1.0] WARN: Could not find type 'GObject.Object' for 'parent'
[gjs][Gvc-1.0] WARN: Could not find type 'GObject.Object' for 'parent'
[gjs][Gvc-1.0] WARN: Could not find type 'Gio.Icon' for 'undefined'
[gjs][Gvc-1.0] WARN: Could not find type 'GObject.Object' for 'parent'
[gjs][Gvc-1.0] WARN: Could not find type 'Gio.Icon' for 'undefined'
[gjs][Gvc-1.0] WARN: Could not find type 'GObject.Object' for 'parent'
[gjs][Gvc-1.0] WARN: Could not find type 'Gio.Icon' for 'undefined'
[gjs][Gvc-1.0] WARN: Could not find type 'GObject.Object' for 'parent'
[gjs][Gvc-1.0] WARN: Could not find type 'Gio.Icon' for 'undefined'
[gjs][Gvc-1.0] WARN: Could not find type 'GObject.Object' for 'parent'
[gjs][Gvc-1.0] WARN: Could not find type 'Gio.Icon' for 'undefined'
[gjs][Gvc-1.0] WARN: Could not find type 'GObject.Object' for 'parent'
[gjs][Gvc-1.0] WARN: Could not find type 'Gio.Icon' for 'undefined'
[gjs][Gvc-1.0] WARN: Could not find type 'GObject.Object' for 'parent_instance'
[gjs][Gvc-1.0] WARN: Could not find type 'Gio.Icon' for 'undefined'
[gjs][Gvc-1.0] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
[gjs][Gvc-1.0] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
[gjs][Gvc-1.0] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
[gjs][Gvc-1.0] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
[gjs][Gvc-1.0] WARN: Could not find type 'GObject.ObjectClass' for 'parent_class'
   Prettify ...
Error: No files matching '@types/Gjs/Gvc-1.0.d.ts' were found.
[gjs][Gvc-1.0] WARN: Can't prettify file: "@types/Gjs/Gvc-1.0.d.ts", please check your .eslintrc.js in your working directory
undefined
Done.
Done in 0.94s.

An error occured while downloading settings ...

I manage to upload to my github gist, but downloading seems impossible. I get a notification that: ''An error occured while downloading settings ...'' and neither Tweaks, key-bindings, nor extensions are downloaded.
Best regards, jo
Gnome version 3.36.3 on ubuntu 20.04.

Multiple OS config support

Would it be possible to have multiple gists for this tool on GitHub?

E.g.,
I'm my case, I am using Kai Linux, Fedora, and Arch.
At times the configuration and dependencies are different based and this fully relies on the installed Gnome version. It would be nice to link the sync tool to a gist_id and token, while also providing the file name or something to identify a specific gist for a given tool instance.

Could you possibly look into this, please?

Last update don't work

Hi, the lastest update doest not work on fedora 34 gnome 40:

Error: Invalid type [object GjsGlobal]

While building sources: no such file or directory, open '/usr/share/gir-1.0/AccountsService-1.0.gir'

Loading GIR files...
Error: ENOENT: no such file or directory, open '/usr/share/gir-1.0/AccountsService-1.0.gir'

I'll looked into #22 and #18 and I installed the following apt packages : mutter gobject-introspection libgirepository1.0-dev
With no success πŸ˜•
From another post (can't remember where), I also installed these (probably only needed a few ones, but just in case) :

    libgda-5.0-dev \
    libgirepository1.0-dev \
    libgtk-3-dev \
    libgtksourceview-3.0-dev \
    libnotify-dev \
    libsoup2.4-dev \
    libwebkit2gtk-4.0-dev

Still no success πŸ˜• .

Any clue on the missing deps for building sources ?

No gir file found for...

I seem to be missing some dependencies building from source. What is required besides yarn and gobject-introspection?

yarn install v1.22.5
[1/4] Resolving packages...
[2/4] Fetching packages...
info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
warning " > @rollup/[email protected]" has unmet peer dependency "tslib@*".
warning "ts-for-gir > @oclif/[email protected]" has unmet peer dependency "@oclif/config@^1".
warning "ts-for-gir > @oclif/[email protected]" has unmet peer dependency "@oclif/plugin-help@^2".
[4/4] Building fresh packages...
Done in 22.60s.
yarn run v1.22.5
$ yarn run build:types && yarn run build:ts && yarn run build:extension
$ yarn run clean:types && ts-for-gir generate
$ rm -rf ./@types
Parsing /usr/share/gir-1.0/Gtk-3.0.gir...
Parsing /usr/share/gir-1.0/Soup-2.4.gir...
Parsing /usr/share/gnome-shell/St-1.0.gir...
Parsing /usr/share/gnome-shell/Shell-0.1.gir...
Parsing /usr/share/gir-1.0/xlib-2.0.gir...
Parsing /usr/share/gir-1.0/Gdk-3.0.gir...
Parsing /usr/share/gir-1.0/Atk-1.0.gir...
Parsing /usr/share/gir-1.0/cairo-1.0.gir...
Parsing /usr/share/gir-1.0/Pango-1.0.gir...
Parsing /usr/share/gir-1.0/Gio-2.0.gir...
Parsing /usr/share/gir-1.0/GdkPixbuf-2.0.gir...
Parsing /usr/share/gir-1.0/GObject-2.0.gir...
Parsing /usr/share/gir-1.0/HarfBuzz-0.0.gir...
Parsing /usr/share/gir-1.0/GLib-2.0.gir...
Parsing /usr/share/gir-1.0/GModule-2.0.gir...
[ModuleLoader] WARN: No gir file found for 'Meta-7', this module will be ignored
[ModuleLoader] WARN: No gir file found for 'Clutter-7', this module will be ignored
[ModuleLoader] WARN: No gir file found for 'Cally-7', this module will be ignored
Parsing /usr/share/gir-1.0/PolkitAgent-1.0.gir...
Parsing /usr/share/gir-1.0/NM-1.0.gir...
Parsing /usr/share/gnome-shell/Gvc-1.0.gir...
Parsing /usr/share/gir-1.0/Gcr-3.gir...
[ModuleLoader] WARN: No gir file found for 'ClutterX11-7', this module will be ignored
Parsing /usr/share/gir-1.0/Polkit-1.0.gir...
Parsing /usr/share/gir-1.0/Gck-1.gir...
Start to generate .d.ts files for 'gjs' as 'lib'.
Files parsed, loading types...
Types loaded, generating .d.ts...
 - Gtk-3.0 ...
[gjs][Gtk-3.0] WARN: Function name renamed from 'false' to 'false_TODO'
[gjs][Gtk-3.0] WARN: Function name renamed from 'true' to 'true_TODO'
[gjs][Gtk-3.0] WARN: Parameter name renamed from 'arguments' to 'arguments_'
[gjs][Gtk-3.0] WARN: Parameter name renamed from 'function' to 'function_'
[gjs][Gtk-3.0] WARN: Parameter name renamed from 'function' to 'function_'
   Prettify ...
=============

WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree.

You may find that it works just fine, or you may not.

SUPPORTED TYPESCRIPT VERSIONS: >=3.3.1 <3.10.0

YOUR TYPESCRIPT VERSION: 4.0.2

Please only submit bug reports when using the officially supported version.

=============
 - Soup-2.4 ...
[gjs][Soup-2.4] WARN: Parameter name renamed from 'new' to 'new_'
   Prettify ...
 - St-1.0 ...
[gjs][St-1.0] ERROR: Dependency gir file not found: 'Meta-7.gir'
[gjs][St-1.0] ERROR: Dependency gir file not found: 'Clutter-7.gir'
[gjs][St-1.0] ERROR: Dependency gir file not found: 'Cally-7.gir'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Transition' for 'transition'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Transition' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'child'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'child'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'child'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'child'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Text' for 'clutter-text'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'hint-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentHintFlags' for 'input-hints'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentPurpose' for 'input-purpose'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'primary-icon'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'secondary-icon'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentHintFlags' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentPurpose' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'hint_actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentHintFlags' for 'hints'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentPurpose' for 'purpose'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'icon'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'icon'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Event' for 'event'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Stage' for 'stage'
[gjs][St-1.0] WARN: Could not find type 'Cally.Actor' for 'parent'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Content' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Text' for 'clutter-text'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Text' for 'clutter-text'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'hint-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentHintFlags' for 'input-hints'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentPurpose' for 'input-purpose'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'primary-icon'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'secondary-icon'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentHintFlags' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentPurpose' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'hint_actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentHintFlags' for 'hints'
[gjs][St-1.0] WARN: Could not find type 'Clutter.InputContentPurpose' for 'purpose'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'icon'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'icon'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'child'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'child'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Effect' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Effect' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Stage' for 'stage'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'color'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'start'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'end'
[gjs][St-1.0] WARN: Could not find type 'Clutter.ActorBox' for 'allocation'
[gjs][St-1.0] WARN: Could not find type 'Clutter.ActorBox' for 'paint_box'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'color'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'color'
[gjs][St-1.0] WARN: Could not find type 'Clutter.ActorBox' for 'allocation'
[gjs][St-1.0] WARN: Could not find type 'Clutter.ActorBox' for 'content_box'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'color'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'color'
[gjs][St-1.0] WARN: Could not find type 'Clutter.ActorBox' for 'allocation'
[gjs][St-1.0] WARN: Could not find type 'Clutter.ActorBox' for 'paint_box'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'color'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][St-1.0] WARN: Could not find type 'Cally.Actor' for 'parent'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'foreground'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'warning'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'error'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'success'
[gjs][St-1.0] WARN: Could not find type 'Clutter.ImageClass' for 'parent_class'
[gjs][St-1.0] WARN: Could not find type 'Clutter.ShaderEffectClass' for 'parent_class'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'color'
[gjs][St-1.0] WARN: Could not find type 'Clutter.ActorBox' for 'actor_box'
[gjs][St-1.0] WARN: Could not find type 'Clutter.ActorBox' for 'shadow_box'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'color'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Color' for 'color'
[gjs][St-1.0] WARN: Could not find type 'Cogl.Framebuffer' for 'framebuffer'
[gjs][St-1.0] WARN: Could not find type 'Clutter.ActorBox' for 'actor_box'
[gjs][St-1.0] WARN: Could not find type 'Clutter.Actor' for 'source'
[gjs][St-1.0] WARN: Could not find type 'Cogl.Pipeline' for 'box_shadow_pipeline'
[gjs][St-1.0] WARN: Could not find type 'Cogl.Pipeline' for 'prerendered_texture'
[gjs][St-1.0] WARN: Could not find type 'Cogl.Pipeline' for 'prerendered_pipeline'
[gjs][St-1.0] WARN: Could not find type 'Cogl.Pipeline' for 'corner_material'
[gjs][St-1.0] WARN: Could not find type 'Cally.ActorClass' for 'parent_class'
   Prettify ...
 - Shell-0.1 ...
[gjs][Shell-0.1] ERROR: Dependency gir file not found: 'Meta-7.gir'
[gjs][Shell-0.1] ERROR: Dependency gir file not found: 'Clutter-7.gir'
[gjs][Shell-0.1] ERROR: Dependency gir file not found: 'Cally-7.gir'
[gjs][Shell-0.1] ERROR: Dependency gir file not found: 'ClutterX11-7.gir'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Capture' for 'captures'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Content' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'window_actor'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Rectangle' for 'window_rect'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Display' for 'display'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'actor'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Window' for 'window'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Window' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Workspace' for 'workspace'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Window' for 'window'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Window' for 'window'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.OffscreenEffect' for 'parent_instance'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Backend' for 'backend'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Display' for 'display'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'stage'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'top-window-group'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'window-group'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WorkspaceManager' for 'workspace-manager'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.ModalOptions' for 'options'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Display' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.ModifierType' for 'mods'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Stage' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Rectangle' for 'rectangles'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Clone' for 'parent_instance'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Effect' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Effect' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Text' for 'confirm-actor'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Text' for 'password-actor'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Text' for 'confirm-actor'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Text' for 'password-actor'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Text' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Text' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Text' for 'confirm_actor'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Text' for 'password_actor'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Color' for 'color'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.TextBuffer' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.TextBuffer' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'label-actor'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'parent_instance'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.PaintContext' for 'paint_context'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'label'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'from'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Clone' for 'parent_instance'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Event' for 'event'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Color' for 'bg-color'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.Actor' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'actor'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'actor'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'actor'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'actor'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'actor'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.CloseDialog' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Window' for 'window'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.InhibitShortcutsDialog' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Window' for 'window'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.KeyBinding' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Window' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Rectangle' for 'p0'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Window' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Rectangle' for 'p1'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.SizeChange' for 'p0'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Rectangle' for 'p1'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Rectangle' for 'p2'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.WindowActor' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Plugin' for 'plugin'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.StartupSequence' for 'undefined'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.Window' for 'metawin'
[gjs][Shell-0.1] WARN: Could not find type 'Meta.StartupSequence' for 'object'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.EffectClass' for 'parent_class'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.OffscreenEffectClass' for 'parent_class'
[gjs][Shell-0.1] WARN: Could not find type 'Cogl.Pipeline' for 'base_pipeline'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.CloneClass' for 'parent_class'
[gjs][Shell-0.1] WARN: Could not find type 'Clutter.TextBufferClass' for 'parent_class'
   Prettify ...
 - xlib-2.0 ...
   Prettify ...
 - Gdk-3.0 ...
[gjs][Gdk-3.0] WARN: Parameter name renamed from 'function' to 'function_'
[gjs][Gdk-3.0] WARN: Parameter name renamed from 'function' to 'function_'
[gjs][Gdk-3.0] WARN: Parameter name renamed from 'function' to 'function_'
[gjs][Gdk-3.0] WARN: Field name renamed from 'in' to 'in_'
   Prettify ...
 - Atk-1.0 ...
   Prettify ...
 - cairo-1.0 ...
   Prettify ...
 - Pango-1.0 ...
[gjs][Pango-1.0] WARN: Function name renamed from 'break' to 'break_TODO'
   Prettify ...
 - Gio-2.0 ...
[gjs][Gio-2.0] WARN: Parameter name renamed from 'arguments' to 'arguments_'
   Prettify ...
 - GdkPixbuf-2.0 ...
   Prettify ...
 - GObject-2.0 ...
[gjs][GObject-2.0] WARN: Could not find type 'GObject.VaClosureMarshal' for 'SignalCVaMarshaller'
   Prettify ...
 - HarfBuzz-0.0 ...
   Prettify ...
 - GLib-2.0 ...
[gjs][GLib-2.0] WARN: Parameter name renamed from 'in' to 'in_'
[gjs][GLib-2.0] WARN: Parameter name renamed from 'function' to 'function_'
[gjs][GLib-2.0] WARN: Parameter name renamed from 'function' to 'function_'
[gjs][GLib-2.0] WARN: Parameter name renamed from 'function' to 'function_'
[gjs][GLib-2.0] WARN: Parameter name renamed from 'function' to 'function_'
[gjs][GLib-2.0] WARN: Parameter name renamed from 'function' to 'function_'
[gjs][GLib-2.0] WARN: Parameter name renamed from 'function' to 'function_'
[gjs][GLib-2.0] WARN: Parameter name renamed from 'arguments' to 'arguments_'
   Prettify ...
 - GModule-2.0 ...
   Prettify ...
 - PolkitAgent-1.0 ...
   Prettify ...
 - NM-1.0 ...
[gjs][NM-1.0] WARN: Enum name renamed from '80211Mode' to 'TODO_80211Mode'
[gjs][NM-1.0] WARN: Enum name renamed from '80211ApFlags' to 'TODO_80211ApFlags'
[gjs][NM-1.0] WARN: Enum name renamed from '80211ApSecurityFlags' to 'TODO_80211ApSecurityFlags'
   Prettify ...
 - Gvc-1.0 ...
   Prettify ...
 - Gcr-3 ...
   Prettify ...
 - Polkit-1.0 ...
   Prettify ...
 - Gck-1 ...
   Prettify ...
Done.
$ yarn run clean:ts && rollup -c
$ rm -rf ./dist

src/extension.ts β†’ dist/extension.js...
[!] (plugin typescript) Error: @rollup/plugin-typescript TS2554: Expected 0 arguments, but got 1.
src/panel/statusMenu.ts (89:21)

89     return new Icon({
                       ~
90       gicon: icon_new_for_string(`${this.extension.path}/icons/extensions-sync-${iconType}-symbolic.svg`),
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
91       style_class: 'system-status-icon',
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
92     });
   ~~~~~

Error: @rollup/plugin-typescript TS2554: Expected 0 arguments, but got 1.
    at error (/home/yochanan/Documents/pkgbuilds/gnome-shell-extension-extensions-sync/src/gnome-shell-extensions-sync/node_modules/rollup/dist/shared/rollup.js:5206:30)
    at throwPluginError (/home/yochanan/Documents/pkgbuilds/gnome-shell-extension-extensions-sync/src/gnome-shell-extensions-sync/node_modules/rollup/dist/shared/rollup.js:17769:12)
    at Object.error (/home/yochanan/Documents/pkgbuilds/gnome-shell-extension-extensions-sync/src/gnome-shell-extensions-sync/node_modules/rollup/dist/shared/rollup.js:18388:24)
    at emitDiagnostic (/home/yochanan/Documents/pkgbuilds/gnome-shell-extension-extensions-sync/src/gnome-shell-extensions-sync/node_modules/@rollup/plugin-typescript/dist/index.js:415:17)
    at reportDiagnostics (/home/yochanan/Documents/pkgbuilds/gnome-shell-extension-extensions-sync/src/gnome-shell-extensions-sync/node_modules/@rollup/plugin-typescript/dist/index.js:423:9)
    at Array.forEach (<anonymous>)
    at emitFilesAndReportErrors (/home/yochanan/Documents/pkgbuilds/gnome-shell-extension-extensions-sync/src/gnome-shell-extensions-sync/node_modules/typescript/lib/typescript.js:108219:21)
    at Object.result.afterProgramCreate (/home/yochanan/Documents/pkgbuilds/gnome-shell-extension-extensions-sync/src/gnome-shell-extensions-sync/node_modules/typescript/lib/typescript.js:108390:13)
    at Object.afterProgramCreate (/home/yochanan/Documents/pkgbuilds/gnome-shell-extension-extensions-sync/src/gnome-shell-extensions-sync/node_modules/@rollup/plugin-typescript/dist/index.js:515:29)
    at synchronizeProgram (/home/yochanan/Documents/pkgbuilds/gnome-shell-extension-extensions-sync/src/gnome-shell-extensions-sync/node_modules/typescript/lib/typescript.js:108654:22)

error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Don't sync an extension unless it is explicitly supported by the local shell version

I have two desktops, one running Gnome 3.38 and the other running Gnome 40. On the Gnome 40 system, I was using a development branch of dash-to-panel that is not generally available yet for gnome 40. But the dash-to-panel extension from the main release was being installed over the dev branch version. This is the metadata.json for the dev branch,

{
"extension-id": "dash-to-panel",
"uuid": "[email protected]",
"name": "Dash to Panel",
"description": "An icon taskbar for the Gnome Shell. This extension moves the dash into the gnome main panel so that the application launchers and system tray are combined into a single panel, similar to that found in KDE Plasma and Windows 7+. A separate dock is no longer needed for easy access to running and favorited applications.\n\nFor a more traditional experience, you may also want to use Tweak Tool to enable Windows > Titlebar Buttons > Minimize & Maximize.\n\nFor the best support, please report any issues on Github. Dash-to-panel is developed and maintained by @jderose9 and @charlesg99.",
"shell-version": [ "40" ],
"url": "https://github.com/jderose9/dash-to-panel",
"gettext-domain": "dash-to-panel",
"version": 9999
}

and the current release version,

{
"_generated": "Generated by SweetTooth, do not edit",
"description": "An icon taskbar for the Gnome Shell. This extension moves the dash into the gnome main panel so that the application launchers and system tray are combined into a single panel, similar to that found in KDE Plasma and Windows 7+. A separate dock is no longer needed for easy access to running and favorited applications.\n\nFor a more traditional experience, you may also want to use Tweak Tool to enable Windows > Titlebar Buttons > Minimize & Maximize.\n\nFor the best support, please report any issues on Github. Dash-to-panel is developed and maintained by @jderose9 and @charlesg99.",
"extension-id": "dash-to-panel",
"gettext-domain": "dash-to-panel",
"name": "Dash to Panel",
"shell-version": [
"3.18",
"3.20",
"3.22",
"3.24",
"3.26",
"3.28",
"3.30",
"3.34",
"3.32",
"3.36",
"3.38"
],
"url": "https://github.com/jderose9/dash-to-panel",
"uuid": "[email protected]",
"version": 42
}

Support any git repo as a backend system

Hello there!

Would it be possible/wanted to additionally support using a plain git repository (stored on Github, accessed via ssh, etc etc) to do the syncing, in addition to using snippets?

Sync not working

Hi. Thank you for your work on this extension!

I've successfully used it to backup my extensions list to a gist. It seems it is a valid JSON. However, now, on a new Linux installation (same distro) I'm unable to download them. I made sure that the extension has the right gist ID and regenerated the access token. Also confirmed that it has the permission to create gists. I enabled debugging. Now, when I select Download, nothing happens. Log only says "[extensions-sync] [sync] disabled". Any ideas?

Sync extension preferences

Preferences are very important. Before using this extension, I did this:
Backup prefs - dconf dump /org/gnome/shell/extensions/ > extensions.conf
Restore prefs - dconf load /org/gnome/shell/extensions/ < extensions.conf

I'll try to add this feature. Any suggestions are welcome.

[Feature] Hide taskbar icon

I would like to declutter my taskbar from icons that are seldomly used. The funtionality provided by the icon could be presented in the config window.
Besides, if issue #3 gets developed, the icon would become redundant.

Anyhow, thanks for this extension. It's a lifesaver as it is :)

[Feature] Automatic Sync

I would like my configuration to sync automatically. I understand this might be complex (if not impossible) but wanted to open a request to track it. At a minimum I would like an upload to triggered whenever one of the following occurs:

  • New extension installed
  • Extension is uninstalled
  • Extension settings are changed

A potential issue with this is if you're making changes on two computers simultaneously you risk overriding the synced config when you change something on one PC then change something different on the other PC. This is potentially solvable by pulling the remote configure first and doing some sort of merge between the two but that would potentially cause conflicts. In that case a user option to override or not might be useful but this would be a lot of work.

I'm not even sure if automatic downloading would be possible without polling the gist for changes periodically which doesn't seem like an elegant option.

not working on 3.30 on Debian Buster

On one PC it installs and once configured does something but I don't see anything in the gist. I did not see any way to trigger upload/download.

I enabled debugging and do not see any error/warning indications.
I've installed it on another PC (Same Debian version and desktop) and once configured it reported "error" on the chrome extension pages.
I tried to turn on debugging on the second PC and get

root@olive05:~# busctl --user call org.gnome.Shell /org/gnome/Shell org.gnome.Shell Eval s 'window.extensionsSync.debug = true;'
Failed to set address: No such file or directory
root@olive05:~# journalctl /usr/bin/gnome-shell -o cat | grep "\[extensions-sync\]"
root@olive05:~# 

Not sure where to go from here.

Gnome 43

Could you make this extension compatible with Gnome 43? I recently changed to it and am now waiting for an update.

Alt+Tab, Super+Tab

After installing and sync extensions the option of alt+tab to switching app windows was disabled. If I disabled that extension and reload of alt+f2 -> R then everything works again. Restart of the system with switched on that extension doesn't work :(

The settings of extension [email protected] had an error:

The settings of extension [email protected] had an error:

TypeError: providerSelectionContainer.append is not a function

Stack trace:

_init@/home/den/.local/share/gnome-shell/extensions/[email protected]/prefs.js:102:40
createNotebook@/home/den/.local/share/gnome-shell/extensions/[email protected]/prefs.js:1514:35
_init@/home/den/.local/share/gnome-shell/extensions/[email protected]/prefs.js:1507:18
buildPrefsWidget@/home/den/.local/share/gnome-shell/extensions/[email protected]/prefs.js:1522:36
_init@resource:///org/gnome/Shell/Extensions/js/extensionsService.js:207:40
OpenExtensionPrefsAsync/<@resource:///org/gnome/Shell/Extensions/js/extensionsService.js:122:28
asyncCallback@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:132:13
run@resource:///org/gnome/Shell/Extensions/js/dbusService.js:175:20
main@resource:///org/gnome/Shell/Extensions/js/main.js:19:13
run@resource:///org/gnome/gjs/modules/script/package.js:222:19
start@resource:///org/gnome/gjs/modules/script/package.js:206:5
@/usr/share/gnome-shell/org.gnome.Shell.Extensions:1:17

Exclude syncing desktop wallpaper

It would be useful to have a way to exclude specific settings from being synced. Specifically, I would like to stop syncing /org/gnome/desktop/background/ under tweaks in settings.json since I like to have different wallpapers across my devices.

Extension fails to load in Debian Stretch

The error message in the Tweak Tool says "There was an error loading the preferences dialog for Extensions Sync" with following details:

SyntaxError: class is a reserved identifier

Stack trace:
  Application<._getExtensionPrefsModule@resource:///org/gnome/shell/extensionPrefs/main.js:74
  wrapper@resource:///org/gnome/gjs/modules/lang.js:178
  Application<._selectExtension@resource:///org/gnome/shell/extensionPrefs/main.js:89
  wrapper@resource:///org/gnome/gjs/modules/lang.js:178
  Application<._onCommandLine@resource:///org/gnome/shell/extensionPrefs/main.js:239
  wrapper@resource:///org/gnome/gjs/modules/lang.js:178
  main@resource:///org/gnome/shell/extensionPrefs/main.js:377
  @<main>:1

OS: Debian Stretch
Gnome version: 3.22.2

[feature] save configuration extensions

Thanks for the extension, it's a good way to easily backup my used extensions across my different environments.

Would it be possible to save the configurations of each extension?

sync user picture

Hi,
Would it be possible to sync the user picture from the login screen?
The file which needs to be synced is "/var/lib/AccountsService/icons/$USER"

Best regards,

CΓ©dric

[Feature] Hide Icon

I don't want an icon cluttering my system tray. It would be nice to have an option to disable the icon.

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.