-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
App roadmap #183
Comments
What's the distinction between "Settings" and "Registry Editor"? Some other things -- everything optional of course:
|
What are those stars? And numbers? |
This is all fictional information for fun. |
In my idea settings allow graphically modify some "public"/"high-level" settings (window style, keybinds and wallpaper) while "registry" allows user to modify "low-level" settings. |
The web browser would be really tricky to implement. browsh does a fantastic job at rendering websites in text mode (using firefox as its backend), but the usage is super awkward and I never bothered learning their keyboard shortcuts. Something like that, but with tabs and address bar like all the modern browsers do would be fantastic. But I know I'm asking for a lot here. browsh also has notorious problems with killing firefox after it exits. vtm settings applet is of course welcome, and I'd keep it unified rather than broken down into many "apps". It could have a "advanced" checkbox for hiding advanced settings, but preferably everything should be available in one place. Color theme editor should also be accessible from within settings app. Don't you just hate when settings are scattered randomly in multiple applets?
That would be awesome, especially if a user could select a snapshot region with a mouse, like "snipping tool". I'm not sure what is the anticipated output though - raw text, text with VT100 gibberish, or a bash script that ensures proper display of the screenshot? I'd add to the list:
|
I am interested in making some of the applications in the checklist, mosly interested in the filemanager. I am also thinking about the application 'store'/manager. I would like to add a panel with stuff like battery, time, (maybe wifi), username, etc. I am thinking about making that first (by just echoing info to the bottom line of the screen with some color (I know, there are better ways, like implementing it directly in vtm.)) The reason I have not started yet is because of scripting. It would be nice to start a window from a python script (using I will update here if i made something, and link the repo. (I think i will give a link to a first version of a panel this weekend) edit: edit 2: |
Following my last post: |
You are absolutely right. Widgets and applications for vtm can be created already now, but in C ++, and this is very laborious. Without integration with scripting languages, this would be a dead end. I'm currently making up integration with scripting languages to make it possible to create vtm applications/components without using C++ at all. The essence is this: the application will consist of a UI layout and scripts attached to UI elements and events. The entire DOM of the application + its current configuration will be available from the scripting run space. The UI layout of the interface will be in XML format (slightly modified) with scripts embedded. It should be like WPF where All this will be possible after the following tasks are ready
|
From the moment when internal integration with scripting languages is completed, it will be possible to interact with the environment from outside, i.e. interact with vtm environment objects directly from python3, including creating/closing windows, etc. |
I forgot to say that the DirectVT protocol has not yet been completed to create full-fledged applications in the sense of supporting output by an application in several windows. The application should be able to display multiple windows, for example, display modal windows, show window/context menu popups. At the moment, the application can only display its bitmap in one window. |
No problem, I have the capacity to run/debug on all required operating systems. |
I'm also interested in a file manager. Existing TUI file managers lose to GUI file managers. This is at least by the fact that they are locked in one window. They also do not support the Unicode standard well, in terms of grapheme clusters and character widths. This is a consequence of poor terminal support for Unicode. Terminal developers don't want to understand that the application, not the terminal, should determine the character width. The terminal should only assume the character width if the application doesn't specify one. In addition, terminal developers don't want to admit that wide characters have half-parts. Not to mention ligature fragments. |
Yes, I am very interested in a console-file manager looking like a graphical file manager (for example dolphin, nautilus, windows exporer.). I am learning to use python3-prompt-toolkit to make apps that would run in the vtm build-in terminal, but makes pop-up windows (also the vtm build-in terminal with a seperate instance of the app running) that would report answers back via (?) using the scipting integration. But your idea about some XML languige sounds more interesting, and I would drop prompt_toolkit and learn it instead when it exists. (I am currently smiling because of the idea making applications specificaly for vtm, and would scream happiness if I wasn't in a public space right now...) |
If you are implementing python or shell scripting integration, I would be happy to test them in my weekends. Do you know if there are already people making applications in the currenly existing DirectVT protocol, or am I the first who is very exited about making applications dedicated for vtm? I can also make the store, and maybe host a main repo list on my raspberrypi. (like my already existing packager, vpm written in bash.) It would download a list of packages, with each package entry containing: |
I have started testing with an info panel, but it only supports linux xterm based terminals, and only a small group of them... also it glitches out how vtm draws colors (it resets the current escape code all the time, making the background of a vtm terminal disappear). Integration into vtm itself would be nice :). (It is not yet public) |
I'm very curious. Perhaps the built-in vtm terminal does not support some kind of escape sequence. Please tell me what sequence you use for output or share code block with output function. It would be interesting to analyze such vtm behavior. |
python-prompt-toolkit is very much in the spirit of what I'm currently implementing. In vtm it will be possible to use not only python. Among other things, everything done with python-prompt-toolkit should work smoothly without any issues in the built-in vtm terminal. |
The DirectVT protocol is still in development and it is not documented due to the fact that it is still very unstable and often changes. Its main goal is to provide maximum application rendering performance (TUI) and seamless integration with the vtm window manager (smooth & nondestructive app window resizing, mouse hovering, etc.). I think the DirectVT protocol will become stable and ready for use after I make support for keyboard events in vtm. This protocol is part of the not yet ready Desktopio Framework, which will contain everything that I am doing now. |
It is still difficult for me to answer in what format the applications will be distributed. Perhaps this will be SSH demo servers evenly distributed throughout the planet (Australia, Japan, EU, US West/East coast) to reduce round trip ping. By logging in to them via the password-free SSH, users will be able to play with the application in real time and, if they like the application, download it. I experimented with this approach and it turned out that vtm works very responsively via SSH from almost anywhere in the world. |
Thats perfect! |
Thats an interesting! So how would users know to what ssh server to connect to? Are all apps on the same server? Is there a previeuw button in a sofware center that connects via ssh in a vtm terminal (Maybe the ip is in the packagelist entry)? I guess it would be possible to make a package format, and download the packages via the same ssh server. I know you can pass a command to run after connect. Also, I am already using vtm to manage my server via ssh! : D |
A year ago I ran five servers evenly around the world (Sydney, Tokyo, Frankfurt, Richmond, Seattle). The user simply typed |
I think the connection to the server with the app store should be clickable at the bottom right of the vtm desktop. This is where the vtm version number label is located. |
Clicking the preview button in the store should open an additional SSH session with a demo of this app. Or open additional DirectVT window :D |
I will restore this server infrastructure back when the apps and store are ready. |
Someone posted a link to the demo on https://news.ycombinator.com/item?id=24243521 and it was fun. |
On the desktop? At all time, or only when the store is open? Also, what do you think of the idea to make a new package format and mirror them to all servers, downloadable via the ssh session automaticaly? ssh [email protected] "cat /path/to/package.zip" >> package.zip Or am I thinking too unix right now? Or rather an apt-like reposystem like I mentioned earlier, where the store would download a list of packages, with each entry like this:
or maybe use the download via ssh in that. I would definetely keep the preview, thats a very good idea (wish apt would have that :D). |
Do I understand from this the app store runs on the ssh server, not the local vtm instance? |
Exactly. |
Only when the store is open. I mean a connection link to the store should be placed somewhere in the desktop. |
A new package format is definitely needed. I have not yet thought about it and how distributing and updating packages. There may be all sorts of dependencies and version incompatibilities. Downloading can be done via SSH or an async DirectVT binary stream. |
ssh [email protected] "cat /path/to/package.zip" >> package.zip I absolutely don't mind using external operating system components like |
What if the button to open the connection to the store would be an entry in the app list? Also, how would the ssh server notify the local vtm what package to download? |
Ah, I did not think of that yet... maybe the store can talk with the most popular package managers when on a unix system. (Windows does not have a packager, right?) |
Good idea. We will make this decision later, when a store prototype is somehow formed. There we can play in real time and choose the appropriate option.
When the user clicks on the Download button, the Store running on the remote SSH server initiates the file transfer (either via an OSC sequence or via the DirectVT protocol). Next, a modal window (with file/folder picker) should automatically open with the option of where to save or run to automatically install.
I'm no expert on the Windows ecosystem, but I think we'll figure it out as we get to this point. |
Ah, that goes above my knowledge. (I just learned to use tcp sockets in python like a month ago). But I guess that could work. It sounds good.
I guess this means the filemanager should learn to open packages with the local package installer then. |
The file picker modal window is a light version of the file manager, a sort of sub module. |
So the filemanager should be build-in like the terminal, so that the file picker can be a modal window? |
Perhaps not necessarily. A full-fledged file manager is too heavy. |
Would folder bookmarks sync between the dialog an the filemanager? that means vtm should have a bookmark system, or try to read filemanagerbookmark if possible. |
Good point. It looks like there are a lot of things that need to be in sync with the environment. Keyboard shortcuts, folder bookmarks/quick access links, anything else. |
something like https://github.com/fathyb/carbonyl be a possibility? it would be very nice to render anything (breaking or not) to any of terminals. |
Using character matrices as demonstrated in the microsoft/terminal#4345 (comment) it will be possible to implement even cooler web rendering in terminals. I think it is quite possible to do (but it is not the main priority).
Re-adopting a console application by another terminal host is theoretically possible in vtm. I haven't delved into this yet because vtm is cross-platform and the main task for now is to make it operate in standard mode on common system platforms. This is planned. |
I'm all for it! |
sorry anything like? something possible also? i know tools like exist, but maybe if VTM has built-in stock variants specific for its amazing platform! https://github.com/zyedidia/micro not sure! very excited to see more development, have been workaround to replace current workspace! |
Thanks for your feedback! At the moment, vtm has only a built-in terminal emulator. It is impossible to make the application set for the vtm environment until its internal architecture is unstable. Any changes to the internal architecture will inevitably break these applications and, accordingly, they will need to be updated and fixed. It takes some time to stabilize. |
They won't be built-in, but I do plan on making a filemanager and maybe more for vtm as soon as I can get any information about the API (to me it's still very unclear on how to 'attach' to the vtm instance and render things like windows etc, and as @o-sdn-o said, they would break every time the API changed if I managed to figure out the current api). |
I see something like |
I was personally thinking about something closer to KDE's dolphin, including split and tabs. |
In general, all possible kinds of file managers are needed. It is very likely that these will be ported/adapted versions of existing file managers. |
@o-sdn-o mentioned that he was planning to make vtm come with only few built-in widgets (apps) while others would be standalone and could be compiled separately. I am making list of what apps should be built-in by other DE "standards" (There is no standard but this is so far most popular configuration)
Suggestions from @AutumnMeowMeow:
Suggestions from @tomek-szczesny:
The text was updated successfully, but these errors were encountered: