kwrite with tabs? Really???
 

I don't know if this really belongs in the bugs category, since it's not really a bug if your favorite text editor is modified in such a way that it massively disrupts your workflow. But since I don't know where else to put it...then I'll put it here. What is it actually about?

In Debian bookworm KDE with Kwrite version 4:22.12.3-1, kwrite now uses tabs just like Kate. I have no idea what the developers were thinking when they introduced something like this into a simple text editor, but there was a small outcry in the Linux community. The logic behind it is understandable, because if you want tabs, you can use Kate. If you just want a small, incredibly helpful editor without tabs, you can use kwrite. In several forums, several people have complained that this behavior disrupts their workflow. And I can only agree, because it disrupts my workflow too, massively. When I write programs or websites, it happens very often that I copy parts of code or make comparisons. If you have two separate windows open, you can arrange them nicely next to each other and compare the code and copy the parts you need. In tabs, you cannot arrange windows next to each other, which makes a visual comparison by reading very difficult.

Now you can look at the matter from the side of the developers and the users. The developers certainly meant well and are now probably pretty annoyed that there is so much criticism, when they don't even get paid for it and sacrifice their free time to write such a useful program. But dear developers, you have to understand the other side too. People are creatures of habit and I get annoyed every time I have to change the way I work and throw my usual actions overboard. And in that case I would have to change the way I work a lot and would make my life a lot more difficult. And unfortunately you can't stop this behavior. So one question: Is it really so difficult to implement a big change as an additional feature so that the user has a choice of how they want to work? Let's take a look at where the problem lies with the way I work:

I use kwrite to work on HTML documents for my website and on C/C++ or Qt programs. It often happens that I want to open several files at once in order to copy small snippets or to compare parts of the program. To do this, I open Konqueror as a file browser, mark my files and with a right click and the selection "Open with kwrite" all selected files are opened with kwrite. Previously under the old kwrite version (kwrite 4:20.12.2-1) in Debian bullseye each file was opened in its own small window. With the new version (kwrite 4:22.12.3-1) under Debian bookworm all are opened in tabs. And you can't separate these tabs and make them into a separate kwrite window. The only way to open each file in its own kwrite window is to click on each file individually. Only then will they be opened in separate kwrite instances.

Unfortunately, you can't turn this behavior off, even though there is a button for the number of tabs (the default is "unlimited"). If I set the number of tabs to 1 and perform the action again, I don't see any more tabs, but only the last selected file is opened. All other files appear to be opened, but are not visible, so to speak invisible! You notice this if you increase the number of tabs again without closing kwrite. Then all the selected files suddenly appear in tabs again. My first question that came to mind was, is this a bug or is it supposed to be like this? Logically, it's utter nonsense to limit the number of tabs if no other way of displaying the files is used when opening multiple files and they are basically hidden. Because of this behavior, in my opinion it is impossible to restore the old behavior by configuring kwrite. As I wrote, the only thing you can do is click on each file separately, but with a lot of files this turns into a click orgy. So, please forgive me, dear developers, the new version of kwrite is unacceptable for me at the moment.

For these reasons, a solution was needed and my first thought was quite simply to reinstall the old kwrite from Debian bullseye using dpkg -i. That worked so far, but when you want to update the system using apt-get or install new packages, apt-get refuses the installation or update with the following message:

kde-baseapps : Depends: kwrite (>= 4:22.12.3) but 4:20.12.2-1 is installed
E: Unmet dependencies. Try 'apt --fix-broken install' without specifying a package (or provide a solution).

You can fix this by reinstalling the latest version:
# apt-get install kwrite

But it would have been a pain to update kwrite to the latest version every time for an update or installation of a program and then to reinstall the old version. Unfortunately, Debian's very restrictive policy regarding mixing different branches such as stable, testing and unstable (or in this case oldstable) was a huge stumbling block, not for the first time. OK, I know Debian wants the most stable system possible for the user and of course that can only be achieved if all packages are tested, checked and, as far as the check status allows, are up to date. But dear Debian developers, I have to voice a small criticism here too: You could also do it in such a way that you just throw out a warning that packages from other branches make the system unstable or endanger it, but that it would basically be allowed and would work. You can see whether the system is unstable afterwards and you could then install the previous packages again. But that's just a side note.

Because of the difficulty of solution 1, I decided on solution no. 2: Using the source packages from bullseye, I created a kwrite package that simply received a newer version number than the one used by bookworm. This way, you can install the old kwrite (without the hated tabs) and apt is happy. And the only additional work I had to do was to adjust the color profile that is used to color program code. Something had changed there too and some parts of my program files looked unusually pink...

If you want to get the old kwrite from bullseye back, here is the compiled version from the bullseye sources for installation under bookworm: kwrite_22.12.3-2_amd64.deb

The version used by bookworm is 4:22.12.3-1 and my self-compiled version is 4:22.12.3-2. If a newer kwrite version for bookworm comes out that still doesn't allow the tabs to be turned off, I'll probably have to recompile it with an even higher version number...