Python-based extendable tool

Koz Ross 0fafc15359 Adding CoC (#68) 3 weeks ago
.github 364be1d5f0 Fixing grammar in issue template 1 month ago
docs e1f31166f1 Fix docs 4 months ago
pext 0fafc15359 Adding CoC (#68) 3 weeks ago
pext_dev 6bc0db95f8 Make pep257 happy 4 months ago
screenshots e1f31166f1 Fix docs 4 months ago
.gitignore d020278113 Ignore compiled QML 2 months ago
CHANGELOG.md 47baa4d254 Add --list-locales argument 1 month ago
CODE_OF_CONDUCT.md 0fafc15359 Adding CoC (#68) 3 weeks ago
CONTRIBUTING.md da47228763 Add CONTRIBUTING.md 7 months ago
INSTALL_FROM_SOURCE.md 6173a4907d Remove unneeded macOS dependency and describe pip install 1 month ago
LICENSE a07e0ae0b0 Initial commit 2 years ago
LICENSE-CCBYSA a6ec5ec726 Relicense documentation under CC BY-SA 4.0 1 month ago
MANIFEST.in ae28fcbf1f Make installable 1 year ago
README.md 7463ef62e8 Add community info to README 1 month ago
RELEASE_STEPS.md 3b023945a3 Add support for profile renaming 1 month ago
logo.png ac83f3554b Give logo white background 11 months ago
pext.desktop dca876330f File Pext under Utility 1 year ago
setup.py 3b023945a3 Add support for profile renaming 1 month ago
tox.ini ae2e0b957e Fix tox 3 months ago
workflow_graph.dot 72f4cd7988 Try to explain Pext better 7 months ago
workflow_graph.png 72f4cd7988 Try to explain Pext better 7 months ago

README.md

Pext

Pext logo

ReadTheDocs Translation status Code Health

Contents

Community

If you need support or just want to chat with our community, we have the following options:

All these channels are linked to each other, so there is no need to worry about missing out.

We can also be reached on Twitter: @PextTool

Introduction

Pext stands for Python-based extendable tool. It is built using Python 3 and Qt5 QML and has its behaviour decided by modules. Pext provides a simple window with a search bar, allowing modules to define what data is shown and how it is manipulated.

For example, say you want to use Pext as a password manager. You load in the pass module, and it will show you a list of your passwords which you can filter with the search bar. When you select a password in the list, it will copy the password to your clipboard and Pext will hide itself, waiting for you to ask for it again.

Depending on the module you choose, what entries are shown and what happens when you select an entry changes. So choose the module appropriate for what you want to do, and Pext makes it easy.

Several modules are available for effortless install right within Pext.

Pext running the radiobrowser module with info panel
Pext running the openweathermap module with context menu
Pext running the emoji module

How it works

Pext is designed to quickly pop up and get out of your way as soon as you're done with something. It is recommended to bind Pext to some global hotkey, or possibly run multiple instances of it with different profiles under multiple hotkeys. Example Pext workflows look as follows:

Pext workflow graph

Simply put:

  • Open (Pext)
  • Search (for something)
  • Select (with Enter)
  • Hide (automatically)

Installation

Note: If you run into any issues, please check out the troubleshooting section near the end of this document before reporting a bug.

GNU/Linux

Arch

The Arch packages are maintained by Ivan Semkin

For the stable version:

$ pacaur -S pext

For the git version:

$ pacaur -S pext-git

Other distros

For the stable version:

$ pip3 install pext --user

For the git version:

$ pip3 install git+https://github.com/Pext/Pext.git --user

On some systems, you may need to use pip instead of pip3.

Alternatively, you can install Pext from source

macOS

See Installing Pext from source

Windows (experimental)

See Installing Pext from source

Usage

To actually use Pext, you will first have to install one or more modules. Check out the Pext organisation on GitHub or use Module -> Install module -> From online module list in the application for a list of modules.

After installating at least one module, you can load it from the Module -> Load module menu. After that, experiment! Each module is different.

For command line options, use --help.

Hotkeys

Entry management

  • Escape: Go one level up
  • Tab: Tab-complete the current input
  • Enter / Left mouse button: Select entry or run command
  • Ctrl+Shift+. / Right mouse button on header: Open state menu
  • Ctrl+. / Right mouse button on any item: Open context menu
  • Ctrl+J / Down arrow: Go one entry down
  • Ctrl+H / Up arrow: Go one entry up
  • Ctrl+F / Page down: Go one page down
  • Ctrl+B / Page up: Go one page up

Tab management

  • Ctrl+T: Open new tab
  • Ctrl+W: Close current tab
  • Ctrl+Tab: Switch to next tab
  • Ctrl+Shift+Tab: Switch to previous tab
  • Alt+<number>: Switch to tab <number>
  • F5: Reload tab, including code changes to the module

Session management

  • Ctrl+Q: Quit and save the currently loaded modules and settings to the profile
  • Ctrl+Shift+Q: Quit without saving to the profile

Troubleshooting

GNU/Linux

Installing module dependencies fails

Your distribution may ship with an outdated version of pip. Run pip install --upgrade pip (possibly as root) in a terminal.

Pext's window is completely white

The proprietary NVIDIA driver is known to cause this issue on at least Ubuntu. You can work around this by running sudo apt-get install python3-opengl.

Pext user report: https://github.com/Pext/Pext/issues/11
Ubuntu bug: https://bugs.launchpad.net/ubuntu/+source/python-qt4/+bug/941826

macOS

I cannot brew/pip install anymore

The Homebrew team completely broke pip's --target flag, which Pext depends on. To work around this, Pext automatically creates a ~/.pydistutils.cfg file which resets the broken Homebrew pip defaults and deletes this file after its done installing module dependencies.

As a side effect, this means that using brew install or pip install while Pext is installing module dependencies may fail. If you cannot use brew install or pip install at all anymore after Pext crashed, please delete ~/.pydistutils.cfg if it exists.

The Homebrew team refuses to fix this issue: https://github.com/Homebrew/brew/issues/837

Windows

The python or pip commands do not work/The PATH variable is wrong

In the installer, make sure that 'Include Python in PATH' or similar is checked. Then after the installation, start a new command prompt and type python -V or pip3 to check if it was properly installed. If the version number and the help message are returned respectively, you are good to go further. If not, in case you already had cmd.exe open, restart it or execute refreshenv to reload environment variables. If it still does not work yet, check if the PATH was set in the GUI or manually with cmd.exe.

GUI:

  • Start Menu > Computer (right click) > Properties > Advanced System Settings > Environment Variables
  • Check the PATH for both the system and the current user and in one of them the Python installation directory should be present, which is normally C:\Python36 and C:\Python36\Scripts

cmd.exe:

License

Pext is licensed under the GNU GPLv3+, with exception of artwork and documentation, which are licensed under the Creative Commons Attribution Share-Alike 4.0 license.

Under artwork and documentation fall:

  • All files in the following directories:
    • docs/
    • pext/images/
    • screenshots/
    • .github/
  • All Markdown files in the root directory.
  • logo.png

When attributing the logo (which was donated by vaeringjar), it should be attributed as the Pext Logo by White Paper Fox. Please link to Pext with https://github.com/Pext/Pext or https://pext.hackerchick.me/ and to White Paper Fox with http://www.whitepaperfox.com/ where possible.