Replies: 4 comments 8 replies
-
I guess I was envisioning the purpose of 3 interfaces a little differently:
Here's a lame visual representation of the above verbal description:
Or, if that's a bit overkill, maybe the GUI and TUI should have equivalent functionality, both covering the top 80% of use cases, while the CLI covers 100%. And I have conveniently avoided trying to define "features" or list what they are, because I don't really have a clear picture of that yet. I don't see any of the CLI options as being redundant or conflicting, though, because that's what I use to run tests more quickly. For example, I can do an install almost non-interactively with So, taking the CLI options are also used to run "subcommands" that may or may not require a UI, such as Finally, I'm not trying to say that this is how things should be, but just how I have subconsciously pictured it up till now. If we can clarify this together, then I will be a lot more comfortable going forward. |
Beta Was this translation helpful? Give feedback.
-
In the Bash script repo, the Launcher script handled all things pertaining to an installed use of Logos. The Control Panel script handled all things pertaining to the Wine bottle. The Installer of course handled installs, but also regenerating the Launcher and Control Panel scripts so that users didn't have to reinstall their entire Logos system, and this regenerating action was the motivation to establish a config file. That should give you some history of this. My intent with this rewrite was to merge the Installer, the Launcher, and the Control Panel of the Bash script collection into a single application with near feature-parity. I imagine the program then being usable like this:
In the current implementation, the TUI relies on some optargs to get full functionality (e.g., In the Bash set up, before I implemented optargs, Zenity was used for install, and optargs were used for everything else. Following my implementation of optargs in Bash, I also implemented a basic TUI to replace Zenity so that install could happen at CLI. So in the Bash setup, the split was:
With our current implementation, I'd say we are at something like (and of course this is highly subjective):
Here is our current
The one command in here I was planning to obsolete is The The only options I think are truly
The other option here that is a little odd is the My main issue with the "action" commands is that they seem to be a secondary set of optargs, and I think it would be easy for us to move them to the optargs section as new optargs, e.g., That was what I envisioned when I embarked on the rewrite. Happy to receive pushback here. |
Beta Was this translation helpful? Give feedback.
-
This is great. I think we're saying basically the same thing on the question of how functional the various interfaces should be.
I have no problem with this, but if there's a hope to pursue the idea farther in the future, then we could also just hide it from
If these are rarely-used or only used by testers, then I'd be in favor of dropping them from the GUI for simplicity's sake. The GUI user shouldn't be given choices that they're unlikely to use, in my opinion. The same goes for
I hadn't thought about it this way, but, yes, it makes sense to consider that the "main app" is the control panel with the installer only being a dependent of that.
I be happy to drop it if it's not being used. I haven't bothered to use it. But one thing I do a lot of in testing, though, is
Yes, I agree that there should be a I now have a clearer idea of the flow, with a paradigm of thinking of the control panel as the "main app", so I'd like to work on a rewrite of |
Beta Was this translation helpful? Give feedback.
-
One more thought. I see now maybe another source of confusion: runtime config. Since we want to handle input from a config file, from the CLI, and from environment variables, the runtime config can't be fully established until all 3 sources have been evaluated. But some "actions" require that the config be set before they're run. So this is the general flow that I see:
|
Beta Was this translation helpful? Give feedback.
-
One of the big upgrades of the Python update is having a fuller TUI/GUI experience over Bash's install-only interface and the CLI optargs (besides the launcher and control panel scripts). The Python script has optargs, a TUI, and a GUI. Due to differences in limitations between each interface, some of these conflict.
As an example, the
--skip-fonts
flag was designed for the CLI of the Bash interface ofLogosLinuxInstaller.sh
which was an install-only script with no TUI. There was no checkbox in the install TUI or the Zenity GUI for skipping fonts; it had to be declared on the CLI.With the introduction of an interactive TUI and GUI, some of the optargs no longer make sense, like
--skip-fonts
. The current GUI has this flag built in as a checkbox, but the current TUI does not. How should we handle these competing flags and interfaces?Finally, to finish the above discussion, should there be an option in the TUI/GUI control panel to install fonts in case the user skips them but realizes he needs them later? :D
Beta Was this translation helpful? Give feedback.
All reactions