This weekend I had no access to my trusty home workstation and worked on my portable Thinkpad T440p and thus I decided to work on my Falkon plugins. I postponed this for a long time.
Objective The main objective is to port the add-ons to Qt6 / PySide6 and update version and author signature.
Progress I managed to port the ToolbarTools and Unloader. Unloader probably can be rewritten in QML for better compatibility. I will leave that for later when I will have will to do that.
A lot of happened since I last wrote something about Falkon development.
Release of Falkon 23.08 Relatively a lot of stuff was changed/added/fixed for this release series.
The biggest thing I struggled with was session restore optimizations which is very slow and I manahed to get it faster by a bit and also introduce new bugs. Well nothing is for free. There is still a second part waiting and that is to delay putting icons into the tabs on the tabbar until they are realy needed. This operation actualy takes most of the time.
Just kidding.
In recent times I played multiple minigames from KDE collection. These games are nice, small and can be played on almost anything these days. But no software can run away from bugs.
A short list of my adventure,
Kolf A nice minigolf game with simple and more complicated way to make the ball move (called "putting"). When I was playing with it, it simply stayed on the screen even after it was disabled. So a Merge Request was born: Hide StrokeCircle when AdvancedPutting is disabled
This spring I did not have much time on Falkon since I was learning how to drive a car. There were still some moments left for Falkon.
Release of Falkon 23.04.0 Thanks to KDE Gear team there is another major Falkon release. This time (with some trial and error) I also put the changelog and some picture on the main Falkon site to show Falkon is alive and well.
Weird news from development of Falkon web browser.
Development History browser When filter is not empty, do not delete the whole history under a date if the date entry is selected. This is especially cruel when trying to remove multiple entries and using keyboard shortcut Ctrl+A, Good Bey History. Now the entries unrelated to the filtering phrase should not be deleted. While I also deleted my whole history, this was reported at bugzilla.
Weird news from development of Falkon web browser.
Development GitLab FreeBSD pipeline FreeBSD pipeline was failing for a while. It always failed on PyFalkon plugin and in qztools file. It looks like the “latest” FreeBSD something does not like “{}” as default option for QFlags type. To some extend I can understand it, since it runs some code generator and than builds the generated code. And if the code generator fails to resolve everything the compilation might fail.
Weird news from development of Falkon web browser.
My little break I took a break for a few weeks (turned out to be a bit longer) to get a different look at the features I am working at. (Good excuse, right?)
Development Site Settings I am struggling with the UI design and the UI programming itself. I am not that skilled with Qt and its way of doing these things so it will take a bit before I gain the required skills and experience to continue working on it in earnest.
Weird news from development of Falkon web browser.
Development: Site Settings At the start of the month I did something and I already forgot what it was (very sad) and than I took a “short” break for a week which turned out ot be for a whole month due to other reasons.
Extensions During this break I worked on two QML extensions Cookies.txt and Readability. The Cookies.txt is in a way me trying to understand how to work with cookies from within QML extension in order to write a proper tutorial for it. The Readability was done on a request and because I thought it can be somehow hacked with QML. This took a bit longer than I expected, but it is nice to have.
I am using ALSA for my system sound and I am trying to keep away from PulseAudio and PipeWire things. I do not like them that. I know they provide a way to disable the system sound, just open PavuControl and mute the “System Sounds” channel and done.
For ALSA I did not manage to find such a simple way to do it. I also did not find a way to disable it in KDE or Qt configuration files (or I did not search hard enough).
Weird news from development of Falkon web browser.
Development: Site Settings I continued working on some system for WebAttributes and it looks fine at the moment (well, it just works). The thought which I have is to put all the WebAttributes into one field in the database and parse it afterwords instead of having a separate field for each attribute. I did not try this yet and I will keep this idea for later date when everything will be ready.
Weird news from development of Falkon web browser.
Why? Sadly, even after project moved under the wings of KDE it did not see many contributors (am I as major stalker at fault?), maybe new contributors did not want to go through hassle of creating KDE account (joining KDE). This is hard to say for me.
Anyway, I wanted to do something what is already outlined and what someone already tried in the past and thus there is a bit of information on how it should be done. That is how I came across “Site Settings” feature. This idea comes from a merge request on Phabricator “Added feature to remember the zoom set on a host” by Anmol Gautam but was not accepted since it was a lot of code which only handles zoom while all data were still stored in the ini file which would make it slower and slower as time goes on.
Last weekend I went nuts and wrote a script to convert my old theme for Kate/KDevelop, I truly almost lost it.
The script as I made it only works with files exported by the GUI, when you export whole scheme and save it somewhere. I don’t think it will work with only data for one file type (it can be easily modified to do so). So, if you try to use your full kateschema/highlighting file which stores multiple themes at once the script can “export” a random mix (I wonder how usable that would be, maybe we can get some funny results).
Or how I spent a weekend.
With the latest changes in ksyntaxhighlighting library the old themes (they are called “kateschema”) will become obsolete and one will have to either use some new theme and hope it will fit or try to adapt the old one and spent hours doing so.
The old format is a bit complicated, the settings for one language can vary depending on the current file type. In other words you could have different settings if you opened CSS file directly or when styles were used in HTML. This looks like a nice feature to have which allowed users to tweak everything but also added a huge overhead when doing changes to the theme. So one has to decide how to export these changes, I decided to take 2 approaches:
Backstory Few days ago I wanted to play with Falkon and create some basic Qml plugin. (What else to do to play, Python support is broken and C++ is for built-in plugins).
I started KDevelop (the big IDE I use) and went to create new Empty project because as I am not big Qml lover I did not create template for it yet. But I was met with errors which made me change my focus and fix the tool I use (KDevelop) before playing with Qml and Falkon.
The KDevelop`s user interface (UI) suffers from required minimal width of widgets and toolviews. The “Template Preview” toolview is one such toolview. In my case it pushes part of the KDevelop window out of the screen.
After few ups and downs with file templates, the journey through source code started once again.
Based on the comment in source code, it should be possible to add tooltips for custom options in file templates.
How foolish I was to trust the comments. The option loading logic never counted with such possibility, it takes any data it can find in ’label’, ’tooltip’ and ‘whatsthis’ field and sets it as option`s label. The displayed text is the last read value of these three fields.