upvote
VIM does this perfectly. Not a single feature is exposed to the user. Every feature the user might ever want is supported, they need just Google for which keyboard incantation to invoke it.
reply
The testing that would be required to support toggles would be for 2^n. I’m not sure that’s a good solution.
reply
Makes me wish more apps followed the UNIX model of separating every feature into separate applications with well documented interfaces that only change when new features absolutely require it and otherwise are only updated for security patches.
reply
Yeah I like that idea too. Theres a lot of people who would have trouble with that approach though.
reply
One common case I notice this is with FFMPEG. Everything that saves a video needs its own dialog with different settings. It would make a lot more sense if you had 1 single polished FFMPEG frontend that everyone just streamed data to.

On the other hand, I'm afraid that if this did happen that FFMPEG frontend would look like a GNOME app and I would hate using it.

reply
This is something I like about lots of web apis.

Want to generate a video, it's just a few lines of code. Want to connect the user's camera (with permission), it's just a few lines of code. Websockets? About 4 lines of code.

There could be 1000s of options for each of those but they mostly distilled it down to what most people need, and they're cross platform.

reply
Me, on the other hand, love ffmpeg, because I notice my ytdlp using it and my vlc player sometimes using it and I have two homemade powrshell scripts using it to convert flac to mp3 and whatever. I don't want to open a program and figure out it's UI for those things. It has a job, it does it well, you can sort of pipe things to it and I'm very happy.
reply
I'm not sure you understood what I mean. I'm talking about applications like Krita using FFMPEG to export their data as video. Sometimes they include their own FFMPEG instead of using FFMPEG installed in the system. Each of them has its own dialog. The only way to input custom settings for FFMPEG would be to export in a lossless video format and then reencode using FFMPEG, when you should be able to just "connect" a data stream to an FFMPEG frontend as the input and the frontend has all the options you might want to customize how that data is turned into a .mp4 file or .mov file.
reply
> The testing that would be required to support toggles would be for 2^n

I don't think that's really true, unless the behavior of each toggle is tightly coupled to the behavior each other toggle.

Case in point - most mature apps nowadays do have hundreds of toggles for various settings and features.

reply
deleted
reply