Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
silkaj
silkaj
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 155
    • Issues 155
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 4
    • Merge Requests 4
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Package Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • clients
  • python
  • silkajsilkaj
  • Issues
  • #18

Closed
Open
Opened Nov 25, 2016 by Moul@moulOwner

Use a graphical interface

Currently silkaj is using dirty one-shot os.system("clear") then tabulate lib to display charts.

It's not possible to sort lines and to keep open all this charts. It could also be possible to see evolving charts.

The library should preferably be asynchronous.

Silkaj can be a multiple-gui client. Silkaj would stay a CLI client. Then, I would preferably go first for a console client using blessed/curses, then a GUI client using PyGObject/GTK4.


Curses libraries

All in Debian

  • blessed − doc
  • urwid
  • curtisies
  • terminaltables
  • npyscreen − Blog article
  • picotui
  • asciimatics
  • bitcoind-ncurses2

Curses

To do so, I suggest to use curses lib. We could takes example and use curses lib used on XMPP console client Poezio.

  • (es) Prez

Inspiration

  • Ranger
  • Poezio

GTK/PyGObject

  • https://pygobject.readthedocs.io/en/latest/

GTK4 could also be a solution, but it will needs too much works and will almost reproduce Sakia.

  • Tutorial
  • Could be a nice way to have it on the Librem 5/PinePhone

Modern Python applications which uses Python3/GTK+3: Lollypop. Pitivi, (Gajim, Deluge).


GUI Desktop frameworks

  • https://www.analyticsindiamag.com/8-python-gui-frameworks-for-developers/

Terminal not based on Ncurses (in Debian)

  • python-prompt-toolkit

Web framework

  • Flask: click-web click module, would generate forms from CLI commands and options
  • Sanic

Web/Multi-platform/Android

  • GUY : un module python3 pour créer des GUI multiplateforme (android aussi!)
  • wuy, guy
  • Kivy
  • BeeWare:
    • Toga, in alpha stage, based on GTK+3, https://toga.readthedocs.io/en/latest/
    • Article
  • Using Python for Mobile Development: Kivy vs BeeWare

GUI from the CLI

  • Gooey

Aioconsole

  • https://github.com/vxgmichel/aioconsole This is an async/await Python console
Edited Nov 26, 2020 by Moul
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Future
Milestone
Future
Assign milestone
Time tracking
None
Due date
None
Reference: clients/python/silkaj#18