# Gravatar GNOME Shell Extension
A GNOME Shell extension to synchronize your user icon with an avatar service, one of Gravatar or Libravatar.
## Prerequisites
* `gnome-shell`
* `dconf` _(optional)_
* `gnome-shell-extension-prefs` _(optional)_
## Installation
Easiest way to install the extension is via [extensions.gnome.org](https://extensions.gnome.org/extension/6922/gravatar/), the official Gnome extension platform. Head over there and install with one click by toggling the switch on the site.
If you wish to build and install the extension manually, you will need the following tools:
* `git`
* `glib-compile-schemas`
* `make`
* `dconf` _(optional)_
The packages which include the above tools may vary between different GNU/Linux distributions. Check your distribution's documentation / package list to find the most suitable packages.
```bash
# clone the repository
git clone https://github.com/dsheeler/gnome-shell-extensions-gravatar.git
# enter the local repository directory
cd gnome-shell-extensions-gravatar
# run the build/install toolchain
make
```
#### Uninstall
```bash
make uninstall
```
## Usage
### Triggering a Download from Avatar Service
The extension downloads your avatar in various circumstances.
#### Starting the Extension
Every time the extension is enabled (for example at login), the extension downloads your user icon from the avatar service.
#### Settings Changes
When either the `email` or the `service` setting changes, the extension also performs a download.
#### Keyboard Shortcut
The extension provides another option to trigger a download: by pressing a user-defined keybinding. This enables the user to, for example, update their user icon after an update on the avatar service. The prefs widget provides an interface to change the keybinding. The default is `g`.
### Settings
Settings can be configured from the preferences gui:
```bash
gnome-extensions prefs gravatar@dsheeler.net
```
or from the command line via `dconf`. Settings marked with `*` can only be changed by using `dconf`.
#### Service: _(default: `gravatar`)_
```bash
dconf write /org/gnome/shell/extensions/gravatar/service "''"
```
Where `` is one of `gravatar` or `libravatar`.
#### Email Address: _(default: `null`)_
```bash
dconf write /org/gnome/shell/extensions/gravatar/email "''"
```
#### Download Keybinding: _(default: `["g"]`)_
```bash
dconf write /org/gnome/shell/extensions/gravatar/gravatar-ondemand-keybinding '[""]'
```
#### Desktop Notification on Update: _(default: `false`)_
```bash
dconf write /org/gnome/shell/extensions/gravatar/notifications "''"
```
#### Debug Mode: _(default: `false`)_
```bash
dconf write /org/gnome/shell/extensions/gravatar/debug "''"
```
#### * Icon Size: _(default: `192`)_
**1 - 2048 pixel square** _(See: [gravatar.com](https://en.gravatar.com/site/implement/images/#size))_
```bash
dconf write /org/gnome/shell/extensions/gravatar/icon-size
```
## Bug Reporting
Bugs should be reported via the [GitHub Issue Tracker](https://github.com/dsheeler/gnome-shell-extensions-gravatar/issues)
### Logs
#### Extension
```bash
journalctl /usr/bin/gnome-shell -f
```
#### Prefs Widget
```bash
journalctl /usr/bin/gjs -f
```
## Credits
This project is a fork of Daniel Demus' fork of the original Gravatar extension by Jon Rouleau.
## License
The MIT License (MIT)