Show HN: TUI for managing XDG default applications
Posted by mitjafelicijan 4 days ago
Author here. I made this little TUI program for managing default applications on the Linux desktop.
Maybe some of you will find it useful.
Happy to answer any questions.
Comments
Comment by piskov 4 days ago
Bravo!
Comment by codethief 3 days ago
Could you elaborate? I mean, I get the usual criticism of web/Electron-based desktop applications (slow, includes a whole Chrome engine, non-native UI, …) but Claude Code isn't one of them?
Comment by piskov 3 days ago
tldr; the ui you see in the terminal is react-based in claude code. As for opencode just see their repo on github.
Comment by thehamkercat 3 days ago
the startup time is crazy, you can start writing as soon as you hit the command
(I don't use codex, just noticed that it's crazy fast)
Comment by DrammBA 3 days ago
Comment by piskov 3 days ago
Let them cook as much as they can.
Comment by forgotpwd16 3 days ago
Comment by coppsilgold 3 days ago
I can see how that tool can be useful, but only if it's included in official repos. Editing mimeapps.list is simpler than the hassle of downloading and building this tool.
Comment by jwrallie 4 days ago
I always alias open to xdg-open, it’s so useful to open a file directly from the terminal.
Comment by mitjafelicijan 4 days ago
Comment by ranger_danger 4 days ago
Comment by mitjafelicijan 4 days ago
Comment by fouc 4 days ago
Comment by jedahan 4 days ago
Comment by ekipan 3 days ago
Comment by IAmLiterallyAB 3 days ago
Comment by mitjafelicijan 3 days ago
Comment by undume 2 days ago
Comment by sourcegrift 4 days ago
Comment by nickjj 4 days ago
I've only been using Linux for a few weeks but what am I missing here?
I set a bunch of mime types in `~/.config/mimeapps.list` which are assigned to desktop apps and they all open perfectly with `xdg-open` or when I launch them through a file manager.
It is documented in the XDG specification https://specifications.freedesktop.org/mime-apps/latest/file....
Comment by forgotpwd16 4 days ago
Comment by TingPing 4 days ago
I’d have to look into your specific case but `gio mime` and `gio open` do the right things.
Comment by sam_lowry_ 4 days ago
There are gotchas, for instance Chrom,{e,ium} insists on XDG_DESKTOP_DIR != XDG_DOWNLOAD_DIR.
See this bug report from a confused user: https://issues.chromium.org/issues/41076564
Comment by mikkupikku 4 days ago
This isn't an XDG issue. It's a chromium engineers being silly pricks that think they know better than the power users who obviously went out of their way to create such a configuration. Also I bet it would work if you set your XDG_DESKTOP_DIR to ~/Download/
Comment by flexagoon 3 days ago
Comment by saturn_vk 4 days ago
Comment by mitjafelicijan 4 days ago
Comment by t-3 4 days ago
Comment by mitjafelicijan 4 days ago
Comment by renewiltord 3 days ago
But this seems human-written? Then it is interesting. Thank you for sharing.
Comment by mitjafelicijan 3 days ago
I heard so many great things about ratatui. I am, however, not well versed in Rust. Only did a couple of toy little things in it.
Comment by untech 4 days ago
Comment by cda2100 4 days ago
Comment by JonAtkinson 4 days ago
Comment by juggernot 4 days ago
Comment by rolymath 4 days ago
Either way, why don't you show us some of the stuff you've made.
Comment by forgotpwd16 4 days ago
Compared to what slopcalypse has brought, this one (project; vibe coded maybe, certainly not slop) at very least is useful (also is quite short; within a sea of thousand LOC generated in 1s this is refreshing).
Comment by ranger_danger 4 days ago
Comment by roman_soldier 4 days ago
Comment by mitjafelicijan 4 days ago
The same goes with aliases. Why not just use the actual commands. You give it your best shot, and sometimes something good comes out. And sometimes it's crap. That's life.
And I made it for fun and to learn something. And it wasn't AI coded. It's like 200 lines. I wanted to learn termbox2.h a bit more than I already had.
Comment by brw 3 days ago
And now I know about termbox2, which looks very cool. Looking through the example projects[1] in the README I also found ictree[2], which does exactly what I was looking for yesterday (turning the output of `find` into an ncdu-like/interactive tree interface). I didn't manage to find something for that through googling around or asking LLMs, but thanks to you posting this here I did, so thanks!
Comment by mitjafelicijan 3 days ago
It's an amazing library. And all that juice in one stb-style header file. You just gotta love it.
And if you are interested in such small libraries, I have a Github list with a bunch of them that I found.
https://github.com/stars/mitjafelicijan/lists/stb-style-mini...
Comment by wolttam 4 days ago
Comment by mikkupikku 3 days ago
Comment by samtrack2019 4 days ago
Comment by jrm4 3 days ago
Comment by mitjafelicijan 3 days ago
It is just getting tiring that people assume more and more that things were written with AI for everything. It's like, OMG, can you stop it for a second. And who cares, really. Do your due diligence, check the code and decide for yourself. But maybe, this is just projection. Or a nice way of insulting/dismissing people, which I find quite funny.
And like you said, the age of AI-assisted coding is already here. There is beauty in piping core utils together and being really productive with them. No doubt about it. But there are also new ways of computing emerging, and we should learn about that too.
Comment by roman_soldier 8 hours ago