Skip to content
Run web apps on your desktop.
JavaScript Meson Shell Makefile Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE
.vscode
build-aux/meson created project with gnome-builder Jul 4, 2019
data reporting an issue Oct 16, 2019
po rename to Tangram Aug 9, 2019
src use troll assert Nov 24, 2019
var save dev data/config/files in var/ Aug 3, 2019
.babelrc use ECMAScript modules (#71) Nov 23, 2019
.editorconfig add flatpak to test and git hooks Jul 13, 2019
.eslintignore use ECMAScript modules (#71) Nov 23, 2019
.eslintrc.yml use ECMAScript modules (#71) Nov 23, 2019
.gitignore use ECMAScript modules (#71) Nov 23, 2019
.gitmodules use troll https://github.com/sonnyp/troll Sep 23, 2019
.prettierignore use ECMAScript modules (#71) Nov 23, 2019
.prettierrc.yaml serviceDialog Jul 6, 2019
COPYING created project with gnome-builder Jul 4, 2019
Makefile use ECMAScript modules (#71) Nov 23, 2019
README.md
TODO.md v1.2.0 Sep 19, 2019
meson.build v1.2.0 Sep 19, 2019
notes.txt add "Comment" to desktop file, this is used on Mint/XFCE Sep 15, 2019
package-lock.json
package.json use ECMAScript modules (#71) Nov 23, 2019
re.sonny.Tangram.json remove unused flatpak permission Sep 14, 2019
run.sh
webpack.config.js use ECMAScript modules (#71) Nov 23, 2019

README.md

Tangram

Run web apps on your desktop

Download on Flathub

screenshot

Goal

The goal of the project is to improve integration of web applications into the desktop, specifically GNOME.

About

Each tab is a container so you can setup web apps with different accounts/settings.

Tangram is powered by WebKitGTK.

Reporting an issue

Before submitting an issue with a Website, please try to reproduce it with GNOME Web. If you can, report the issue to WebKitGTK which is the Web engine powering Tangran and GNOME Web.

Features

  • Setup and manage web applications
  • Persistent and independant tabs
  • Custom title
  • Re-order tabs
  • Change tabs position
  • Navigation
  • Shortcuts
  • Smart notifications
  • Downloads
  • Touchpad/touchscreen gestures

Security

Both Flatpak and non-Flatpak versions of Tangram provide strong sandboxing for Web applications.

Roadmap

  • Custom icon (almost done)
  • Custom applications (almost done)
  • Expose WebKitGTK settings (todo)
  • SearchProvider (todo)
  • Custom CSS/JS for better integration (todo)

Development

git clone --recursive git://github.com/sonnyp/Tangram.git

Install dependencies

Ubuntu sudo apt install npm libglib2.0-dev-bin flatpak-builder
Arch Linux sudo pacman -S npm glib2 flatpak-builder
Fedora sudo dnf install npm glib2-devel flatpak-builder
# Development dependencies
npm install

Run

./node_modules/.bin/webpack --watch
./run.sh

Hit <Ctrl><Shift>Q to restart the application.

  • data files are stored in ./var/data/ instead of $XDG_DATA_HOME/Tangram/
  • cache files are stored in ./var/cache/ instead of XDG_CACHE_HOME/Tangram/

To test desktop notifications you can add https://jhmux.codesandbox.io/.

Test

make test

Meson

meson --reconfigure --prefix $PWD/install build
ninja -C build install
GSETTINGS_SCHEMA_DIR=./install/share/glib-2.0/schemas/ ./install/bin/re.sonny.Tangram

Flatpak

flatpak-builder --user --force-clean --install-deps-from=flathub flatpak re.sonny.Tangram.json
flatpak-builder --run flatpak re.sonny.Tangram.json re.sonny.Tangram

Flatpak sandboxed

flatpak-builder --repo=repo --force-clean flatpak re.sonny.Tangram.json
flatpak --user remote-add --no-gpg-verify Tangram repo
flatpak --user install Tangram re.sonny.Tangram
flatpak run re.sonny.Tangram

Inspect

gsettings set org.gtk.Settings.Debug enable-inspector-keybinding true
GTK_DEBUG=interactive ./run.sh

Credits

Inspired by GNOME Web, Rambox, Station and Franz.

You can’t perform that action at this time.