Introduces a "Sync profile with system theme" option in General Settings.
Adds a "Sync profile with system theme" option in General settings.
When enabled, separate light and dark profiles can be assigned via Profile settings.
The default profile is hidden while this mode is active, replaced by the light/dark profile pair.
BUG: 449235
#### Fixes:
[BUG: 519468: container discovery fully depends on toolbox despite distrobox being present](https://bugs.kde.org/show_bug.cgi?id=519468)
#### Changes:
Adds a check to the startListContainers functions in ToolboxDetector and DistroboxDetector that signals listContainersFinished({}) if the corresponding executables are not found.
This fix allows container features to be used if user only has either distrobox, toolbox, or kapsule installed.
#### AI Declaration:
Code changes in this commit is assisted with an LLM due to unfamiliarity with the code. The used prompt and response is https://chat.deepseek.com/share/uvqfrhblyfbpb79nzd, which is manually evaluated, implemented, built, and tested to check that it works. The commit and MR messages are written manually.
Since Qt 6.11, QTabBar closes tabs on middle click (QTBUG-141519):
[ChangeLog][QtWidgets] Middle clicking tabs in QTabBar with tabsClosable
set to true will now emit tabCloseRequested.
It conflicts with konsole's own handling. Block signals to avoid it.
That way it's configurable again and closing with a middle click no longer
tries to close it twice, resulting in a crash.
BUG: 515014
Issue: Using Ctrl + Shift + C on selected text causes an automatic scroll to most recent output once the text is deselected.
[BUG: 519251](https://bugs.kde.org/show_bug.cgi?id=519251)
Fix: Do not trigger scroll in `SessionController::trackOutput` on a key release event.
The previous implementation mixed block selection and linear selection
logic, leading to incorrect start/count computation for certain rows.
In particular:
- Block selection should always use a fixed [min, max] column range.
- Linear selection should only apply left bound on the top row and
right bound on the bottom row.
This patch separates the two modes explicitly and ensures consistent
range calculation, preventing negative or invalid counts.
I accidentally broke support for non-printable keys like arrows, function keys, and ESC for users running Konsole in an X11 session in applications using win32 input mode, like far2l. This manifested as completely unresponsive keys or bizarre behavior, such as ESC triggering folder size calculations and root credential prompts.
The issue was caused by a redundant +8 offset I added to nativeScanCode() specifically when the platform was detected as xcb. I mistakenly thought I needed to manually normalize the scancode to X11 standards. However, Qt's nativeScanCode() already returns an XKB-compatible value (evdev + 8) on all Linux platforms. By adding 8 again on X11, I created an invalid keycode that xkbcommon failed to resolve, resulting in an empty VirtualKeyCode being sent to the application.
I missed this bug during development because I tested the feature exclusively under a Wayland session. On Wayland, my code added 0, which happened to be the correct behavior by accident. I simply overlooked testing the implementation in an X11 environment. This patch removes the unnecessary offset logic entirely.
SYNCHRONIZED_TIMEOUT is set to 1000ms (src/Emulation.cpp: 68).
Thus, the test Vt102EmulationTest::testBufferedUpdates that does not timeout at 900ms but does at 1050ms passes locally.
However, in the GitLab CI pipeline, this was too strict (probably due to performance issues) and failed.
fix by trying 800ms and 1100ms. (some adjustments may be needed.)
I like badge function from iterm2 for macOS and really missing it in konsole, especially for displaying current hostname when I'm working on many servers at the same time. So created basic implementation for badge displaying including support for some variables (both session variables like title, current process or working directory and environment variables) and setting badge (and it's parameters like fonts and size with command like `echo -ne '\033]778;BADGE=New text;COLOR=#00AA00;SIZE=16\a'`)
screenshots:

{width=576 height=321}

