-
Notifications
You must be signed in to change notification settings - Fork 317
Add an integrated, feature-rich terminal panel #3567
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
base: master
Are you sure you want to change the base?
Conversation
That "terminal panel" screenshot looks seriously wrong. Apart from the colour decoration... How will this work, reliably, with split panes and multiple tabs? |
Colors and display of ls have nothing to do with the built-in terminal, it's my bash configuration In split panels and in more tabs, it starts other terminal processes, just like it is done with the terminal plugin With a terminal built into the nemo code, there is no reason to use a terminal extension |
I never liked the powershell prompts either
|
I updated the code, the features remain the same, but the code quality is much better, easier to maintain and the SSH part is faster. |
An embedded terminal in the file manager is essential for some people, including myself. I’m aware of the plugin that allows adding a terminal to Nemo, but it has usability limitations and is not usable on NixOS. Over the past few weeks, I implemented and, along with some friends, tested a different approach to integrating a terminal into Nemo.
I tried to modify Nemo’s existing code as little as possible, avoiding any additional memory or processing overhead when using the file manager without the terminal enabled, and keeping CPU and memory usage low when the terminal is active.
All terminal settings can be accessed by right-clicking on the terminal, and configurations are saved for future use.
We offer 9 theme options and simple ways to change the font size.
And the most useful part: integration options between the file manager and the terminal. You can choose to synchronize navigation from the file manager to the terminal, from the terminal to the file manager, or both.
Our reference for terminal integration is Dolphin, which had the best integration we knew of. However, with this embedded terminal in Nemo, we’ve added a few more features.
For example, if you type a command in the terminal and then change directories with synchronization enabled, the terminal won’t lose the content you were typing. The content is copied, the cd command is used to change directories, and then the text is pasted back into the terminal using terminal features—this doesn’t interfere with the system’s clipboard functionality.
By default, when accessing an SFTP address in the terminal, you can access files via GVFS Fuse. This is useful, but for DevOps work, it falls short since you can't run commands directly on the server. You have to manually establish an SSH connection, which breaks the sync between the terminal and file manager locations.
In our implementation, when you're in an SFTP address, right-clicking on the terminal gives you the option to connect via SSH, with the ability to maintain folder synchronization. This allows for easy graphical file access and editing, while also letting you run commands in the embedded terminal—like starting or stopping services.
There’s also an option to automatically establish an SSH connection when accessing SFTP addresses.
I hope this Pull Request gets accepted, as it's a feature I would genuinely love to see in all file managers.