💾 Archived View for bbs.geminispace.org › u › mediocregopher › 11939 captured on 2023-12-28 at 16:49:08. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
Re: "How to open files and URLs with the preferred application..."
@clseibold thank you for doing my research for me :) I'll remain contented with xdg-open then.
re: working in a terminal-only environment, I can't think one would.... what the behavior even be? Run a process as a background job in the current shell?
Nov 22 · 5 weeks ago
🚀 clseibold · Nov 22 at 09:32:
@mediocregopher Personally, I would expect that a system where you can specify default applications for different filetypes and URIs be standardized in the OS APIs, and that a cli `open` command would call out to this API and open the file/URI with that default application as a subprocess of the shell. I believe this is essentially what macOS does (macOS does have an `open` command), and it's also what Windows does, and Haiku afaik. Because it would be a part of the OS, it would work in a terminal-only environment and a graphical environment, and there'd be one standard across all variants/extensions of the OS.
@clseibold Yes, most languages will have some module for OS detection. You can check against `$OSTYPE`, which I believe should be available for pretty much every major system. Subprocessing out to `uname` can also be useful for this purpose. I can't remember which I did... my use case was in a makefile (for gnu make, since bsd make does not support if statements). So I think it makes sense in a makefile (again, targeting a non-bsd system) but may not have the same use case in a more full featured language/environment.
How to open files and URLs with the preferred application in multiple operating systems? Not really related to Gemini, but I need to implement a way in my Gemini client to open unsupported URLs and files on their proper apps, mostly on Linux but ideally in other systems as well. Fellows who have written their own clients, how did you do it?