Compare commits

..

2 Commits

Author SHA1 Message Date
Or Levy
4d9dd54db6 feat: tab management shortcuts (#915)
* feat: add tab switch shortcuts

* fix(terminal): only copy/paste in focused tab

* fix: linux and pr remarks
2026-02-13 09:40:48 +01:00
code807
0269a333b1 use working directory instead of home directory by default (#929) 2026-02-13 09:38:02 +01:00
6 changed files with 69 additions and 7 deletions

View File

@@ -4,6 +4,8 @@
#include <QQmlContext>
#include <QStringList>
#include <QDir>
#include <QtWidgets/QApplication>
#include <QIcon>
#include <QQuickStyle>
@@ -125,7 +127,7 @@ int main(int argc, char *argv[])
engine.rootContext()->setContextProperty("defaultCmd", command);
engine.rootContext()->setContextProperty("defaultCmdArgs", commandArgs);
engine.rootContext()->setContextProperty("workdir", getNamedArgument(args, "--workdir", "$HOME"));
engine.rootContext()->setContextProperty("workdir", getNamedArgument(args, "--workdir", QDir::currentPath()));
engine.rootContext()->setContextProperty("fileIO", &fileIO);
// Manage import paths for Linux and OSX.

View File

@@ -40,6 +40,7 @@ Item{
property real scaleTexture: 1.0
property alias title: ksession.title
property alias kterminal: kterminal
property bool isActive: false
property size terminalSize: kterminal.terminalSize
property size fontMetrics: kterminal.fontMetrics
@@ -49,14 +50,18 @@ Item{
target: copyAction
onTriggered: {
kterminal.copyClipboard()
if (terminalContainer.isActive) {
kterminal.copyClipboard()
}
}
}
Connections {
target: pasteAction
onTriggered: {
kterminal.pasteClipboard()
if (terminalContainer.isActive) {
kterminal.pasteClipboard()
}
}
}

View File

@@ -25,6 +25,7 @@ import "utils.js" as Utils
ShaderTerminal {
property alias title: terminal.title
property alias terminalSize: terminal.terminalSize
property bool isActive: false
signal sessionFinished()
property bool loadBloomEffect: appSettings.bloom > 0 || appSettings._frameShininess > 0
@@ -44,6 +45,7 @@ ShaderTerminal {
PreprocessedTerminal {
id: terminal
anchors.fill: parent
isActive: mainShader.isActive
onSessionFinished: mainShader.sessionFinished()
}

View File

@@ -131,6 +131,7 @@ Item {
model: tabsModel
TerminalContainer {
property bool shouldHaveFocus: terminalWindow.active && StackLayout.isCurrentItem
isActive: StackLayout.isCurrentItem
onShouldHaveFocusChanged: {
if (shouldHaveFocus) {
activate()

View File

@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*******************************************************************************/
import QtQuick 2.2
import QtQuick.Window 2.1
import QtQuick.Controls 2.3
import QtQuick
import QtQuick.Window
import QtQuick.Controls
import "menus"
@@ -114,9 +114,60 @@ ApplicationWindow {
Action {
id: newTabAction
text: qsTr("New Tab")
shortcut: appSettings.isMacOS ? StandardKey.AddTab : "Ctrl+Shift+T"
shortcut: appSettings.isMacOS ? "Meta+T" : "Ctrl+Shift+T"
onTriggered: terminalTabs.addTab()
}
Action {
id: closeTabAction
text: qsTr("Close Tab")
shortcut: appSettings.isMacOS ? "Meta+W" : "Ctrl+Shift+W"
onTriggered: terminalTabs.closeTab(terminalTabs.currentIndex)
}
Shortcut {
sequence: appSettings.isMacOS ? "Meta+1" : "Alt+1"
context: Qt.WindowShortcut
onActivated: if (terminalTabs.count > 0) terminalTabs.currentIndex = 0
}
Shortcut {
sequence: appSettings.isMacOS ? "Meta+2" : "Alt+2"
context: Qt.WindowShortcut
onActivated: if (terminalTabs.count > 1) terminalTabs.currentIndex = 1
}
Shortcut {
sequence: appSettings.isMacOS ? "Meta+3" : "Alt+3"
context: Qt.WindowShortcut
onActivated: if (terminalTabs.count > 2) terminalTabs.currentIndex = 2
}
Shortcut {
sequence: appSettings.isMacOS ? "Meta+4" : "Alt+4"
context: Qt.WindowShortcut
onActivated: if (terminalTabs.count > 3) terminalTabs.currentIndex = 3
}
Shortcut {
sequence: appSettings.isMacOS ? "Meta+5" : "Alt+5"
context: Qt.WindowShortcut
onActivated: if (terminalTabs.count > 4) terminalTabs.currentIndex = 4
}
Shortcut {
sequence: appSettings.isMacOS ? "Meta+6" : "Alt+6"
context: Qt.WindowShortcut
onActivated: if (terminalTabs.count > 5) terminalTabs.currentIndex = 5
}
Shortcut {
sequence: appSettings.isMacOS ? "Meta+7" : "Alt+7"
context: Qt.WindowShortcut
onActivated: if (terminalTabs.count > 6) terminalTabs.currentIndex = 6
}
Shortcut {
sequence: appSettings.isMacOS ? "Meta+8" : "Alt+8"
context: Qt.WindowShortcut
onActivated: if (terminalTabs.count > 7) terminalTabs.currentIndex = 7
}
Shortcut {
sequence: appSettings.isMacOS ? "Meta+9" : "Alt+9"
context: Qt.WindowShortcut
onActivated: if (terminalTabs.count > 8) terminalTabs.currentIndex = 8
}
TerminalTabs {
id: terminalTabs
width: parent.width

View File

@@ -28,6 +28,7 @@ MenuBar {
title: qsTr("File")
MenuItem { action: newWindowAction }
MenuItem { action: newTabAction }
MenuItem { action: closeTabAction }
MenuSeparator { }
MenuItem { action: quitAction }
}