Streamlit Shortcuts allows you to easily add keyboard shortcuts to your Streamlit buttons.
triggering function with a keyboard shortcut.
⭐ New in v0.1.9
- More robust logic.
- Simplified usage.
- Bug fixes.
- New
example.py
.
pip install streamlit-shortcuts
Check out the example.py
file in the repository for a complete working example. Here's a different snippet:
import streamlit as st
from streamlit_shortcuts import button, add_keyboard_shortcuts
def greet(name):
st.success(f"Hello, {name}!")
button("Greet", "ctrl+shift+g", greet, hint=True, args=("World",))
To run the example, clone the repository and execute:
streamlit run example.py
This will launch a Streamlit app demonstrating various ways to use streamlit-shortcuts.
Extra: define shortcut function with a lambda:
if button("Click me!", "ctrl+shift+c", lambda: st.success("Button clicked!"), hint=True):
st.write("Button was clicked")
- Modifiers: 'Ctrl', 'Shift', 'Alt', 'Meta' ('Cmd' on Mac or 'Win' on Windows, thanks to @toolittlecakes)
- Common Keys: 'Enter', 'Escape', 'Space'
- Arrow Keys: 'ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'
Examples of Key Combinations:
- 'Ctrl+Enter'
- 'Shift+ArrowUp'
- 'Alt+Space'
For a complete list of key values, refer to: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values
We use semantic versioning. The current version is stored in the VERSION
file in the root of the repository.
Contributions are welcome! If you have suggestions for improvements or bug fixes, please follow these steps:
- Fork the repository
- Create a new branch for your feature or bugfix
- Make your changes
- Add or update tests as necessary
- Update the
VERSION
file if your changes warrant a version bump - Submit a pull request
Please make sure to update tests as appropriate and adhere to the existing coding style.
To release a new version:
- Update the
VERSION
file with the new version number - Commit the change:
git commit -am "Bump version to X.Y.Z"
- Create a new tag:
git tag vX.Y.Z
- Push the changes and the tag:
git push && git push --tags
The GitHub Actions workflow will automatically create a new release and publish to PyPI.
- @toolittlecakes
- Added 'Meta' modifier
- @quantum-ernest
- Improved usage ergonomics
- Keyboard hints
- @taylor-ennen
- Fixed usage
flow
of code
- Fixed usage
Solution inspired by:
Special thanks to @brunomsantiago and @TomJohnH for their initial work on this concept.
Wrapped and extended for easier usage by the Streamlit Shortcuts team.