Ridiculously Uncomplicated macOS Python Statusbar apps.
import rumps
class AwesomeStatusBarApp(rumps.App):
    @rumps.clicked("Preferences")
    def prefs(self, _):
        rumps.alert("jk! no preferences available!")
    @rumps.clicked("Silly button")
    def onoff(self, sender):
        sender.state = not sender.state
    @rumps.clicked("Say hi")
    def sayhi(self, _):
        rumps.notification("Awesome title", "amazing subtitle", "hi!!1")
if __name__ == "__main__":
    AwesomeStatusBarApp("Awesome App").run()How fun!?
rumps can greatly shorten the code required to generate a working app. No PyObjC underscore syntax required!
rumps is for any console-based program that would benefit from a simple configuration toolbar or launch menu.
Good for:
- Notification-center-based app
 - Controlling daemons / launching separate programs
 - Updating simple info from web APIs on a timer
 
Not good for:
- Any app that is first and foremost a GUI application
 
- PyObjC
 - Python 2.6+
 
Mac OS X 10.6 was shipped with Python 2.6 as the default version and PyObjC has been included in the default Python
since Mac OS X 10.5. If you're using Mac OS X 10.6+ and the default Python that came with it, then rumps should be
good to go!
- py2app
 
For creating standalone apps, just make sure to include rumps in the packages list. Most simple statusbar-based
apps are just "background" apps (no icon in the dock; inability to tab to the application) so it is likely that you
would want to set 'LSUIElement' to True. A basic setup.py would look like,
from setuptools import setup
APP = ['example_class.py']
DATA_FILES = []
OPTIONS = {
    'argv_emulation': True,
    'plist': {
        'LSUIElement': True,
    },
    'packages': ['rumps'],
}
setup(
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)With this you can then create a standalone,
python setup.py py2appUsing pip,
pip install rumpsOr from source,
python setup.py installBoth of which will require sudo if installing in a system-wide location.
There are issues with using virtualenv because of the way the Python
executable is copied. Although rumps attempts to apply a fix (hack) during
the install process, it is not suggested to use virtualenv.
To ensure proper functionality, either use venv (packaged with Python 3) or
create a standalone app using py2app.
python3 -m venv envDocumentation is available at http://rumps.readthedocs.org
"Modified BSD License". See LICENSE for details. Copyright Jared Suttles, 2020.
BackgroundsForReddit - karlaugsten
BluetoothEvent - lostman-github
crypto-ticker-macOS - mqulateen
currency-converter - ahmedelgohary
hs100-status-bar - craig-davis
koinex-status-ticker - kirantambe
nowplaying_statusbar - MataiulS
osx-bamboo-plan-status - spalter
project_screen_to_lifx - emiraga
rescuetime_statusbar - MauriceZ
rideindegochecker - josepvalls
sb-translate - leandroltavares
SpaceSwitcher - SankaitLaroiya
Statusbar Converter - mindaugasw
Telkom-ADSL-Data-Usage - parautenbach
votingpowerbar - therealwolf42
work_time_percent_applet - Benhgift
If you've submitted a pull request and need it reviewed, please request a review from @daredoes (contributing in free time, so please be patient)
