An open API service indexing awesome lists of open source software.

https://github.com/ramottamado/eval-gjs

Evaluate GJS script through DBus
https://github.com/ramottamado/eval-gjs

gnome-shell-extension

Last synced: 12 months ago
JSON representation

Evaluate GJS script through DBus

Awesome Lists containing this project

README

          

> [!CAUTION]
> # Potential security breach
> This extension enables arbitrary code execution via `Eval()` dbus method. This means when you enable this extension, malicious apps, extensions or scripts can call the said dbus method and run malicious GJS codes on your machine.

> [!WARNING]
> # Beware of impersonators
> The extension at https://extensions.gnome.org/extension/5952/eval-gjs/ was not uploaded nor maintained by me. **Please refrain from installing this extension at all.**

> [!TIP]
> # Legacy version (GNOME 41-44)
> For the legacy version (GNOME 41-44), check out the `legacy` branch first before installing.

# Eval GJS GNOME Shell extension

As of GNOME 41, the dbus method `Eval()` is now restricted with `MetaContext:unsafe-mode` property (see this [commit](https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1970/diffs?commit_id=f42df5995e08a89495e2f59a9ed89b5c03369bf8)). This extension provides unrestricted `Eval()` dbus method for running arbitrary code in the compositor.

## Features

* Run arbitrary GJS code like you would with GNOME `Eval()` dbus method.
* `Main`, `Gio`, `GLib` and `Meta` available by default.

## Installation

```sh
git clone git://github.com/ramottamado/eval-gjs.git
cd eval-gjs
make install
```

## Example usage

```sh
gdbus call \
--session \
--dest org.gnome.Shell \
--object-path /dev/ramottamado/EvalGjs \
--method dev.ramottamado.EvalGjs.Eval "Main.overview.show();"
```