While the install.sh script that is part of the python templates worked
great, it still is visually annoying to have a terminal window open when we
just need to copy/generate two files.
With a krunner-plugininstallerrc file, consumers can provide instructions on
how to generate the dbus service and where to find the desktop file for
the runner.
This is intended for python runners, but can work with any other
language or even prebuild binaries.
In the future, we might want to add the possibility to add dependencies.
But for now, the current state should suffice.
Also, we could adjust the installation without having to edit the
KRunner template and lots of existing KRunner plugins that are already
published.
Since there are a few moving parts involved, an autotest was added to
ensure the files end up in the correct destination.
This also checks the dynamically generated content of the service and
tests the one given line of the desktop file
With commenting out the three remaining KDELibs4Support references this is
good enough to pass CMake, which helps with identifying possible issues in
here.
This is where systemsettings will look for plugins when not going thourgh KServiceTypeTarder.
This also embeds json metadata in plugins that don't embed it already.
Task: https://phabricator.kde.org/T14517
This way the task manager can still pin the KCM or they can be linked to the desktop.
Internally this requires a KService, which is provided with the installed desktop file.
Task: https://phabricator.kde.org/T14517
Main goal is to port the KCM to KConfigXT and properly handle default/reset state, and eventually ease the port to QtQuick.
Like other KCMs dealing with shortcuts, they are now automatically applied when selected.
For technical reason, highlight for layouts and tree view keyboard options won't be implemented.
CCBUG: 434075
A new applet was created that speaks DBus. Having the old settings is a
very confusing user experience. It is also a lot of now obsoleted code.
CCBUG: 430661
Since we shipped a botched migration script for 5.21.0, we need to
ship a new migration script that un-botches the effects of the 5.21.0
script. We also change the ID of the plain kcminput_repeat migration so
that we can distinguish between the botched migration and the non-botched
migration, and only reverse migrations applied by the botched migration.
BUG: 431923
FIXED-IN: 5.21.2
Existing ability to disable OSD globally seems is not enough.
People see OSD on keyboard layout change especially annoying.
So provide the fine grained option.
Counterpart commit with the same title is in P-W
FEATURE: 426450
BUG: 376460
Reworked for new DBus API and event-driven plugin interface to QML.
Essentially, we now get only one DBus signal with id when the layout
changes.
All the other info applet is capable to lookup locally via it's own data
- no need for additionally DBus calls any more.
This is possible because new API provides exhaustive info about all
layouts via updated getLayoutsList() call - now it returns a vector of
all layouts with all names for each. This info is stored on QML side in
Actions objects - which at the same time serve to fill context menu.
Earlier, keyboard variants were embedded in layouts in config.
It is displayed incorrectly with new QML Keyboard Layout applet.
Now we need to update the config to split variants into separate
configuration entry.
The code is still compatible with the old format, but should be
refactored in the future.
Config update script sample:
- Input:
LayoutList=us,us(intl),ru,gb(dvorak),gb
- Output:
LayoutList=us,us,ru,gb,gb
VariantList=,intl,,dvorak
# DELETE LayoutList
CCBUG: 390079
Summary: kdeinit will most likely be dropped. Use QProcess to start it normally
Test Plan: Open KCM from SNI
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Maniphest Tasks: T12185
Differential Revision: https://phabricator.kde.org/D25549
Summary:
the bespoke parser was a horrendous drain on the build time of
plasma-desktop due to recursive templates.
it's been replaced with a new standalone binary that previews any
model/layout/variant/options combination as requested and a qtquick UI
which simplifies the actual rendering substantially.
the new code is better in that it:
- builds in a fraction of the time with a fraction of the power use
- renders complex models (such as the tm2020 or the kinesis) correctly
- because it entirely relies on xkb to figure out keysyms belonging to
a given key, it's layout representation is not only substantially more
complete it also correctly obeys options like eurosign:2
- renders numlock and the like (not that this is in fact very useful ^^)
- is following the system palette for coloring
- the paint code should be easier to graps and more robust because xkb
provides completely consistent geometry and layout data meaning we can
model this verbatim in qtquick and then scale the entire
keyboard to a useful size
- this is now a standalone application so potential input method KCMs
can opt to use it (e.g. fcitx)
BUG: 362946
Test Plan: preview all the layouts and all the models
Reviewers: #plasma
Subscribers: davidre, ngraham, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D25191
Copying the definition of xcb_input_device_presence_notify_event_t to
our code makes the new device detection code work also on systems
without libxcb-xinput (Debian/Ubuntu).
Differential Revision: https://phabricator.kde.org/D1804
XCB-XInput is not available on some distributions, use udev device discovery
there instead to reapply settings when adding new keyboard / mouse.
BUG: 346336
FIXED-IN: 5.5.0
REVIEW: 125465
This is a small patch for CMakeLists.txt to only require Qt5Test if BUILD_TESTING.
Also changed
kcms/keyboard/CMakeLists.txt
kcms/lookandfeel/CMakeLists.txt
to only add test subdirs if BUILD_TESTING.
REVIEW: 122207
Apparently the default instantiation depth of 256 (with clang 3.4) is not
enough to compile geometry_parser.cpp. It produces the following error:
/usr/local/include/boost/type_traits/is_reference.hpp:38:62: fatal error: recursive template instantiation exceeded maximum depth of 256
BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_reference,T,::boost::detail::is_reference_impl<T>::value)
^
/usr/local/include/boost/type_traits/detail/bool_trait_def.hpp:69:30: note: expanded from macro 'BOOST_TT_AUX_BOOL_TRAIT_DEF1'
BOOST_TT_AUX_BOOL_C_BASE(C) \
^
/usr/local/include/boost/type_traits/detail/bool_trait_def.hpp:63:81: note: expanded from macro 'BOOST_TT_AUX_BOOL_C_BASE'
And after that a few hundred lines of template instantiation details.
Rasing the limit to 512 allows successfully compiling these files.
REVIEW: 121762
e5741584 reintroduced xcb xinput code and added
"#include <xcb/xinput.h>" without properly looking for xinput in cmake
(and was placed in wrong ifdef).
This makes cmake look for xcb xinput and properly ifdef the code if
xcb/xinput.h is not found; for example debian-based systems ship xcb
without xinput altogether.
REVIEW: 120746
CCMAIL: arysin@gmail.com