Skip to content
This repository has been archived by the owner on Mar 12, 2021. It is now read-only.

firecat53/py-multistatus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PROJECT ARCHIVED AND NO LONGER MAINTAINED

py_multistatus

Statusbar information script with configurable update intervals for each block of information. Designed for window managers using a separate bar such as LemonBoy's bar, Moetune's some_sorta_bar (TODO), or dzen (TODO). Information is generated and piped to the bar input. A configuration file is included, and plugins can easily be added if desired. Plugins (so far) include:

  • Monsterwm desktop status display
  • Date/time
  • Load average
  • New mail notifier for maildir(s) + weather display
  • Disk usage warnings
  • Battery status display
  • Network up/down state and upload/download speed + OpenVPN status
  • Music player status: MPD/Mopidy and Pianobar
  • Current Watson project

Idea and code based heavily on py3status. Much thanks to kaskak, as I studied his code intensely before I started. I had no prior experience with threading/queue/fifo before starting this project!

Scott Hansen <firecat4153@gmail.com>

Features:

  • Python 3.x
  • Use less CPU cycles for infrequently needed information updates
  • Configurable for different statusbars (bar, some_sorta_bar, etc.)
  • Easily add new plugins (see plugin_skel.py in the plugins directory).
  • Includes a python monsterstart.py script to start monsterwm and pipe its desktop output to a FIFO for reading by py-multistatus.

Requires:

  • Python 3+
  • psutil
  • An installed statusbar (bar, some_sorta_bar, etc.)

Installation:

  • Archlinux AUR (TODO)
  • # python setup.py install OR
  • $ python setup.py install --user OR
  • pip install py_multistatus (TODO)

License:

  • MIT

Usage:

  • Copy configuration file status.cfg from /usr/share/py-multistatus to ~/.config/py-multistatus and edit. Make sure the bar executable and all the formatting symbols are correct for the bar you are using.
  • Ensure mail accounts and directories are correct. If you want the weather displayed while there are no mail notifications, create a text file ~/.weather with the weather add there however you like. The top line of the file will be displayed.
  • Add multistatus & to ~/.xinitrc before the exec <windowmanager line (or before /path/to/monsterstart.py)
  • The bar is automatically started by multistatus
  • If using monsterstart.py, copy it someplace into your $PATH. It starts multistatus so use it in .xinitrc instead.

ISSUES:

  • Some stlarch font icons (higher numbers) cause problems with the display with 'bar'
  • Network speed indicator occasionally crashes when switching networks.
  • If the statusbar is killed and restarted manually, the monsterwm desktop info doesn't always immediately appear.

TODO:

  1. Test/add support for other bars beside LemonBoy's bar.
  2. Add logging/error detection for threads. Possibly auto-restart crashed threads
  3. Add option to periodically update the weather? (clickable bars only)
  4. Volume indication. Maybe volume controls? (clickable bars only)
  5. Possible inotify support for file-based information?
  6. Investigate using concurrent.futures in place of threads/queues.

About

Statusbar information script with configurable update intervals for each item for statusbars such as 'bar', 'some_sorta_bar' and dzen

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages