/jak

Hybrid web/desktop applications on Linux

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

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

pip3 install -r requirements.txt

or

pip3 install Jade-Application-Kit

Install manually

~/.virtualenv/python3 setup.py install

or

sudo python3 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.

License

Jade Application Kit is covered by the GPL license.

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