Skip to content

next-gen framework for building desktop widgets using Python

License

Notifications You must be signed in to change notification settings

undonepotato/fabric

 
 

Repository files navigation

Fabric

ricing made easy! 🍙

Fabric is a Python widgets framework for *Nix based systems designed to provide a high-level and signal-based way to make awesome widgets. It's built on Cairo and GTK, making powerful graphics features simple to use!

A quick example:

import fabric
from fabric.widgets import Window, Label
Window(children=Label("Hello, World"), all_visible=True)
fabric.start()

A window with a gray background that says Hello, World in the center

Features

  • Simple as pie — a widget in just a few lines
  • Powerful features make creating beautiful, dynamic, and interactive widgets divine
  • Wayland and X11 ready!
  • Access all your other beloved Python libraries
  • Code auto-completions supported
  • Signal-based flow; no polling required
  • No external scripts necessary, meaning better performance — everything is done entirely in Python!
  • Inspired from other projects on the community like eww, ags, and Waybar, providing a familiar experience

Installation

See the installation guide.

Documentation and Support

Note

Fabric (as well as its documentation) is still a work in progress; the API is subject to change.

Fabric's documentation has next steps after installation, tutorials, and references, and is hosted in a dedicated GitHub repository.

If you have questions or want to talk about Fabric, feel free to join us on Discord!

Contributing

See Fabric's developer guide over at the wiki. This covers how to contribute, how to set up a development environment, and this project's code style guidelines.

Showcase

config: examples/bar and examples/side-panel A Fabric demonstration with a vertical bar, terminal-style widget, and a status widget

config: examples/vertical-bar config can be found under the examples/vertical-bar directory

About

next-gen framework for building desktop widgets using Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 97.8%
  • JavaScript 1.1%
  • Shell 1.1%