Skip to main content

Create native web wrappers or write hybrid Desktop applications on Linux, with Python, JavaScript, HTML, and Blink

Project description

Just Another Desktop Environment Application Kit ( JAK )

Build web wrappers or hybrid web/desktop applications on Linux, using Python/JavaScript/HTML5/CSS3 powered by QTWebengine. Using web technologies we can create beautiful User Interfaces using a diverse amount of available library's and frameworks.

Codacy Badge Build Status PyPI version Gitter chat release License

Packaging status

Getting Started

  • Prerequisites
  • Python >= 3.8
  • PySide2 >= 5.14 or PyQt5 >= 5.13
  • desktop-file-utils, for application.desktop creation: optional
git clone https://github.com/codesardine/Jade-Application-Kit.git

cd Jade-Application-Kit

Install using pip

pip install -r requirements.txt

or

pip install Jade-Application-Kit

Install manually

~/.virtualenv/python setup.py install

or

sudo setup.py install

Install in Manjaro

sudo pacman -S python-jade-application-kit

Environment variables

JAK defaults to using PySide2 to use PyQt5 set this environment variable, this is read before the config file.

export JAK_PREFERRED_BINDING=PyQt5

Config file

Setting bindings via config file, system wide is fetched last.

  • User file location = /username/.config/jak.conf
  • System wide location = /etc/jak.conf

Config file contents.

[bindings]
JAK_PREFERRED_BINDING = PyQt5

Contributing

Please read CONTRIBUTING.md for details on code of conduct, and the process for submitting pull requests.

Using from the command line

With the command line utility you can create a self-contained web wrapper's in a question of seconds.

jak-cli --url https://my-web-app-url  --title Mytitle

Creating Desktop files in the user directory ( ~/.local/share/applications ).

jak-cli --url https://slack.com --title Slack --cde --desc "Collaboration software for connected teams."

More options.

jak-cli --help

Using Python

#!/usr/bin/env python
from JAK.Application import JWebApp

url = "https://my-web-app-url"

webapp = JWebApp(title="Mytitle", online=True, web_contents=url)

webapp.run()

URL Rules:

  • We can match domains by starting letters or using Python regex.
  • Block Rules: blocks any domain in the list.
  • WebBrowserWindow Rules: deny any domain in the list.
  • WebBrowserTab Rules: only allow domains in the list, if empty all are allowed, if they start with https:// they open in a new window.

Looking for wrapper's examples? Check Branches starting with wrapper/.

Api

Versioning

SemVer is used for versioning. For the versions available, see the tags on this repository.

Authors

See also the list of contributors who participated in this project.

Acknowledgments

Applications

Wrappers

Missing yours?, let me know.

Known Issues

  • Does not like NVIDIA cards and as such falls back to software rendering, so if you use one of them you have to do without GPU acceleration. Only PCI devices.
  • As of Python 3.8 PySide2 is not compatible = https://github.com/codesardine/Jade-Application-Kit/issues/67, until this is fixed upstream set bindings via environment variable or config file.

License

Jade Application Kit is covered by the GPL license.

Copyright (c) 2015-2019, Vitor Lopes. All rights reserved.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Jade-Application-Kit-3.5.2.tar.gz (65.8 kB view hashes)

Uploaded Source

Built Distribution

Jade_Application_Kit-3.5.2-py3-none-any.whl (33.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page