this post was submitted on 20 Jan 2026
5 points (100.0% liked)

Show & Tell

38 readers
26 users here now

Show & Tell

A community for developers to share personal projects of any size or polish. Anything software/firmware/hardware.. ALL THE WARES!! Side projects, experiments, learning builds, half-finished ideas — all welcome.

Explain what you built, why you built it, and what you learned. Give feedback if you can. Ask for feedback if you want.

Rules

  1. Personal projects only (no company or paid product marketing)
  2. Include context: what it is, what tech you used, what you learned
  3. Be constructive and respectful
  4. No spam or referral farming
  5. Feedback is encouraged, not mandatory
  6. Mark NSFW content clearly
  7. If you see a project you like and you think is cool consider giving it a star!
AI Rules

Guys it's 2026, if you're not using AI at this point you're falling behind. That being said this community is not for showing off AI prompts that you put into gh Copilot or Claude or whatever, all that's showing the world is "hey I know how to make something up and explain it in 20 words while having the expectations of a team who gives a shit! Woow look at me!!".

So do your best to disclose where/how/why you used AI in your code, and if you suspect a project is entirely AI generated slop,, don't engage, don't bully, just let them eat their foot ¯\_(ツ)_/¯.

Icon and Banner were generated using ChatGPT, they're placeholders as of 1/20/26, will replace them with real art soon! https://chatgpt.com/share/696fa8bc-f3e0-8012-b6d7-350a8b53a0e1

founded 14 hours ago
MODERATORS
 

I bought this simple ass little macropad that uses real keyboard switches and for like a year I had no idea how to use it. There was no dirt simple file configed little command I can plant in my i3/config and be happy with it so I built it!

It was my first attempt at building a production-level thing out of rust and I'm really happy with it. Now I can finally use my goddamn macropad!!

top 4 comments
sorted by: hot top controversial new old
[–] ExLisper@lemmy.curiana.net 2 points 13 hours ago (1 children)
   let config = match maybe_config {
        Some(c) => c,
        None => {
            panic!("didn't find config file");
        }
    };

let config = maybe_config.expect("didn't find config file");

:)

I like the community idea. Hope to see more posts here.

[–] danhab99@programming.dev 2 points 6 hours ago

Yeah this was written before I knew too much about rust, the syntax can definitely be reworked I just need to find the time.

[–] CameronDev@programming.dev 0 points 14 hours ago* (last edited 14 hours ago) (1 children)
            let c_raw = cmd.to_string();

            thread::spawn(move || {
                let c = Command::new("/bin/sh")
                    .args(["-c", c_raw.as_str()])
                    .output();

Did you try just splitting the c_raw into its command using shlex. Could save the intermediate sh process?

Edit: I guess you could also be using it for $PATH, in which case fair enough.

[–] danhab99@programming.dev 2 points 6 hours ago

I have a vague memory that this is how I wrote it but now I'm noticing that I did that in similar projects and got my memory crossed.. I need to do this.