10261 Commits

Author SHA1 Message Date
l10n daemon script
27c91b06ea GIT_SILENT Sync po/docbooks with svn 2026-06-13 01:50:09 +00:00
l10n daemon script
2a13e9922d GIT_SILENT Sync po/docbooks with svn 2026-06-12 01:52:20 +00:00
l10n daemon script
b3640a889d GIT_SILENT Sync po/docbooks with svn 2026-06-10 01:53:27 +00:00
l10n daemon script
18d153f58d GIT_SILENT Sync po/docbooks with svn 2026-06-09 01:52:22 +00:00
l10n daemon script
e4ff5c0b95 GIT_SILENT Sync po/docbooks with svn 2026-06-08 01:55:13 +00:00
l10n daemon script
b795b8b877 GIT_SILENT Sync po/docbooks with svn 2026-06-07 02:01:13 +00:00
l10n daemon script
cbb6413880 GIT_SILENT Sync po/docbooks with svn 2026-06-06 02:24:54 +00:00
l10n daemon script
a6ba4e3d87 GIT_SILENT Sync po/docbooks with svn 2026-06-05 01:54:16 +00:00
Matej Kovac
da11737e4d Add right-click paste feature
The mouse wheel is often tedious to click, but right-click is easy.
Already used in many terminals (e.g. Putty), switching between those
supports muscle memory.

If enabled, and right-click is used for pasting, the context-menu
can be displayed by pressing Control key + right-click.

FEATURE: 497675
FEATURE: 519241

GUI: new options in profile controling right-click behavior in Konsole
2026-06-04 17:37:10 +02:00
l10n daemon script
553a3a1f81 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2026-06-03 02:26:05 +00:00
l10n daemon script
e2c1a39206 GIT_SILENT made messages (after extraction) 2026-06-03 01:16:54 +00:00
l10n daemon script
502c2ae32e GIT_SILENT Sync po/docbooks with svn 2026-06-02 03:04:45 +00:00
l10n daemon script
a9bf692b44 GIT_SILENT Sync po/docbooks with svn 2026-06-01 01:48:57 +00:00
l10n daemon script
3567ca8cfa GIT_SILENT Sync po/docbooks with svn 2026-05-31 01:51:02 +00:00
l10n daemon script
7db4ea3bfe GIT_SILENT Sync po/docbooks with svn 2026-05-30 01:57:06 +00:00
Heiko Becker
8931a6edaa GIT_SILENT Update Appstream for new release
(cherry picked from commit 7ff378ee5c)
2026-05-29 14:38:09 +02:00
l10n daemon script
dd796ab1eb GIT_SILENT Sync po/docbooks with svn 2026-05-29 01:54:22 +00:00
l10n daemon script
f4d62c3a8f GIT_SILENT Sync po/docbooks with svn 2026-05-28 01:49:12 +00:00
Philipp Kiemle
6399eeea0f Add i18n contexts to translatable strings 2026-05-27 10:06:02 +02:00
l10n daemon script
46b852e073 GIT_SILENT Sync po/docbooks with svn 2026-05-27 01:53:28 +00:00
l10n daemon script
4375e9629d GIT_SILENT Sync po/docbooks with svn 2026-05-26 01:54:29 +00:00
Zeev Rotshtein
de8cd3dfa2 Add option to clear selection on copy
This adds an option to the settings to clear the selection
after copying.

This is useful for when copy is bound to Ctrl-C (smart copy)
and you want to restore the regular Ctrl-C action after copying.

Without this, it can be confusing when the selection is hidden
in the scroll-back buffer and Ctrl-C doesn't seem to work.
2026-05-25 18:18:27 +02:00
Markus Hoffmann
a428d65fe2 ViewSplitter: merge containerWidgetForDisplayImpl into its public counterpart
The Impl free function and the public static member had identical logic.
Inline the body into ViewSplitter::containerWidgetForDisplay so both
file-local callers and external callers use the same method.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 23:11:31 +02:00
Akseli Lahtinen
bc1272a092 ViewSplitter: make sure restoreAll and hideRecurse set container visibility
This makes sure the container visibility is properly set
when minimize/maximize is called

When handling splitters beside each other, sometimes
we do not get the correct parent, but the containerWidget.

In these cases check for their parent, which is a splitter,
and hide it recursively as well.

BUG: 520395
2026-05-22 17:57:08 +03:00
l10n daemon script
ad667a2c5a GIT_SILENT Sync po/docbooks with svn 2026-05-22 01:59:31 +00:00
l10n daemon script
85b90fbd30 GIT_SILENT Sync po/docbooks with svn 2026-05-18 01:56:05 +00:00
Ken Thompson
200799c1b1 Fix X11 PRIMARY selection failure when AutoCopySelectedText is enabled
copyToX11Selection() created one QMimeData* and passed it to
setMimeData() twice — once for QClipboard::Selection and once for
QClipboard::Clipboard. Since setMimeData() takes ownership of the
QMimeData object, the second call reuses an already-owned pointer,
which is undefined behavior.

This bug only triggers when supportsSelection() returns true (X11)
AND _autoCopySelectedText is true (profile setting), which is why
it primarily affects X11 users with AutoCopySelectedText enabled
(e.g. under xrdp remote desktop).

Fix: use a lambda to create a fresh QMimeData for each clipboard
mode, so each setMimeData() call gets its own object.
2026-05-17 18:42:17 +02:00
l10n daemon script
5ea51bc8ff GIT_SILENT Sync po/docbooks with svn 2026-05-16 01:49:56 +00:00
l10n daemon script
da6ee0b410 GIT_SILENT Sync po/docbooks with svn 2026-05-14 01:52:11 +00:00
l10n daemon script
18ee3239f7 GIT_SILENT Sync po/docbooks with svn 2026-05-13 01:50:49 +00:00
Matthieu Carteron
a053e1c410 Removed "inline" attribute in TerminalDisplay::loc
Every time I'm building Konsole from source, I encounter this linking error:

```
Linking CXX shared library ../bin/libkonsoleprivate.so
/usr/bin/x86_64-linux-gnu-ld.bfd : CMakeFiles/konsoleprivate.dir/terminalDisplay/TerminalPainter.cpp.o : dans la fonction « Konsole::TerminalPainter::drawInputMethodPreeditString(QPainter&, QRect const&, Konsole::TerminalDisplay::InputMethodData&, Konsole::Character*) » :
TerminalPainter.cpp:(.text+0x9298) : référence indéfinie vers « Konsole::TerminalDisplay::loc(int, int) const »
/usr/bin/x86_64-linux-gnu-ld.bfd : CMakeFiles/konsoleprivate.dir/terminalDisplay/TerminalPainter.cpp.o : dans la fonction « Konsole::TerminalPainter::drawContents(Konsole::Character*, QPainter&, QRect const&, bool, int, bool, QList<Konsole::LineProperty>, Konsole::CharacterColor const*) » :
TerminalPainter.cpp:(.text+0xab77) : référence indéfinie vers « Konsole::TerminalDisplay::loc(int, int) const »
/usr/bin/x86_64-linux-gnu-ld.bfd : TerminalPainter.cpp:(.text+0xac2b) : référence indéfinie vers « Konsole::TerminalDisplay::loc(int, int) const »
/usr/bin/x86_64-linux-gnu-ld.bfd : TerminalPainter.cpp:(.text+0xc537) : référence indéfinie vers « Konsole::TerminalDisplay::loc(int, int) const »
/usr/bin/x86_64-linux-gnu-ld.bfd : TerminalPainter.cpp:(.text+0xc5eb) : référence indéfinie vers « Konsole::TerminalDisplay::loc(int, int) const »
collect2: error: ld returned 1 exit status
make[2]: *** [src/CMakeFiles/konsoleprivate.dir/build.make:1823: bin/libkonsoleprivate.so.26.03.90] Error 1
make[1]: *** [CMakeFiles/Makefile2:667: src/CMakeFiles/konsoleprivate.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
```
I'm currently building using GCC 15.2.0.

The culprit seems to be this `inline` keyword... removing it fixes the issue with no problems.
Unless there is a specific reason this method was explicitly inlined, maybe it could be simply removed? 🤔
2026-05-12 07:03:45 +00:00
l10n daemon script
03877abc45 GIT_SILENT Sync po/docbooks with svn 2026-05-12 01:54:48 +00:00
l10n daemon script
b1dba85d5d GIT_SILENT Sync po/docbooks with svn 2026-05-11 01:52:04 +00:00
Markus Hoffmann
3b1faa569c Container Context Awareness for Tabs and Splits
## Summary

This change set adds end-to-end container context awareness to Konsole, so users can clearly see which  container they are currently working in (Distrobox/Toolbox/Kapsule/Host) and avoid mistakes across  host/container workflows.

## Details

1. Container context detection and state handling
   1. Extends container detection flow for supported runtimes (including Distrobox/Toolbox paths).
   2. Tracks container context per session, including pending/transition states where detection is still \
       being resolved.
2. Container-aware tab/session behavior
   1. Applies container-derived tab color context so container sessions are visually distinguishable from \
       host sessions.
   2. Preserves host behavior as default when no container is active.
3. Active container indicator in the UI
   1. Adds a visible container badge/footer indicator to show active container type + name.
   2. Makes this indicator split-aware:
      1. each split view shows its own container context
      2. no single tab-wide badge that can misrepresent mixed split layouts
4. Stable coloring semantics in split mode
   1. Prevents tab color from flipping based on split focus changes.
   2. Uses stable tab-level color behavior, while detailed per-split container identity is shown in each \
       split’s footer.

## Result for users

* You can always tell whether you are on host or inside a container.
* In split layouts, each pane accurately shows its own container context.
* Visual cues are stable and reduce accidental commands in the wrong environment.

## Feature Screenshots

Footer Bar with Type and Name of Container, Selected Container is in Titlebar so you can see it in Alt+Tab window here in \[pmos\]

![image.png](/uploads/f31d36cb9deda5276547dd1d456864d9/image.png){width="505" height="410"}

Color Coding in tabs so you can fast identify the running container

![image.png](/uploads/cdb62a153dc14e36f1b88258df10e5fe/image.png){width="549" height="321"}

If in split screen all container are named the same, tab color stays the same

![image.png](/uploads/7f0c25da6ade33bd8e3f510d06616b6a/image.png){width="597" height="564"}

If names are different, tab is not colored at all

![image.png](/uploads/e02fd08f6eacfe74e141ce34006d97ab/image.png){width="597" height="564"}

Works also with 2x2

![image.png](/uploads/a7de80b9e38d1d79ad045e3d1cba839d/image.png){width="566" height="528"}
2026-05-10 08:30:46 +00:00
Timothy Redaelli
83aa6a6c09 Refactor Kitty keyboard CSI dispatch via processToken cases
Move the four Kitty control sequences (CSI ?u, CSI >Nu, CSI <Nu,
CSI =N;Mu) out of the early special-case in csi_dispatch() and into
processToken() switch cases via the existing token_csi_pr/pg/pl/pq
encoders, matching how every other CSI prefixed sequence is handled.

Bare CSI u (Restore Cursor Position) needs no explicit handling: 'u'
is in neither CPN nor CPS char classes, so it falls through to the
last for-loop branch and dispatches as token_csi_ps('u', 0) ->
restoreCursor(), unchanged from before the Kitty work.

The for-loop branches for </=/> prefixes now forward params.value[0/1]
(instead of 0,0) and break to avoid duplicate dispatch on multi-param
sequences. Preexisting consumers (token_csi_pq('c'), token_csi_pg('c'),
token_csi_pg('q')) ignore p/q so the change is transparent for them.

Architectural pattern suggested in !1212.

CCBUG: 519627
2026-05-10 07:32:45 +00:00
Timothy Redaelli
a9db6e7558 Add profile setting for Kitty keyboard protocol
Add a KittyKeyboardEnabled profile property (default: true) with a
checkbox in Edit Profile > Advanced to let users control whether
Konsole accepts Kitty keyboard escape sequences.

When disabled, the CSI u push/pop/query/set sequences are ignored and
key events bypass the Kitty encoder entirely, falling through to legacy
handling. Since the protocol is opt-in by applications, enabling it
merely makes the feature available without changing default behavior.

The setting is piped through Session to Vt102Emulation and applied
via SessionManager::applyProfile().
2026-05-10 07:32:45 +00:00
Timothy Redaelli
1983d2b473 Implement Kitty keyboard protocol
Add support for the Kitty keyboard protocol, which provides enhanced
keyboard input for terminal applications that opt into it.

The protocol is application-driven: programs push/pop keyboard flags
via escape sequences (CSI >Nu, CSI <Nu, CSI ?u, CSI =N;Mu) to request
enhanced encoding. When active, keys are reported using CSI u sequences
with modifier bits, event types, and optional alternate key / text
codepoint fields depending on the flags.

Implementation:
- KittyKeyMap: maps Qt key codes to Kitty key info (functional, legacy,
  CSI_u, or plain keys with their codepoints and legacy encodings)
- Per-screen flag stacks in Vt102Emulation for push/pop/query/set
- handleKittyKeyEvent() encodes key events according to active flags,
  including support for modifier-only keys, event type reporting,
  alternate key reporting (via xkbcommon), and text-as-codepoints
- Ctrl+letter keys (e.g. Ctrl+C, Ctrl+D) are correctly detected by
  deriving keycodes from Qt key values instead of event text, which
  contains control characters that were previously rejected

BUG: 519627
2026-05-10 07:32:45 +00:00
l10n daemon script
66077033be GIT_SILENT Sync po/docbooks with svn 2026-05-10 01:53:11 +00:00
Nicolas Fella
1960a0f9c8 Use default DEFAULT_SEVERITY for logging
The default value (Info) is fine.
2026-05-09 19:17:31 +00:00
Ray KDEFans
962f359cf1 Fix OSC 8 hyperlink state leakage across screen buffers
OSC 8 handling used a broadcast signal that toggled URL extraction
on all screen buffers. This violates context-local semantics and
can leave inactive buffers in an inconsistent hyperlink state.

Fix by toggling URL extraction only on the active screen, avoiding
cross-buffer state leakage.
2026-05-09 05:11:27 +00:00
l10n daemon script
c790ade078 GIT_SILENT Sync po/docbooks with svn 2026-05-09 01:51:18 +00:00
l10n daemon script
5da2ea1c07 GIT_SILENT Sync po/docbooks with svn 2026-05-08 01:51:29 +00:00
l10n daemon script
bb99e72e0b GIT_SILENT Sync po/docbooks with svn 2026-05-07 01:52:22 +00:00
l10n daemon script
b1975b1e10 GIT_SILENT Sync po/docbooks with svn 2026-05-06 01:56:20 +00:00
Heiko Becker
ef8f412fd3 GIT_SILENT Update Appstream for new release
(cherry picked from commit 0816a3f7d0)
2026-05-04 21:46:21 +02:00
l10n daemon script
5b3b926b26 GIT_SILENT Sync po/docbooks with svn 2026-05-04 01:54:08 +00:00
l10n daemon script
7cb2517556 GIT_SILENT Sync po/docbooks with svn 2026-05-03 02:10:26 +00:00
l10n daemon script
76adbef526 GIT_SILENT Sync po/docbooks with svn 2026-05-02 01:48:22 +00:00
l10n daemon script
7dc8fed9d7 GIT_SILENT Sync po/docbooks with svn 2026-05-01 01:52:34 +00:00
Yuri Chornoivan
8d8d27c35d Fix minor typos 2026-04-30 09:07:27 +03:00