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)
