Skip to main content

Streamlit keyboard shortcuts for your buttons.

Project description

Streamlit Shortcuts

Streamlit Shortcuts allows you to easily add keyboard shortcuts to your Streamlit buttons.

Installation

pip install streamlit-shortcuts

Example

⭐ New in v0.1.9:

  • More robust logic.
  • Simplified usage.
  • Bug fixes.
  • New example.py for easy testing after pulling (change import path if installed)

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",))

# Using a lambda
if button("Click me!", "ctrl+shift+c", lambda: st.success("Button clicked!"), hint=True):
    st.write("Button was clicked")

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.

Keys

  • 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

Versioning

We use semantic versioning. The current version is stored in the VERSION file in the root of the repository.

Contributing

Contributions are welcome! If you have suggestions for improvements or bug fixes, please follow these steps:

  1. Fork the repository
  2. Create a new branch for your feature or bugfix
  3. Make your changes
  4. Add or update tests as necessary
  5. Update the VERSION file if your changes warrant a version bump
  6. Submit a pull request

Please make sure to update tests as appropriate and adhere to the existing coding style.

Releasing New Versions

To release a new version:

  1. Update the VERSION file with the new version number
  2. Commit the change: git commit -am "Bump version to X.Y.Z"
  3. Create a new tag: git tag vX.Y.Z
  4. 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.

Contributors

  • @toolittlecakes
    • Added 'Meta' modifier
  • @quantum-ernest
    • Improved usage ergonomics
    • Keyboard hints
  • @taylor-ennen
    • Fixed usage flow of code

Credits

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

streamlit_shortcuts-0.1.9.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

streamlit_shortcuts-0.1.9-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

Details for the file streamlit_shortcuts-0.1.9.tar.gz.

File metadata

  • Download URL: streamlit_shortcuts-0.1.9.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for streamlit_shortcuts-0.1.9.tar.gz
Algorithm Hash digest
SHA256 0d19a430f214143371e57c1c8fc021927317db01d204cbda7c380124065466e0
MD5 d9b69f95fafc5e9be38aa291393848ac
BLAKE2b-256 7c6a8b39496d9771a88d9660d8bd7b8331064cfab78749a03e6b287a9e7f6e56

See more details on using hashes here.

File details

Details for the file streamlit_shortcuts-0.1.9-py3-none-any.whl.

File metadata

File hashes

Hashes for streamlit_shortcuts-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 f0b37c912614a1fd0cd069476946a3354a779a64a332e80bc16f2e769e63bfbb
MD5 8e99c18ab6d53f030d883039f97b6f11
BLAKE2b-256 5748a76df0487c8ef878800e9abc266e26e66eb280d84d5e0976ef89b66aa19e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page