Comments (5)
It's only when you hold it down.
Never touched rust but as it's so popular I figured I should dip my toes in, and this seems like a good project to join in on the fun. I might try and take a stab at some of these but don't wanna get your hopes up in case I fail or don't have time haha.
Also not getting the auto-downloaded icons ¯\(ツ)/¯
from steam-tui.
Thanks 🎉 !
Hm, I haven't really noticed this. Is it for rapid pressing or when you hold down? There do definitely need to be more filters (DLCs, demos, other than games; see #11)
You can search, but that doesn't address the issue.
I have 2 theories:
- When you hit a new game, theres a blocking call to get an image if one does not exist (only the first time though). That could be the slow down, but should be better once you have scrolled the library. Changing the image to ANSI is also blocking.
- Since there's no debouncing in place, the event is triggered multiple times causing issues.
It might be both lol.
To address 1. we'd need background downloads (which actually couples with the proposed async implementation of #29), and/or ANSI caching. I think this is going to be a change to the widget itself. The original author is unresponsive, so we're working off this fork: https://github.com/AnotherGroupChat/tui-image/tree/rgba
To address 2 we need some debouncing logic, which I think is straightforward? Something I've never had to implement, but would probably require a change to the event handling:
Line 40 in e48c252
anyway, I don't expect anyone to fix this, just suggesting solutions to the ether. When/if I do start working on this program again, I think this, #29, and #8 will be noticable speed improvements.
from steam-tui.
Figured out why I'm not getting the images its cause I pulled the steam-tui instead of steam-tui-git from AUR. false alarm!
from steam-tui.
Yeah, I think rust is fun. If it's only on hold down, then # 2 (debouncing) is likely the issue.
So there are 2 event types, one is a timed event (we want the main loop to run every so often to communicate with the client thread), the other is an event loop (we want to respond to a user push). So debouncing means that we should not stack events, but wait an interval before the one next event queues. I think? There's probably better explanations online (all my quick Googling points me at JavaScript examples though). Good luck! Let me know if you run into any problems, and checkout Some basic rust documentation first: https://learnxinyminutes.com/docs/rust/
Rust is weird at first, but pretty powerful once you understand its quirks
from steam-tui.
Yeah I see it. It overshoots and i slow to take off. Managing the event queue is the right way to do this.
from steam-tui.
Related Issues (20)
- [Crash] Not sure what happened HOT 2
- Failed: Could not find executable to launch. HOT 4
- how do I install the thing? do I need to compile all of the rust files?
- `nix build` fails with 2 test errors HOT 3
- Some parts of `steam-tui` are barely readable on light terminals HOT 2
- Custom Launch Scripts HOT 2
- Windows Support HOT 19
- Migrate to Crossterm over Termion HOT 1
- Most games are borked when launched through `steamcmd` or directly - consider launching games using `steam -silent -applaunch <id>` by default HOT 6
- Double entries / filter by installed HOT 3
- Cannot login with cargo version. Binary version refuses to work at all. HOT 7
- will this keep proton launch settings? HOT 1
- cannot execute: required file not found HOT 5
- Blank Menu After Login - Crashes on Navigation Attempt HOT 18
- run is not working HOT 2
- Blank games list after login HOT 13
- ARM builds? HOT 1
- pkg-config nixpkgs latest HOT 1
- Unclear on how to launch HOT 1
- Steam-tui can't find steamcmd HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from steam-tui.