Giter Club home page Giter Club logo

pext's Introduction

Pext

Packaging status

Lilly the leoger

REUSE status Linux & macOS Build Status Windows Build status ReadTheDocs Translation status

Matrix

Contents

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 Introduction

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

Check the install instructions at Read the Docs.

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
  • Shift+Escape: Go up to top level and trigger minimize
  • Tab: Tab-complete the current input
  • Enter / Left mouse button: Select entry or run command
  • Shift+Enter: Select entry or run command but explicitly disable minimizing
  • Ctrl+Enter: Run command with arguments
  • 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

Community

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

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

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:
    • assets/
    • docs/
    • pext/images/
    • .github/
  • All Markdown files in the root directory.

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

pext's People

Contributors

agesly avatar airvzxf avatar arosdragon avatar ata2001 avatar comradekingu avatar dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar frispete avatar henleygarcia avatar imgbotapp avatar kozross avatar pasteltheskunk avatar ph20 avatar raamyy avatar recursiveribbons avatar roguescholar avatar roseusgarcia avatar s8321414 avatar santossi avatar step21 avatar tangentfoxy avatar theassassin avatar theimpulson avatar thelastproject avatar vanyasem avatar venomousdingo avatar victorenator avatar vistaus avatar weblate avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pext's Issues

Terminal dump on module close

Is this a bug or a feature request?

Bug.

What Pext version are you running?

Pext v0.11.1-19-g4ca9d49

What OS are you using? (e.g.: Ubuntu 16.04, Windows 10, macOS High Sierra)

Arch Linux.

If this is a bug:

What did you do to run into this bug, step-by-step?
  1. Open Pext and load radiobrowser
  2. Close Pext
  3. Open Pext in the terminal
  4. Choose 'Close Active Module' in the 'Modules' menu
  5. Observe the terminal
What did you expect would happen?

No terminal garbage.

What actually happened?
koz@Sebastian ~]$ pext
python3-opengl is not installed. If Pext fails to render, please try installing it. See https://github.com/Pext/Pext/issues/11.
Using locale: en_NZ 
Localization loaded: True
WARN: Module radiobrowser uses old process_response signature and will not be able to receive an identifier if requested
file:///usr/lib/qt/qml/QtQuick/Controls/Styles/Desktop/TabViewStyle.qml:92:9: QML StyleItem: Cannot anchor to an item that isn't a parent or sibling.
file:///usr/lib/python3.6/site-packages/pext/qml/ModuleData.qml:200: TypeError: Cannot read property 'currentIndex' of null
file:///usr/lib/python3.6/site-packages/pext/qml/ModuleData.qml:200: TypeError: Cannot read property 'currentIndex' of null
file:///usr/lib/python3.6/site-packages/pext/qml/ModuleData.qml:200: TypeError: Cannot read property 'currentIndex' of null
file:///usr/lib/python3.6/site-packages/pext/qml/ModuleData.qml:200: TypeError: Cannot read property 'currentIndex' of null
file:///usr/lib/python3.6/site-packages/pext/qml/ModuleData.qml:200: TypeError: Cannot read property 'currentIndex' of null
file:///usr/lib/python3.6/site-packages/pext/qml/ModuleData.qml:200: TypeError: Cannot read property 'currentIndex' of null
file:///usr/lib/python3.6/site-packages/pext/qml/ModuleData.qml:200: TypeError: Cannot read property 'currentIndex' of null
file:///usr/lib/python3.6/site-packages/pext/qml/ModuleData.qml:200: TypeError: Cannot read property 'currentIndex' of null
file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:258: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:343: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:110: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:111: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:132: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:133: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:187: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:188: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:354: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollBar.qml:76: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollBar.qml:93: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollBar.qml:76: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollBar.qml:93: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/FocusFrame.qml:64: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Styles/Desktop/FocusFrameStyle.qml:51: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:258: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:343: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:110: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:111: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:132: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:133: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:187: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:188: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:354: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollBar.qml:76: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollBar.qml:93: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollBar.qml:76: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollBar.qml:93: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/FocusFrame.qml:64: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Styles/Desktop/FocusFrameStyle.qml:51: ReferenceError: parent is not defined
file:///usr/lib/python3.6/site-packages/pext/qml/ModuleData.qml:145: TypeError: Cannot read property of null
file:///usr/lib/qt/qml/QtQuick/Controls/Private/Control.qml:90: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:258: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:343: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:110: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:111: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:132: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:133: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:187: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:188: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:354: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollBar.qml:76: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollBar.qml:93: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollBar.qml:76: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollBar.qml:93: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/FocusFrame.qml:64: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Styles/Desktop/FocusFrameStyle.qml:51: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:258: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:343: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:110: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:111: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:132: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:133: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:187: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollViewHelper.qml:188: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/ScrollView.qml:354: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollBar.qml:76: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollBar.qml:93: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollBar.qml:76: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/ScrollBar.qml:93: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Private/FocusFrame.qml:64: ReferenceError: parent is not defined
file:///usr/lib/qt/qml/QtQuick/Controls/Styles/Desktop/FocusFrameStyle.qml:51: ReferenceError: parent is not defined

This did not crash Pext.

Is there anything else you would like to add?

No.

Fedora 27: Cannot get module list

qt.network.ssl: QSslSocket: cannot resolve CRYPTO_num_locks
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_id_callback
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_locking_callback
qt.network.ssl: QSslSocket: cannot resolve ERR_free_strings
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_cleanup
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_init
qt.network.ssl: QSslSocket: cannot resolve sk_new_null
qt.network.ssl: QSslSocket: cannot resolve sk_push
qt.network.ssl: QSslSocket: cannot resolve sk_free
qt.network.ssl: QSslSocket: cannot resolve sk_num
qt.network.ssl: QSslSocket: cannot resolve sk_pop_free
qt.network.ssl: QSslSocket: cannot resolve sk_value
qt.network.ssl: QSslSocket: cannot resolve SSL_library_init
qt.network.ssl: QSslSocket: cannot resolve SSL_load_error_strings
qt.network.ssl: QSslSocket: cannot resolve SSL_get_ex_new_index
qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv23_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv2_server_method
qt.network.ssl: QSslSocket: cannot resolve SSLv23_server_method
qt.network.ssl: QSslSocket: cannot resolve X509_STORE_CTX_get_chain
qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_noconf
qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_conf
qt.network.ssl: QSslSocket: cannot resolve SSLeay
qt.network.ssl: QSslSocket: cannot resolve SSLeay_version
qt.network.ssl: Incompatible version of OpenSSL
qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init

This is why Debian needs libssl1.0-dev, not sure which exact package is needed for Fedora.

prioritize history

it would be nice if pext would list first commands that were already ran. this is what tools like rofi do and make them super useful...

Linux Packaging

Packaging Pext a bit better would be nice. It can already be installed under Linux just fine using setup.py, but on macOS, that support is very lacking. macOS support or maybe an AppImage or Snap or so would be awesome.

Edit: If you're here for Hacktoberfest, support for a single of the following formats would suffice:
macOS App
AppImage
Snap
Flatpak
Deb
RPM

Edit 2: title changed to Linux packaging because that's what's being done.

Make update-checker time-based

Currently, the update-checker checks for updates every time Pext is launched. This is not good for several reasons:

  • It causes an unnecessary requests every time an user switches theme, profile or just restarts Pext for whatever reason.
  • It doesn't notify users who leave Pext running for a very long time without restarting it, like those that do not shut down their laptop every day, which is an intended use case.

Due to these issues making the update checking unreliable for intended use cases of Pext, I consider this a bug.

The correct behaviour would probably be as follows:

  • Write to a file when the last update check was
  • Check this file when:
    • Launching Pext
    • Every X amount of time
  • If the last check was too long ago, check for an update

An appropriate time to check for updates must be chosen. Every 24 hours? Something else?

Unity HUD-like module

Unity had a really cool feature called HUD that allowed you to search through the application menus of the active application. It would be really cool if Pext could have a module for this too, but I haven't found any way to do this in Python.

Documentation: https://wiki.ubuntu.com/Unity/HUD
There also seems to be a KRunner extension for it: https://afiestas.org/appmenu-runner-meet-the-kde-hud/ (SSL seems broken, but the page works)
GNOME Shell plugin: https://github.com/p-e-w/plotinus
MATE app (seems most promising): https://github.com/ubuntu-mate/mate-hud

If anyone has an idea on how to do this, or even implement it themselves, that would be amazing. Please state any useful info in this issue.

Screenshots:
Unity
Unity HUD

Adding yourself as a translator to the translators list

Hey everyone,

I'm starting to feel like automatically adding people (with their email) to the list of translators in the Pext about screen was not the right way to go about it. From now on, this translator list will be opt-in.

If you see this issue, and you want to be on the list, please tell me (and how you want to be referred to) and I will add you (if you have made a good translation contribution).

I'm pinging everyone who is currently considered a real translator, so you can make clear if you want to be on this list or not, and if you do, with what info: @VenomousDingo, @ata2001, @Vistaus, @s8321414, @comradekingu.

For (future) translators who do not have a GitHub account, you are free to contact me directly as well: https://hackerchick.me/#contact.

Radiobrowser gives weird terminal dump without a force unload or crash

Is this a bug or a feature request?

Bug.

What Pext version are you running?

Pext v0.11.1-19-g4ca9d49 (according to pext --version)

What OS are you using? (e.g.: Ubuntu 16.04, Windows 10, macOS High Sierra)

Arch Linux.

If this is a bug:

What did you do to run into this bug, step-by-step?
  1. Start Pext in the terminal and load radiobrowser
  2. Start some music playin'
  3. Go to 'By Most Tune-Ins' (I think - I don't exactly recall what triggered this)
  4. Observe this lovely dump in your terminal
[koz@Sebastian ~]$ pext
python3-opengl is not installed. If Pext fails to render, please try installing it. See https://github.com/Pext/Pext/issues/11.
Using locale: en_NZ 
Localization loaded: True
python3-opengl is not installed. If Pext fails to render, please try installing it. See https://github.com/Pext/Pext/issues/11.
Using locale: en_NZ 
Localization loaded: True
WARN: Module radiobrowser uses old process_response signature and will not be able to receive an identifier if requested
WARN: Module radiobrowser caused exception list index out of range
Counting objects: 59, done.
Total 59 (delta 0), reused 0 (delta 0), pack-reused 59
Checking out HEAD
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/pext/__main__.py", line 593, in run
    self._process_tab_action(tab, active_tab)
  File "/usr/lib/python3.6/site-packages/pext/__main__.py", line 554, in _process_tab_action
    tab['vm'].context_menu_base = action[1]
IndexError: list index out of range

This did not force a module unload or crash Pext - music kept playing.

What did you expect would happen?

Terminal spew not occur, especially indicating out-of-range issues.

What actually happened?

See note above.

Is there anything else you would like to add?

No.

Automatic module updates

This would be useful, of course with user permission. It's easy to forget updates if you always have to check manually

Write documentation for module development

While the pext_base and pext_helpers contain all the info necessary to write a module and the other modules can reasonably easily be used as examples, some proper documentation and guides would be good to have.

Look into software like Sphinx to document it, preferably the documentation should also be able to read the function and class comments of the helper files and put those in the generated documentation.

Pext logo doesn't have good textual contrast with (at least some) dark themes

Is this a bug or a feature request?

Bug.

What Pext version are you running?

Pext v0.11.1-19-g4ca9d49 (according to pext --version)

What OS are you using? (e.g.: Ubuntu 16.04, Windows 10, macOS High Sierra)

Arch Linux, with KDE as my DE.

If this is a bug:

What did you do to run into this bug, step-by-step?

Open Pext and looked at the logo with KDE's Breeze Dark theme.

What did you expect would happen?

The logo wouldn't look bad.

What actually happened?

Black text of 'Pext' on a dark grey background lacks contrast and looks bad.
Evidence of appearance

Is there anything else you would like to add?

I think having a dark-theme-friendly logo would be ideal. While I understand dark theme detection isn't easy or even possible, this would be a great UI improvement.

Preparing for 1.0

Pext has gotten rather far and stable, so it's about time for a 1.0 release.

Checklist of things that should be supported before it:

  • Internationalisation support for module metadata
  • Moving selection_made calls into a thread so modules can't lock the UI up there (be very careful here to not break anything!) dd4056b
  • Ensure the API can't crash Pext with bad input
  • Update checking for Pext itself, at least to notify about new versions (possibly disable in AppImage due to native support) 0fcd40a

Great to have before the release but not required:

  • AppImage (see #31)

  • Working macOS .app (see #27)

  • Windows installer

  • Automatic module updates (on/off for checking and auto-updating in UI)

When all of the above (aside perhaps the great to haves) are done:

  • Translations 100% (not required)

Unload modules when uninstalling

Modules get loaded into memory, so can keep running, but may try to use other files bundled with it, which would break horribly if it's uninstalled and the module tries to load it. It'd make the lives of module developers easier if they could assume that they files will just be there.

Load themes without restarting

It should be possible to change the theming without restarting. Research is needed on how to best do this. Info very welcome.

Focus Pext when launching second instance on Windows

This already works on Linux and macOS, but Windows currently doesn't support the way this is done. Will need fixing at some point.

The problem is specifically around

Pext/pext/__main__.py

Lines 2636 to 2640 in a1b5a01

if platform.system() == 'Windows':
print("Pext is already running and foregrounding the running instance is currently not supported "
"on Windows. Doing nothing...")
else:
os.kill(int(open(pidfile, 'r').read()), signal.SIGUSR1)
and

Pext/pext/__main__.py

Lines 3034 to 3035 in a1b5a01

if not platform.system() == 'Windows':
signal.signal(signal.SIGUSR1, signal_handler.handle)
, because Windows doesn't support signals like this.

Terminal spew when installing openweathermap

Is this a bug or a feature request?

Bug.

What Pext version are you running?

Pext v0.11.1-19-g4ca9d49 (according to pext --version)

What OS are you using? (e.g.: Ubuntu 16.04, Windows 10, macOS High Sierra)

Arch Linux.

If this is a bug:

What did you do to run into this bug, step-by-step?
  1. Attempt to install the openweathermap module from the menu.
What did you expect would happen?

No terminal spew.

What actually happened?
QXcbConnection: XCB error: 3 (BadWindow), sequence: 18474, resource id: 29563959, major code: 40 (TranslateCoords), minor code: 0

This did not crash Pext.

Is there anything else you would like to add?

No.

theming?

is there a way to change the colors and look of pext?

Suggestions for Pext modules

โค๏ธ Pext, looks super useful!

What is a good place to collect ideas about potentially interesting modules (if some developers would like to pick them up and implement them or suggest improvements)? How about collecting suggestions in this issue + creating one issue per suggested module? Should this discussion happen here or should a separate repo be created for this?

python-dulwich from AUR provides dulwich for Python2

Pext is written in Python3 so it needs dulwich for Python3. Unfortunately, both python-dulwich packages from AUR contain dulwich for Python2

You could just install it from PyPi using pip3 install dulwich --user

Add settings screen with minimization options

Add some settings menu with at least the following option:

Minimize when done:

  • Minimize to tray (Linux default)
  • Minimize normally (macOS default)
  • Don't minimize (maybe? Not sure yet)

Preferably, also add:

  • Show tray icon
  • Language selector
  • Clipboard selection

(Aka: everything that's currently CLI only)

Test Windows support

Pext should probably mostly run on Windows (Python 3 + Qt5), but this has never been tested as I do not own a Windows machine. Getting the core to start on Windows with instructions would be great. It is acceptable if it does not install modules yet or crashes when trying to send a notification, as those are still hardcoded to notify-send and "git". It is also acceptable if this uses WSL, although the more "native" the better.

So, to summarize:

  • Test if Pext can run under Windows
  • Write instructions for the README on how to do so
  • Document what works and what doesn't work yet

As I may not be able to have access to a Windows machine to verify your work (although I will try!), please add a video or screenshots as proof if possible. The main need is to make sure Pext at least launches on Windows, to hopefully invite further collaboration to ensure ongoing Windows compatibility, either by you or someone else.

Sorting Options

Options for the sorting menu per module (especially Pass):
Alphanumerical (Ascending/Descending)
By Created (Ascending/Descending)
Last Modified (Ascending/Descending)
Last Used

launcher: Exception thrown: replace_command_info_dict

Opening a tab with launcher fails (immediately closes the tab) and gives this error message in the bottom of the window:
launcher: Exception thrown: replace_command_info_dict

in the underlying console, Pext gives:
WARN: Module pass uses old process_response signature and will not be able to receive an identifier if requested

System info:

$ uname -a
Darwin [hostname] 15.6.0 Darwin Kernel Version 15.6.0: Tue Apr 11 16:00:51 PDT 2017; root:xnu-3248.60.11.5.3~1/RELEASE_X86_64 x86_64
$ python3 --version
Python 3.5.3
$ 

Any info is appreciated, thank you.

Move InputDialog to QML

It's about time this part of pure UI code gets moved into QML for consistency with literally everything else.

"QtQuick" version 2.5 is not installed

Hi,

Despite all dependencies being installed, I receive the following error when trying to run the app:

Pext/main.qml:18 module "QtQuick" version 2.5 is not installed

I'm running this on Debian Jessie.

Shader errors and blank window on Ubuntu Gnome 16.10

All the dependencies have been installed correctly.
Installed using pip3 install . --upgrade.
Opens a blank window and throws the same errors multiple times in the terminal.

QOpenGLShaderProgram: could not create shader program
QOpenGLShader: could not create shader
QOpenGLShader: could not create shader
shader compilation failed:
""
QOpenGLShaderProgram::uniformLocation( matrix ): shader program is not linked
QOpenGLShaderProgram::uniformLocation( opacity ): shader program is not linked

Module permission system

This will be rather complex, and won't be any time soon, but will be basically the following:

  • All modules should run in their own process
  • There should be a file defining what a module can do (like where to read/write files)
  • Jail the modules properly

Look into something like firejail, but cross platform.

Discussions and suggestions welcome.

CI support

Pext is long overdue on some CI. Travis is probably the most logical choice. Making sure Pext runs and the (code standard) tests are run would be the scope of this issue. Unfortunately we lack other unit tests.

Add a back button?

I have written a custom module, that executes a script returns some JSON. I parse the JSON and display results. I can select a result entry to examine. Pext renders my result entry when I select it. However there is not a good way (in the UI [that I can see]) to return to my result set. (A back button perhaps?)

I could create a "mlocate" module or similar to demonstrate the awkwardness of this use case.

Also what is the best way to reset your query? E.g. to start over. The best I have found is "ESC". A reset button might be useful to visually indicate you can reset your query.

Ideally, I would think every time you hit the "enter" key, the app should reload query results. But this doesn't seem to be the case. Perhaps because the project is still maturing? Or perhaps the behavior is intentional that your response does not change until you type "ESC".

Dependencies

Could you provide some more information about the dependencies.

I get the following error message:

ImportError: No module named queue

cheers.

Standalone macOS app

Currently, macOS support is a bit lacking. As described in the README, py2app builds are currently aliased because the standalone build does not work. We need a way to make a proper stand-alone .app that people can download and install as-is, without having to keep the downloaded files or so around.

The current issue for standalone builds is documented on StackOverflow, but nobody ever answered and no solution was found: https://stackoverflow.com/questions/45364693/py2app-ignoring-local-packages.

Bonus points for shipping all dependencies in the .app as well!

It is okay to switch away from py2app to something else if it works better, as long as it's freely licensed.

Prepare for 0.9 release

A lot of things have improved since 0.8, so it seems time for a new release again

  • Ensure translations are up-to-date:
    • Dutch
    • Spanish
    • Traditional Chinese
  • Make sure there are no blockers or serious regressions (did you notice anything? Please report quickly!)

Add an unit test

Pext is a beast which has a WAY too big coupling to the Window class in the Python code. Preferably, the added unit test would come along with a decreased coupling that everything has the Window class, but any useful unit test would be great.

Radiobrowser renders text in different sizes

Is this a bug or a feature request?

Bug.

What Pext version are you running?

Pext v0.11.1-19-g4ca9d49 (according to pext --version)

What OS are you using? (e.g.: Ubuntu 16.04, Windows 10, macOS High Sierra)

Arch Linux, with KDE.

If this is a bug:

What did you do to run into this bug, step-by-step?
  1. Start Pext's radiobrowser module
  2. Choose 'By Most Tune-Ins'
  3. Wait for the station list
  4. Hover over one
What did you expect would happen?

The text in each of the three segments to be consistent.

What actually happened?

pext-radiobrowser-text-wtf

Is there anything else you would like to add?

This is a UI quibble, but it seems odd.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.