--001636284370b8d5ad04851a6330
Content-Type: multipart/alternative; boundary=001636284370b8d59904851a632e
--001636284370b8d59904851a632e
Content-Type: text/plain; charset=ISO-8859-1
Hi all
I've moved new keyboard control module in kdereview under keyboard2 name.
keyboard2 is new project to replace keyboard (kcmmisc) and kxkb modules to
manage keyboard hardware configuration and layouts.
The project provides: kded daemon, plasma applet, layout widget for
embedding and new kcm configuration module.
Keyboard daemon:
* configures keyboard layouts on start
* provides DBUS API "org.kde.KXKB/kxkb"
* listens to window/desktop switching if layout switch mode is not global
* listens to new keyboard devices and reinitializes keyboard layouts
* listens to Global KDE Shortcut to switch layouts (and listens to their
change)
* listens to keyboard configuration change
* provides systray icon to show layout
Keyboard applet:
* displays current layout with text and (optionally flag)
Layout widget:
* displays current layout with text (currently no flag or tooltip) embedded
in another widget
* dynamically loaded as a plugin
KCM Module:
* allows to configure keyboard hardware, layouts and xkb options (advanced)
in one module
Advantages (over old code):
* One UI module to configure keyboard layouts and hardware
* Allows to configure keyboard model/xkb options without configuring layouts
* Less cluttered layout configuration control (add layout is separate)
* Layout control/DBus interface is separate from the indicator
* Does not require libxklavier (parses rules xml directly with QtXml)
* Takes country/language names/translations from iso-codes project
* Information about current layouts is always taken from X server, so should
be more robust
* Cleaner code (rewritten from scratch)
* Due to many points above should start faster (though no benchmarks
performed)
New features:
* Allow selection of keyboard layout by language
More info is in the README and TODO.
The UI is a bit rough around the edges (need to work on UI layout in KCM,
possibly merge text with flag in the layouts table, some better drawing of
text in the icon etc) and code could be a bit improved (some optimization
like text-drawn pixmap caching and smarter library linking) but all features
should be working.
I did not like the way the text was drawn over the flag before but could not
find a better way yet, so in the systray icon for now it's either flag or
text. This is a bit different and I am not sure I like it yet :) so if
people like the old way better it'll be fairly easy to revert it back (and
of course people who don't want flags would not care :) ). Also for drawing
the text I need to find a way to leave the taskbar background (but this was
also the problem before).
If you're willing to try, you'll have to check out keyboard2 into
kdebase/workspace/kcontrol and apply the cmake patch attached
(keyboard2_cmakefile.patch). You may need to remove old kxkb and kcmmisc
kcms so they don't interfere though. Also the second patch is for krunner's
lockdlg if you want to try that one too.
I tried to preserve the translation messages from the old modules as much as
I could and even provided Messages.sh but did not do much testing in this
area. Not sure what the best way to decrease the amount translators have to
redo so any help is appreciated.
Also I ran it via krazy so should be fairly clean in this regards.
I was carving out some time by bits and pieces and was doing this rewrite
for half a year now so I am hoping to get some (hopefully positive) feedback
:), so comments and suggestions are very welcome
Thanks,
Andriy
--001636284370b8d59904851a632e
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Hi all
I've moved new keyboard control module in kdereview under=
keyboard2 name.
keyboard2 is new project to replace keyboard (kcmmi=
sc) and kxkb modules to manage keyboard hardware configuration and layouts.=
The project provides: kded daemon, plasma applet, layout widget for emb=
edding and new kcm configuration module.
Keyboard daemon:
* confi=
gures keyboard layouts on start
* provides DBUS API "org.kde.KXKB/k=
xkb"
* listens to window/desktop switching if layout switch mode is not global* listens to new keyboard devices and reinitializes keyboard layouts
*=
listens to Global KDE Shortcut to switch layouts (and listens to their cha=
nge)
* listens to keyboard configuration change
* provides systray icon to sh=
ow layout
Keyboard applet:
* displays current layout with text an=
d (optionally flag)
Layout widget:
* displays current layout with=
text (currently no flag or tooltip) embedded in another widget
* dynamically loaded as a plugin
KCM Module:
* allows to configur=
e keyboard hardware, layouts and xkb options (advanced) in one module
Advantages (over old code):
* One UI module to configure keyboard layo=
uts and hardware
* Allows to configure keyboard model/xkb options without configuring layout=
s
* Less cluttered layout configuration control (add layout is separate)=
* Layout control/DBus interface is separate from the indicator
* Doe=
s not require libxklavier (parses rules xml directly with QtXml)
* Takes country/language names/translations from iso-codes project
* Inf=
ormation about current layouts is always taken from X server, so should be =
more robust
* Cleaner code (rewritten from scratch)
* Due to many poi=
nts above should start faster (though no benchmarks performed)
New features:
* Allow selection of keyboard layout by language
More info is in the README and TODO.
The UI is a bit rough aro=
und the edges (need to work on UI layout in KCM, possibly merge text with f=
lag in the layouts table, some better drawing of text in the icon etc) and =
code could be a bit improved (some optimization like text-drawn pixmap cach=
ing and smarter library linking) but all features should be working.
I did not like the way the text was drawn over the flag before but coul=
d not find a better way yet, so in the systray icon for now it's either=
flag or text. This is a bit different and I am not sure I like it yet :) s=
o if people like the old way better it'll be fairly easy to revert it b=
ack (and of course people who don't want flags would not care :) ). Als=
o for drawing the text I need to find a way to leave the taskbar background=
(but this was also the problem before).
If you're willing to try, you'll have to check out keyboard2 in=
to kdebase/workspace/kcontrol and apply the cmake patch attached (keyboard2=
_cmakefile.patch). You may need to remove old kxkb and kcmmisc kcms so they=
don't interfere though. Also the second patch is for krunner's loc=
kdlg if you want to try that one too.
I tried to preserve the translation messages from the old modules as mu=
ch as I could and even provided Messages.sh but did not do much testing in =
this area. Not sure what the best way to decrease the amount translators ha=
ve to redo so any help is appreciated.
Also I ran it via krazy so should be fairly clean in this regards.
<=
br>I was carving out some time by bits and pieces and was doing this rewrit=
e for half a year now so I am hoping to get some (hopefully positive) feedb=
ack :), so comments and suggestions are very welcome
Thanks,
Andriy
--001636284370b8d59904851a632e--
--001636284370b8d5ad04851a6330
Content-Type: text/x-patch; charset=US-ASCII; name="keyboard2_cmakefile.patch"
Content-Disposition: attachment; filename="keyboard2_cmakefile.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_g8gnacay0
SW5kZXg6IHdvcmtzcGFjZS9rY29udHJvbC9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB3
b3Jrc3BhY2Uva2NvbnRyb2wvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDExMTEwNTkpCisrKyB3
b3Jrc3BhY2Uva2NvbnRyb2wvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTExLDgg
KzExLDkgQEAKIGVuZGlmKFgxMV9YcmFuZHJfRk9VTkQgKQogCiBpZihYMTFfWGtiX0ZPVU5EKQot
ICAgIGFkZF9zdWJkaXJlY3RvcnkoIGt4a2IgKQotICAgIGFkZF9zdWJkaXJlY3RvcnkoIGtleWJv
YXJkICkKKyMgICAgYWRkX3N1YmRpcmVjdG9yeSgga3hrYiApCisjICAgIGFkZF9zdWJkaXJlY3Rv
cnkoIGtleWJvYXJkICkKKyAgICBhZGRfc3ViZGlyZWN0b3J5KCBrZXlib2FyZDIgKQogZW5kaWYo
WDExX1hrYl9GT1VORCkKIAogaWYoTk9UIFdJTjMyKQo=
--001636284370b8d5ad04851a6330
Content-Type: text/x-patch; charset=US-ASCII; name="lockdlg_kxkb_to_keyboard2.patch"
Content-Disposition: attachment; filename="lockdlg_kxkb_to_keyboard2.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_g8gnaq9m1
SW5kZXg6IGxvY2tkbGcuY2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gbG9ja2RsZy5jYwkocmV2aXNpb24gMTEx
MTA1OSkKKysrIGxvY2tkbGcuY2MJKHdvcmtpbmcgY29weSkKQEAgLTExNSwxNCArMTE1LDE0IEBA
CiAgICAgY2FuY2VsID0gbmV3IEtQdXNoQnV0dG9uKCBLU3RhbmRhcmRHdWlJdGVtOjpjYW5jZWwo
KSwgdyApOwogICAgIG1OZXdTZXNzQnV0dG9uID0gbmV3IEtQdXNoQnV0dG9uKCBLR3VpSXRlbShp
MThuKCJTdyZpdGNoIFVzZXIuLi4iKSwgImZvcmsiKSwgdyApOwogCi0gICAgLy8gVXNpbmcgS1hL
QiBjb21wb25lbnQKLSAgICBLUGx1Z2luRmFjdG9yeSAqa3hrYkZhY3RvcnkgPSBLUGx1Z2luTG9h
ZGVyKCJsaWJrZGVpbml0NF9reGtiIikuZmFjdG9yeSgpOworICAgIC8vIFVzaW5nIGtleWJvYXJk
IGxheW91dCBjb21wb25lbnQKKyAgICBLUGx1Z2luRmFjdG9yeSAqa3hrYkZhY3RvcnkgPSBLUGx1
Z2luTG9hZGVyKCJrZXlib2FyZF9sYXlvdXRfd2lkZ2V0IikuZmFjdG9yeSgpOwogICAgIFFXaWRn
ZXQgKmt4a2JDb21wb25lbnQgPSBOVUxMOwogICAgIGlmIChreGtiRmFjdG9yeSkgewogICAgICAg
ICBreGtiQ29tcG9uZW50ID0ga3hrYkZhY3RvcnktPmNyZWF0ZTxRV2lkZ2V0Pih0aGlzKTsKICAg
ICB9CiAgICAgZWxzZSB7Ci0gICAgICAgIGtEZWJ1ZygpIDw8ICJjYW4ndCBsb2FkIGt4a2IgY29t
cG9uZW50IGxpYnJhcnkiOworICAgICAgICBrRGVidWcoKSA8PCAiY2FuJ3QgbG9hZCBrZXlib2Fy
ZCBsYXlvdXQgd2lkZ2V0IGxpYnJhcnkiOwogICAgIH0KIAogICAgIFFIQm94TGF5b3V0ICpsYXlT
dGF0dXMgPSBuZXcgUUhCb3hMYXlvdXQoKTsKQEAgLTEzMCw4ICsxMzAsMTEgQEAKICAgICBsYXlT
dGF0dXMtPmFkZFdpZGdldCggbVN0YXR1c0xhYmVsICk7CiAgICAgbGF5U3RhdHVzLT5hZGRTdHJl
dGNoKCk7CiAKLSAgICBpZigga3hrYkNvbXBvbmVudCApCisgICAgaWYoIGt4a2JDb21wb25lbnQg
KSB7CisJLy9UT0RPOiB3aXRob3V0IHRoaXMgdGhlIHdpZGdldCBpcyBvZmYgdGhlIHBhcmVudCBh
cmVhLCBidXQgd2UgbmVlZCBzb21ldGhpbmcgYmV0dGVyIGhlcmUKKyAgICAgICAga3hrYkNvbXBv
bmVudC0+c2V0Rml4ZWRTaXplKDQ4LCAyNCk7CiAgICAgICAgIGxheVN0YXR1cy0+YWRkV2lkZ2V0
KCBreGtiQ29tcG9uZW50LCAwLCBRdDo6QWxpZ25SaWdodCApOworICAgIH0KIAogICAgIFFIQm94
TGF5b3V0ICpsYXlCdXR0b25zID0gbmV3IFFIQm94TGF5b3V0KCk7CiAgICAgbGF5QnV0dG9ucy0+
YWRkV2lkZ2V0KCBtTmV3U2Vzc0J1dHRvbiApOwpJbmRleDogQ01ha2VMaXN0cy50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDExMTEwNTkpCisrKyBDTWFrZUxpc3Rz
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTUgKzI3LDggQEAKIHNldChrc2NyZWVuc2F2ZXJf
eG1sICAke0tERUJBU0VfV09SS1NQQUNFX1NPVVJDRV9ESVJ9L2tydW5uZXIvZGJ1cy9vcmcua2Rl
LnNjcmVlbnNhdmVyLnhtbCkKIFFUNF9BRERfREJVU19JTlRFUkZBQ0Uoa3NjcmVlbmxvY2tlcl9T
UkNTICR7a3NjcmVlbnNhdmVyX3htbH0ga3NjcmVlbnNhdmVyX2ludGVyZmFjZSkKIAotc2V0KGt4
a2JfYWRhcHRvciAke0tERUJBU0VfV09SS1NQQUNFX1NPVVJDRV9ESVJ9L2tjb250cm9sL2t4a2Iv
a3hrYl9hZGFwdG9yLmgpCi1zZXQoa3hrYl94bWwgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9
L29yZy5rZGUuS1hLQi54bWwpCi1BRERfQ1VTVE9NX0NPTU1BTkQoT1VUUFVUICR7a3hrYl94bWx9
Ci0gICAgICAgQ09NTUFORCAke1FUX0RCVVNDUFAyWE1MX0VYRUNVVEFCTEV9ICR7a3hrYl9hZGFw
dG9yfSA+ICR7a3hrYl94bWx9Ci0gICAgICAgREVQRU5EUyAke2t4a2JfYWRhcHRvcn0pCi1RVDRf
QUREX0RCVVNfSU5URVJGQUNFKCBrc2NyZWVubG9ja2VyX1NSQ1MgJHtreGtiX3htbH0ga3hrYl9p
bnRlcmZhY2UgKQogCiAKLQoga2RlNF9hZGRfa2NmZ19maWxlcyhrc2NyZWVubG9ja2VyX1NSQ1Mg
JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9Ly4uL2tjZmcva3NjcmVlbnNhdmVyc2V0dGluZ3Mu
a2NmZ2MpCiAKIAo=
--001636284370b8d5ad04851a6330--