Skip to content

Add an integrated, feature-rich terminal panel v2

When I first attempted to implement the embedded terminal, the code was far from ideal. Rather than just tweaking it, I ended up completely reworking the implementation. The new version is much cleaner, more efficient, and no longer relies on any deprecated VTE features.

As for the SSH monitoring functionality, my initial approach relied on parsing terminal output, which was overly complex and unreliable. Now, I've implemented process verification, making the connection detection much more reliable and significantly faster when connecting or disconnecting via SSH.

This new implementation also incorporates the suggestions you gave on the first version.

For reference, here’s the original pull request message—the core features remain the same:

An embedded terminal in the file manager is essential for many users, myself included.

I’ve aimed to modify the existing code as little as possible, avoiding any additional memory or CPU overhead when the terminal is disabled, and ensuring low resource usage when it’s active.

All terminal settings are available via right-click on the terminal area, and user preferences are saved automatically for future sessions.

The terminal supports 9 theme options and includes simple controls for adjusting the font size.

One of the most powerful features is the integration between the file manager and the terminal. You can choose to sync navigation in either direction—file manager to terminal, terminal to file manager—or both.

Dolphin served as our reference for terminal integration, as it offers one of the best implementations available. However, this solution adds a few enhancements.

For instance, if you’re typing a command and change directories with sync enabled, the terminal preserves your in-progress command. It automatically copies the text, changes directories with a cd command, and restores the input—all using internal terminal features, without affecting the system clipboard.

By default, accessing an SFTP location allows file access via GVFS Fuse, which is convenient—but insufficient for DevOps or server management, as it doesn’t support executing remote commands. You’d typically need to manually open an SSH session, breaking the location sync between terminal and file manager.

In this implementation, right-clicking the terminal while browsing an SFTP address presents an option to initiate an SSH session with folder synchronization. This allows users to seamlessly manage remote files graphically while also running commands, such as starting or stopping services, from the embedded terminal.

There’s also an option to auto-connect via SSH when navigating to SFTP locations.

Merge request reports

Loading