Commit graph

2071 commits

Author SHA1 Message Date
Darcy Wong
1380597be2
Merge branch 'beta' into chore/common/crowdin-vi 2025-03-05 19:45:39 +07:00
Eberhard Beilharz
5a58410312
chore(linux): Update debian changelog 2025-03-01 09:38:05 +01:00
Eberhard Beilharz
097a416a06
Merge pull request #13363 from keymanapp/fix/linux/13282_fcitx5-configtool
fix(linux): ignore exception when fcitx5-configtool is not found
2025-02-27 17:14:20 +01:00
Eberhard Beilharz
788e778645
Merge pull request #13356 from keymanapp/fix/linux/12902_UninstallException
fix(linux): ignore DBusException during install and uninstall
2025-02-27 15:28:52 +01:00
Eberhard Beilharz
d90b718aa5
fix(linux): ignore exception when fcitx5-configtool is not found
Fixes: #13282
Fixes: KEYMAN-LINUX-7S
2025-02-27 11:12:30 +01:00
Eberhard Beilharz
749039b120
chore(linux): update to current Debian policy version 2025-02-27 10:02:16 +01:00
Eberhard Beilharz
a35c6b3c29
Merge pull request #13355 from keymanapp/refactor/linux/tests
refactor(linux): extract method for setting up mocks in tests
2025-02-27 08:37:20 +01:00
Eberhard Beilharz
6fe916ca8b
fix(linux): ignore DBusException during install and uninstall
Fixes: #12902
Fixes: #13283
Fixes: KEYMAN-LINUX-7J
Fixes: KEYMAN-LINUX-7R
2025-02-26 18:24:27 +01:00
Eberhard Beilharz
a4492963e9
refactor(linux): improve dbus_util.py code 2025-02-26 17:19:09 +01:00
Eberhard Beilharz
3e09884c68
chore(linux): adjust to renamed xdg module
The `xdg` module got renamed to `xdg_base_dirs`. However, Ubuntu still
ships the `python3-xdg` package with the old module, so we'll have to
support both so that it'll work with both Ubuntu packages and in a
virtual environment.
2025-02-26 12:14:00 +01:00
Eberhard Beilharz
615d90765c
refactor(linux): extract method for setting up mocks in tests 2025-02-26 12:01:54 +01:00
Eberhard Beilharz
2c7cd3a8d2
chore(linux): Update to new Debian policy version 2025-02-22 12:22:34 +01:00
Darcy Wong
1a1056ca50 chore(common): Add crowdin strings for Vietnamese 2025-02-22 07:37:36 +07:00
Eberhard Beilharz
3d77fe7492
fix(linux): address compiling with ICU 76
Turns out that Keyman 18 already compiles with ICU 76, so the only thing
left to do is mark the Debian bug as being closed by this change.

Fixes: #12920
2025-02-19 17:25:02 +01:00
Eberhard Beilharz
11694db9e3
Merge pull request #13234 from keymanapp/refactor/linux/13204_enable-integration-tests
refactor(linux): re-enable integration tests 🕷️
2025-02-19 11:54:27 +01:00
Eberhard Beilharz
ca96a8c38d
chore(linux): address code review comments 2025-02-19 10:59:44 +01:00
Eberhard Beilharz
30224a1b41
Merge pull request #13248 from keymanapp/refactor/linux/cleanup-tests
refactor(linux): cleanup code of test fixture 🕷️
2025-02-17 17:11:52 +01:00
Eberhard Beilharz
366ce9c1fb
Merge pull request #13247 from keymanapp/chore/linux/improve-test-messages
chore(linux): improve output when running tests 🕷️
2025-02-17 17:11:34 +01:00
Eberhard Beilharz
becff26e19
Merge pull request #13233 from keymanapp/chore/linux/improve-tests
feat(linux): add `--remote-debug` flag to `run-tests.sh` script  🕷️
2025-02-17 17:11:05 +01:00
Eberhard Beilharz
0c2d8f0312
refactor(linux): changes to get integration tests working
This change contains various changes and refactorings which together
allows the integration tests to pass again.

One of the important changs is `DbusTestHelper` which listens to a DBus
signal for a sentinel message and then simulates the sentinel key press.
Getting this to work also requires processing sd-bus messages which hooks
into the glib event loop and is implemented in `EventSource`.

Fixes: #13204
2025-02-14 17:30:42 +01:00
Eberhard Beilharz
e4c7332e1c
refactor(linux): use OrderedOutputDeviceMock when running tests
When running tests we use the `OrderedOutputDeviceMock` class which sends a
dbus message for a sentinel key press instead of creating/using a real
"virtual" keyboard.
2025-02-14 16:42:08 +01:00
Eberhard Beilharz
44eb85f433
chore(linux): Revert "refactor(linux): temporarily ignore integration tests"
This reverts commit 3a72e56c75.
2025-02-14 16:42:07 +01:00
Eberhard Beilharz
84df966c38
refactor(linux): cleanup code of test fixture 2025-02-14 16:35:06 +01:00
Eberhard Beilharz
937f799d23
chore(linux): update message when running tests 2025-02-14 16:34:27 +01:00
Eberhard Beilharz
af99c1d668
chore(linux): improve the output if dependencies are missing 2025-02-14 16:31:12 +01:00
Eberhard Beilharz
051e6c7b1b
feat(linux): add --remote-debug flag to run-tests.sh script
This allows to run the tests in a VM and debug them remotely.

Co-authored-by: Darcy Wong <darcy_wong@sil.org>
2025-02-14 16:29:41 +01:00
Marc Durdin
d6e7c0b9d1 chore: Revert "Merge branch 'master' into beta"
This reverts commit fae3932e15, reversing
changes made to 793daddb48.
2025-02-14 07:45:28 +07:00
Marc Durdin
fae3932e15
Merge branch 'master' into beta 2025-02-13 19:51:57 +07:00
Eberhard Beilharz
793daddb48
Merge pull request #13207 from keymanapp/docs/linux/whatsnew
docs(linux): update what's new for 18.0
2025-02-13 10:57:53 +01:00
Eberhard Beilharz
bbc3142c3c
docs(linux): update what's new for 18.0
Fixes: #13183
2025-02-12 18:07:46 +01:00
Eberhard Beilharz
07d46b691b
Merge pull request #13202 from keymanapp/chore/linux/remove-focal
chore(linux): remove support of Ubuntu 20.04 Focal
2025-02-12 17:45:18 +01:00
Eberhard Beilharz
d0b671bb38
Merge pull request #13192 from keymanapp/chore/linux/debian-branch
chore(linux): update branch that's used for Debian packaging
2025-02-12 17:33:54 +01:00
Eberhard Beilharz
f1b32a1439
chore(linux): additional code cleanup after Focal removal 2025-02-12 12:21:49 +01:00
Eberhard Beilharz
53bb152bef
docs(linux): update welcome.md 2025-02-12 11:48:01 +01:00
Eberhard Beilharz
ef824dcfa6
chore(linux): update minimum version 2025-02-12 11:47:52 +01:00
Eberhard Beilharz
d03b8e0e9a
docs(linux): update welcome.md 2025-02-12 11:47:21 +01:00
Eberhard Beilharz
29c46bcfe2
chore(linux): update minimum version 2025-02-12 11:32:37 +01:00
Eberhard Beilharz
9491202e5b
chore(linux): update branch that's used for Debian packaging
Use the `beta` branch while we're in Beta.
2025-02-11 20:01:15 +01:00
Eberhard Beilharz
02a3a1a66c
chore(linux): cleanup code
Now that we no longer support Focal we can use more modern tools for
packaging.
2025-02-11 19:32:29 +01:00
Eberhard Beilharz
f2747be553
chore(linux): remove support of Ubuntu 20.04 Focal
Ubuntu 20.04 Focal will reach EOL in April and GitHub removes the
runner images, so we no longer will be able to build packages for Focal.
2025-02-11 19:25:04 +01:00
Eberhard Beilharz
af3756dd92
chore(linux): remove support of Ubuntu 20.04 Focal
Ubuntu 20.04 Focal will reach EOL in April and GitHub removes the
runner images, so we no longer will be able to build packages for Focal.
2025-02-11 19:24:22 +01:00
Marc Durdin
342f216291 chore: increment to alpha 19.0 2025-02-11 14:14:15 +07:00
Eberhard Beilharz
ec2373acd5
fix(linux): start system service when switching keyboards
This change fixes #13171 where we failed to output after the first keypress
because the keyman system service had to be started. This change introduces
a new method `Ping` that we call to force keyman-system-service to be
started.

Fixes: #13171
2025-02-10 16:30:20 +01:00
Eberhard Beilharz
3313c2cc5a
Merge pull request #11535 from keymanapp/refactor/linux/10799_SerializedOutput
change(linux): Implement ordered output without patched ibus
2025-02-10 15:32:37 +01:00
Eberhard Beilharz
4d3d371a88
refactor(linux): fix build failure 2025-02-06 17:03:16 +01:00
Eberhard Beilharz
b1c818338f
refactor(linux): address code review comments 2025-02-06 16:57:52 +01:00
Eberhard Beilharz
62b34c06e4
chore(linux): Update debian changelog
(cherry picked from commit 77c19aaacf)
2025-02-06 10:33:16 +01:00
Eberhard Beilharz
3a72e56c75
refactor(linux): temporarily ignore integration tests
The setup for the integration tests is still wrong, so ignoring them
allows us to start the users tests and move forward. The integration
tests will be fixed in a follow-up commit.
2025-02-05 11:47:58 +01:00
Eberhard Beilharz
ec0ca04805
refactor(linux): Implement ordered output without patched ibus
This change implements things on the ibus-keyman side.

Fixes: #10799
2025-02-05 11:42:05 +01:00
Eberhard Beilharz
f23dd7563f
refactor(linux): Implement ordered output sentinel in keyman-system-service
This change allows to press F24 as ordered output sentinel from
keyman-system-service.

This is part of implementing serialized output with keyman-system-service
instead of requiring a patched ibus.

The problem both approaches try to solve is that with non-compliant apps
it is not possible to directly delete characters from the context. Instead
we have to emit a backspace key before we can commit the new
characters. However, the backspace key press goes through a different
code path in ibus and so it can happen that the commit gets processed
before the backspace which then deletes from the characters we just
added instead of from the old content.

The previous implementation solved this by forwarding a F24 ordered output
sentinel key to ibus and relying on the patched ibus to send that back to
us. When we received the F24 key we committed the characters that we
queued when we forwarded the F24 key (implemented in #7079).

The new approach implemented in this change instead sends the F24 ordered
output sentinel key through keyman-system-service and so follows the
regular key processing without requiring a patched ibus to send the key
back to us. The rest of the algorithm stays mostly the same: when we receive
the F24 key we commit the characters previously queued. The difference to
the previous implementation is that we now also queue the backspace keys
that we generate.

Part-of: #10799
2025-02-05 11:42:04 +01:00