-
Notifications
You must be signed in to change notification settings - Fork 115
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
Replace Electron UI with Qt #348
Comments
One feature I would like to throw into the list of "eventually's" is some sort of enhanced file management, to see the local files and remote files to down/upload to the remote pwd. I am definitely interested to see what you have planned overall with the new UI. I just hope it feels and acts as "modern" as extraterm does. I made an addon for a 3d application called Houdini using Qt and I felt it always felt sort of... rigid? hard to explain, I guess. It could be, though, because it was Qt with Python, but I guess Qt is Qt when it comes to the actual interface objects and such. Either way, I am sure it will be good. |
regarding splits and panes I expect people may want to use them with toggle window hotkey, in such case relying on system window manager wouldn't work |
He @sedwards2009 I've been watching this QT work eagerly, is it at the stage now where you would like bug reports of things I notice that don't work right? (For example, I've noticed problems with using "cmd"/super as a keyboard shortcut modifier on Linux) Edit: the fix for it appears easy enough, so I opened a PR #379 |
@ashb Yes, for a lot of the basics which have been in there a while, it is a good time for bug reports. |
I installed the QT version last night on a new machine, and I've noticed it' doesn't like starting after a crash, every time it crashes, the only way to make it start again is to completely delete the config folder |
@creativeworkssystems Which OS are you using? |
Windows 11, latests updates installed. sidenote : hate not having accoutn switching on github, I end up commenting with a work account half the time :P |
It's a shame that split panes are going to be axed (is this definite?). I looked at this project because it was meant to be my |
@mzjp2 Split panes aren't totally out of the question, but they are somewhat low on the list compared to better support for multiple windows and moving tabs in and out of windows. I'm open to "cheap" ways of adding splits and panes back in. Something like https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System might be a solution, and it might also help handle the cases of moving tab in/out of windows (which is high on the TODO list). |
FYI, for the next release I'm working on applying Qt Advanced Docking System to Extraterm. It will mean that having an option for windows without the native title bar won't be possible any more though. But that is an acceptable trade off. |
I dunno, I hate the stock titlebar, and I like using this because it doesn't have it. |
@MostHated I'm pretty deep into the Qt Advanced Docking System related work. I did notice that on Linux at least there is some support for a custom window title bar. As long as you're on Linux then there is some hope. |
I am indeed, pop_os. At the same time, though, I am just one fella. I would say it is really worth it for one person, if it is a huge undertaking. |
@MostHated FYI, it has taken a while to get to, but I'm working on the custom window decorations. It should work on Windows too. On Linux with Wayland at least you're kind of encouraged to do your own window decorations because Wayland doesn't really support the concept of "native" or server side decorations. |
Here are some technical details about how this transition is going to work.
The core language used will remain TypeScript/JavaScript running on the fast V8 engine via nodejs. This is good news and means that large chunks of the Electron based Extraterm version can be moved straight over and to the Qt version. I'll be using NodeGui as the bindings connecting V8 to Qt's libraries. Qt is a very mature set of libraries, but it is very C++ oriented which makes connecting to other languages difficult. NodeGui itself though isn't mature and hasn't reached a stable version 1.0 yet. Normally this would be a showstopper but I have an ace up my sleave as I've worked with Qt in the past and also have a quite a lot of experience with connecting Qt related classes to other languages like Python and JavaScript. To NodeGui's credit, it is a fairly simple binding of C++ to V8 which makes some smart trade offs regarding how to connect Qt to JS while avoiding the tarpit of trying to replicate all of Qt's C++ API. NodeGui is quite easy to get hacking on and I've already submitted a number of PRs to NodeGui to expand it.
Here are some random thoughts about certain features and what will happen to them. Many are high priority, some will be put in the freezer 🧊 for later, and some will be axed 🪓.
I'm open to feedback about this list and its order.
The text was updated successfully, but these errors were encountered: