Compare commits

..

14 Commits

Author SHA1 Message Date
dependabot[bot]
7c6d144a89 chore(deps): bump com.qcloud:cos_api from 5.6.259 to 5.6.260.1
Bumps [com.qcloud:cos_api](https://github.com/tencentyun/cos-java-sdk-v5) from 5.6.259 to 5.6.260.1.
- [Release notes](https://github.com/tencentyun/cos-java-sdk-v5/releases)
- [Changelog](https://github.com/tencentyun/cos-java-sdk-v5/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tencentyun/cos-java-sdk-v5/commits)

---
updated-dependencies:
- dependency-name: com.qcloud:cos_api
  dependency-version: 5.6.260.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-12 09:30:31 +08:00
dependabot[bot]
a5434c5cdf chore(deps): bump com.mixpanel:mixpanel-java from 1.5.4 to 1.7.0
Bumps [com.mixpanel:mixpanel-java](https://github.com/mixpanel/mixpanel-java) from 1.5.4 to 1.7.0.
- [Release notes](https://github.com/mixpanel/mixpanel-java/releases)
- [Commits](https://github.com/mixpanel/mixpanel-java/compare/v1.5.4...v1.7.0)

---
updated-dependencies:
- dependency-name: com.mixpanel:mixpanel-java
  dependency-version: 1.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-08 08:55:02 +08:00
dependabot[bot]
68bd883305 chore(deps): bump com.fifesoft:rsyntaxtextarea from 3.6.0 to 3.6.1
Bumps [com.fifesoft:rsyntaxtextarea](https://github.com/bobbylight/rsyntaxtextarea) from 3.6.0 to 3.6.1.
- [Release notes](https://github.com/bobbylight/rsyntaxtextarea/releases)
- [Commits](https://github.com/bobbylight/rsyntaxtextarea/compare/3.6.0...3.6.1)

---
updated-dependencies:
- dependency-name: com.fifesoft:rsyntaxtextarea
  dependency-version: 3.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-03 16:45:33 +08:00
dependabot[bot]
3fa2659d59 chore(deps): bump org.mozilla:rhino from 1.8.0 to 1.9.0
Bumps [org.mozilla:rhino](https://github.com/mozilla/rhino) from 1.8.0 to 1.9.0.
- [Release notes](https://github.com/mozilla/rhino/releases)
- [Changelog](https://github.com/mozilla/rhino/blob/master/RELEASE-NOTES.md)
- [Commits](https://github.com/mozilla/rhino/commits)

---
updated-dependencies:
- dependency-name: org.mozilla:rhino
  dependency-version: 1.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-29 08:31:50 +08:00
hstyi
3ece32e427 chore: handle IPv6 addresses correctly in RDP connection string 2025-12-22 09:13:23 +08:00
hstyi
dad4d26fd8 chore: add "Nothing" option for right-click 2025-12-22 09:12:27 +08:00
dependabot[bot]
9b387c71fc chore(deps): bump org.testcontainers:testcontainers-bom
Bumps [org.testcontainers:testcontainers-bom](https://github.com/testcontainers/testcontainers-java) from 2.0.1 to 2.0.3.
- [Release notes](https://github.com/testcontainers/testcontainers-java/releases)
- [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testcontainers/testcontainers-java/compare/2.0.1...2.0.3)

---
updated-dependencies:
- dependency-name: org.testcontainers:testcontainers-bom
  dependency-version: 2.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-17 19:28:10 +08:00
dependabot[bot]
7ac833b53b chore(deps): bump kotlin from 2.2.21 to 2.3.0
Bumps `kotlin` from 2.2.21 to 2.3.0.

Updates `org.jetbrains.kotlin.jvm` from 2.2.21 to 2.3.0
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v2.2.21...v2.3.0)

Updates `org.jetbrains.kotlin.plugin.serialization` from 2.2.21 to 2.3.0
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v2.2.21...v2.3.0)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.jvm
  dependency-version: 2.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.jetbrains.kotlin.plugin.serialization
  dependency-version: 2.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-17 19:27:59 +08:00
dependabot[bot]
2327c5fd48 chore(deps): bump org.apache.commons:commons-pool2 from 2.12.1 to 2.13.0
Bumps org.apache.commons:commons-pool2 from 2.12.1 to 2.13.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-pool2
  dependency-version: 2.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 07:55:39 +08:00
Srar
bfc63a3983 fix: copy hotkey conflicts with ctrlc
(cherry picked from commit b499667cbb)
2025-12-12 09:32:32 +08:00
dependabot[bot]
c727925791 chore(deps): bump com.fasterxml.uuid:java-uuid-generator
Bumps [com.fasterxml.uuid:java-uuid-generator](https://github.com/cowtowncoder/java-uuid-generator) from 5.1.1 to 5.2.0.
- [Commits](https://github.com/cowtowncoder/java-uuid-generator/compare/java-uuid-generator-5.1.1...java-uuid-generator-5.2.0)

---
updated-dependencies:
- dependency-name: com.fasterxml.uuid:java-uuid-generator
  dependency-version: 5.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-12 09:27:41 +08:00
dependabot[bot]
cae1173180 chore(deps): bump flatlaf from 3.6.2 to 3.7
Bumps `flatlaf` from 3.6.2 to 3.7.

Updates `com.formdev:flatlaf` from 3.6.2 to 3.7
- [Release notes](https://github.com/JFormDesigner/FlatLaf/releases)
- [Changelog](https://github.com/JFormDesigner/FlatLaf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/JFormDesigner/FlatLaf/compare/3.6.2...3.7)

Updates `com.formdev:flatlaf-extras` from 3.6.2 to 3.7
- [Release notes](https://github.com/JFormDesigner/FlatLaf/releases)
- [Changelog](https://github.com/JFormDesigner/FlatLaf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/JFormDesigner/FlatLaf/compare/3.6.2...3.7)

Updates `com.formdev:flatlaf-swingx` from 3.6.2 to 3.7
- [Release notes](https://github.com/JFormDesigner/FlatLaf/releases)
- [Changelog](https://github.com/JFormDesigner/FlatLaf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/JFormDesigner/FlatLaf/compare/3.6.2...3.7)

---
updated-dependencies:
- dependency-name: com.formdev:flatlaf
  dependency-version: '3.7'
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.formdev:flatlaf-extras
  dependency-version: '3.7'
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.formdev:flatlaf-swingx
  dependency-version: '3.7'
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-12 09:27:29 +08:00
dependabot[bot]
10d2736232 chore(deps): bump commons-io:commons-io from 2.20.0 to 2.21.0
Bumps [commons-io:commons-io](https://github.com/apache/commons-io) from 2.20.0 to 2.21.0.
- [Changelog](https://github.com/apache/commons-io/blob/master/RELEASE-NOTES.txt)
- [Commits](https://github.com/apache/commons-io/compare/rel/commons-io-2.20.0...rel/commons-io-2.21.0)

---
updated-dependencies:
- dependency-name: commons-io:commons-io
  dependency-version: 2.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-09 14:37:56 +08:00
dependabot[bot]
97f01b7e3f chore(deps): bump org.apache.commons:commons-text from 1.14.0 to 1.15.0
Bumps [org.apache.commons:commons-text](https://github.com/apache/commons-text) from 1.14.0 to 1.15.0.
- [Changelog](https://github.com/apache/commons-text/blob/master/RELEASE-NOTES.txt)
- [Commits](https://github.com/apache/commons-text/compare/rel/commons-text-1.14.0...rel/commons-text-1.15.0)

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-text
  dependency-version: 1.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-09 14:37:42 +08:00
14 changed files with 58 additions and 32 deletions

View File

@@ -1,16 +1,16 @@
[versions]
kotlin = "2.2.21"
kotlin = "2.3.0"
slf4j = "2.0.17"
pty4j = "0.13.10"
tinylog = "2.7.0"
kotlinx-coroutines = "1.10.2"
flatlaf = "3.6.2"
flatlaf = "3.7"
kotlinx-serialization-json = "1.9.0"
commons-codec = "1.20.0"
commons-lang3 = "3.20.0"
commons-csv = "1.14.1"
commons-net = "3.12.0"
commons-text = "1.14.0"
commons-text = "1.15.0"
commons-compress = "1.28.0"
commons-vfs2 = "2.10.0"
swingx = "1.6.5-1"
@@ -20,7 +20,7 @@ oshi = "6.9.1"
versioncompare = "1.4.1"
jna = "5.18.1"
jSystemThemeDetector = "3.9.1"
commons-io = "2.20.0"
commons-io = "2.21.0"
jbr-api = "17.1.10.1"
hutool = "5.8.40"
jsch = "2.27.3"
@@ -33,10 +33,10 @@ jnafilechooser = "1.1.2"
xodus = "2.0.1"
bip39 = "1.0.9"
colorpicker = "2.0.1"
rhino = "1.8.0"
rhino = "1.9.0"
delight-rhino-sandbox = "0.2.1"
testcontainers = "2.0.1"
mixpanel = "1.5.4"
testcontainers = "2.0.3"
mixpanel = "1.7.0"
jSerialComm = "2.11.4"
ini4j = "0.5.5-2"
restart4j = "0.0.1"
@@ -44,7 +44,7 @@ eddsa = "0.3.0"
exposed = "1.0.0-rc-4"
h2 = "2.3.232"
sqlite = "3.50.3.0"
jug = "5.1.1"
jug = "5.2.0"
semver4j = "6.0.0"
jsvg = "2.0.0"
dom4j = "2.2.0"

View File

@@ -8,7 +8,7 @@ project.version = "0.0.4"
dependencies {
testImplementation(kotlin("test"))
implementation("com.qcloud:cos_api:5.6.259")
implementation("com.qcloud:cos_api:5.6.260.1")
compileOnly(project(":"))
}

View File

@@ -10,7 +10,7 @@ project.version = "0.0.8"
dependencies {
testImplementation(kotlin("test"))
compileOnly(project(":"))
implementation("com.fifesoft:rsyntaxtextarea:3.6.0")
implementation("com.fifesoft:rsyntaxtextarea:3.6.1")
implementation("com.fifesoft:languagesupport:3.4.0")
implementation("com.fifesoft:autocomplete:3.3.2")
}

View File

@@ -7,7 +7,7 @@ project.version = "0.0.2"
dependencies {
testImplementation(kotlin("test"))
compileOnly(project(":"))
implementation("org.apache.commons:commons-pool2:2.12.1")
implementation("org.apache.commons:commons-pool2:2.13.0")
testImplementation(project(":"))
}

View File

@@ -7,7 +7,7 @@ project.version = "0.0.8"
dependencies {
testImplementation(kotlin("test"))
compileOnly(project(":"))
implementation("com.maxmind.geoip2:geoip2:5.0.2")
implementation("com.maxmind.geoip2:geoip2:5.0.0")
// https://github.com/hstyi/geolite2
implementation("com.github.hstyi:geolite2:v1.0-202510270056")
}

View File

@@ -547,6 +547,7 @@ class SettingsOptionsPane : OptionsPane() {
rightClickComboBox.addItem("Copy")
rightClickComboBox.addItem("CopyAndPaste")
rightClickComboBox.addItem("Nothing")
rightClickComboBox.selectedItem = terminalSetting.rightClick
@@ -576,6 +577,8 @@ class SettingsOptionsPane : OptionsPane() {
text = I18n.getString("termora.settings.terminal.right-click.copy")
} else if (value == "CopyAndPaste") {
text = I18n.getString("termora.settings.terminal.right-click.copy-and-paste")
}else if (value == "Nothing") {
text = I18n.getString("termora.settings.terminal.right-click.nothing")
}
return super.getListCellRendererComponent(list, text, index, isSelected, cellHasFocus)
}

View File

@@ -20,6 +20,10 @@ class TerminalCopyAction : AnAction() {
override fun actionPerformed(evt: AnActionEvent) {
val terminalPanel = evt.getData(DataProviders.TerminalPanel) ?: return
val selectionModel = terminalPanel.terminal.getSelectionModel()
if (!selectionModel.hasSelection()) {
return
}
val text = terminalPanel.copy()
val systemClipboard = terminalPanel.toolkit.systemClipboard
@@ -53,4 +57,4 @@ class TerminalCopyAction : AnAction() {
}
}
}

View File

@@ -10,6 +10,8 @@ import kotlinx.coroutines.launch
import org.apache.commons.io.FileUtils
import org.apache.commons.io.IOUtils
import org.apache.commons.lang3.StringUtils
import org.apache.commons.lang3.Strings
import org.apache.commons.lang3.SystemUtils
import java.awt.datatransfer.DataFlavor
import java.awt.datatransfer.StringSelection
import java.net.URI
@@ -64,7 +66,15 @@ internal class RDPProtocolProvider private constructor() : GenericProtocolProvid
}
val sb = StringBuilder()
sb.append("full address:s:").append(host.host).append(':').append(host.port).appendLine()
sb.append("full address:s:")
if (SystemUtils.IS_OS_WINDOWS && Strings.CI.contains(host.host, ":")) {
var newHost = Strings.CI.removeStart(host.host, "[")
newHost = Strings.CI.removeEnd(newHost, "]")
sb.append('[').append(newHost).append(']')
} else {
sb.append(host.host)
}
sb.append(':').append(host.port).appendLine()
sb.append("username:s:").append(host.username).appendLine()
val desktop = host.options.extras["desktop"]
if (desktop.isNullOrBlank().not()) {

View File

@@ -1,5 +1,6 @@
package app.termora.terminal.panel
import app.termora.actions.TerminalCopyAction
import app.termora.keymap.KeyShortcut
import app.termora.keymap.KeymapManager
import app.termora.plugin.internal.AltKeyModifier
@@ -71,6 +72,7 @@ class TerminalPanelKeyAdapter(
}
val keyStroke = KeyStroke.getKeyStrokeForEvent(e)
val keymapActions = activeKeymap.getActionIds(KeyShortcut(keyStroke))
for (action in terminalPanel.getTerminalActions()) {
if (action.test(keyStroke, e)) {
action.actionPerformed(e)
@@ -104,7 +106,9 @@ class TerminalPanelKeyAdapter(
}
// 如果命中了全局快捷键,那么不处理
if (keyStroke.modifiers != 0 && activeKeymap.getActionIds(KeyShortcut(keyStroke)).isNotEmpty()) {
val copyShortcutWithoutSelection =
keymapActions.contains(TerminalCopyAction.COPY) && terminal.getSelectionModel().hasSelection().not()
if (keyStroke.modifiers != 0 && keymapActions.isNotEmpty() && !copyShortcutWithoutSelection) {
return
}
@@ -159,4 +163,4 @@ class TerminalPanelKeyAdapter(
return Character.toLowerCase(e.keyCode.toChar())
}
}
}

View File

@@ -53,30 +53,31 @@ class TerminalPanelMouseSelectionAdapter(private val terminalPanel: TerminalPane
if (SwingUtilities.isRightMouseButton(e)) {
// 如果有选中并且开启了选中复制,那么右键直接是粘贴
if (selectionModel.hasSelection() && isSelectCopy.not()) {
triggerCopyAction(
KeyEvent(
e.component,
KeyEvent.KEY_PRESSED,
e.`when`,
e.modifiersEx,
KeyEvent.VK_C,
'C'
)
)
if (rightClickMode == "CopyAndPaste") {
triggerPasteAction(
if (rightClickMode != "Nothing") {
triggerCopyAction(
KeyEvent(
e.component,
KeyEvent.KEY_PRESSED,
e.`when`,
e.modifiersEx,
KeyEvent.VK_V,
'V'
KeyEvent.VK_C,
'C'
)
)
}
if (rightClickMode == "CopyAndPaste") {
triggerPasteAction(
KeyEvent(
e.component,
KeyEvent.KEY_PRESSED,
e.`when`,
e.modifiersEx,
KeyEvent.VK_V,
'V'
)
)
}
}
} else {
// paste
triggerPasteAction(

View File

@@ -59,6 +59,7 @@ termora.settings.terminal.hyperlink=Hyperlink
termora.settings.terminal.select-copy=Select copy
termora.settings.terminal.right-click=Right click
termora.settings.terminal.right-click.copy-and-paste=Copy and Paste
termora.settings.terminal.right-click.nothing=Nothing
termora.settings.terminal.right-click.copy=${termora.copy}
termora.settings.terminal.cursor-style=Cursor type
termora.settings.terminal.cursor-blink=Cursor blink

View File

@@ -81,6 +81,7 @@ termora.settings.terminal.hyperlink=Ссылки
termora.settings.terminal.select-copy=Копировать выделенное
termora.settings.terminal.right-click=правой кнопкой мыши
termora.settings.terminal.right-click.copy-and-paste=Копировать и вставить
termora.settings.terminal.right-click.nothing=никто
termora.settings.terminal.cursor-style=Вид курсора
termora.settings.terminal.cursor-blink=Мигать курсором
termora.settings.terminal.local-shell=Локальный терминал

View File

@@ -73,6 +73,7 @@ termora.settings.terminal.hyperlink=超链接
termora.settings.terminal.select-copy=选中复制
termora.settings.terminal.right-click=右键点击
termora.settings.terminal.right-click.copy-and-paste=复制 & 粘贴
termora.settings.terminal.right-click.nothing=无操作
termora.settings.terminal.cursor-style=光标样式
termora.settings.terminal.cursor-blink=光标闪烁
termora.settings.terminal.local-shell=本地终端

View File

@@ -85,6 +85,7 @@ termora.settings.terminal.hyperlink=超連結
termora.settings.terminal.select-copy=選取複製
termora.settings.terminal.right-click=右鍵點擊
termora.settings.terminal.right-click.copy-and-paste=複製 & 貼上
termora.settings.terminal.right-click.nothing=無操作
termora.settings.terminal.cursor-style=遊標風格
termora.settings.terminal.cursor-blink=遊標閃爍
termora.settings.terminal.local-shell=本地端