I see you vim users, who want to add keyboard shortcuts to navigate through the Streamlit app. Using Python librairies like pynput or pyperclip would not work on all the usecases.
But there's a way to add custom interactions to the Streamlit Frontend code by breaking out of a components iframe. This hack gives you the ability to manipulate any rendered widget through Javascript, as if you were acting yourself on the webpage. In this video we will see a small example to add keyboard shortcuts to click on Streamlit buttons and send Python variables back to your frontend clipboard, so you can control your app only through keyboard!
00:00 Intro
00:22 Setup the Session State app and components.html
00:44 Introduce the Streamlit Iframe Sandbox Breaking hack
01:29 Manipulate the color of buttons in Javascript IFrame
02:12 Attach keyboard listeners
02:23 Can't we just use pynput as a Python keyboard listener?
03:14 Copy Python value through Javascript IFrame
03:46 How about reading your passwords from the clipboard?
04:16 Outro - Can we use this to save the Streamlit app as PDF?
???? Code: https://github.com/andfanilo/social-media-tutorials/tree/master/20220411-streamlit_keyboard_clipboard
???? Links
- Streamlit website: https://streamlit.io/
- Streamlit docs: https://docs.streamlit.io/
- Streamlit forum: https://discuss.streamlit.io/
- Streamlit Discord (official): https://discord.gg/bTz5EDYh9Z
- The original discussion on Github: https://github.com/streamlit/streamlit/issues/1291#issuecomment-1022408379
????Follow my daily updates on Twitter: https://twitter.com/andfanilo
????️ My other links: https://linktr.ee/andfanilo
☕ Want to support me? https://www.buymeacoffee.com/andfanilo
Want to start the Youtube Grind too? Here are some of my tools (Affiliate links)
???? Music (Epidemic Sound) - https://www.epidemicsound.com/referral/a2p22s
???? 15th video out of my goal of 35 videos for a year! We're almost halfway yesss. I tried a bit of experimenting in this one, I had a new Lavalier Microphone to test (tell me in the comments if you like how it sounds) and I really wanted to emphasize "the hacker atmosphere".
Well to be honest, this type of video was sooo experimental I almost gave up in the middle, I thought the idea was not very good in the middle of editing..so uuuhhhh if you liked it, please consider bumping the like button for the morale boost ????. Thank you again for your time!
???? On this channel, we love building a lot of small yet smart Streamlit apps to improve our Python chops, and recall our stories around Data Science and Content Creation. Like & Subscribe if you would like to see more videos!
#streamlit #python #datascience #dataapps
⚠️ Disclaimer: This video is not sponsored. Links included in this description might be affiliate links. If you purchase a product or service with the links that I provide I may receive a small commission. Thank you for supporting my channel so I can continue to provide you with free content each week!