Commit Graph

890 Commits

Author SHA1 Message Date
f5558e6112 input: Add the Shift-modifier
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/696>
2024-11-05 19:29:45 +01:00
9c21922a9d parsing: fix test for new xkbcommon version
The latest version of `xkbcommon` (0.8) fixes a bug where
`keysym_to_utf8` returned a string including the terminating NULL
character. The `unicode_keysym` test used to rely on this behaviour, so
we must update it so it still works with the new version.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/697>
2024-11-05 18:01:35 +01:00
04b6e07b61 keyboard.rs: Format code better
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/695>
2024-11-04 14:50:20 +01:00
1a899f6b77 keyboard.rs: Add keycode to the keymap with BackSpace if there is no other
BackSpace does not work with `tools/entry.py` (made with GTK3),
if the keymap with BackSpace does not contain any other keycodes.
This should only happen for the emoji-layout or incomplete custom-layouts,
because the layout-tests for normal layouts
check for the presence of a button for Return.
This does add an "Unknown"-keycode, if necessary,
to let BackSpace work anyway.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/695>
2024-11-04 14:43:13 +01:00
0fa0782a0a keyboard.rs: Add more keycodes and sort those
Some applications expect that certain characters/functions
are assigned to specific keycodes.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/693>
2024-11-03 16:49:13 +01:00
2651743cd1 keyboard.rs: Reword a comment
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/693>
2024-11-01 14:28:14 +01:00
155cc45051 submission.rs: Restore active modifiers after changing keymaps
and clear all modifiers when changing layouts.

Fixes #373

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/598>
2024-10-16 12:28:21 +02:00
f5aa1f3b19 keyboard: Only generate keycodes from an allowlist
Some broken clients (most notably Chromium and its descendants)
try to interpret keymaps as if they were input sequences coming
from evdev. Workaround that by only using codes that directly
produce characters.

Fixes #244

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/598>
2024-10-15 21:19:57 +02:00
76194dba15 layouts: Adjust French (fr+bepo) terminal-layout and make it available
Except for the arrangement of the letter-buttons,
this layout is almost identical to the French (fr) terminal-layout.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/683>
2024-09-29 10:45:45 +02:00
985e0c976a */meson.build: Fix warnings about features deprecated since Meson 0.56
1.0.0 is currently set as the minimum required version of Meson.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/681>
2024-09-25 13:47:43 +02:00
a76c3c714e testing: Mention non-default scaling-settings during scaling-tests
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/679>
2024-09-23 11:49:54 +02:00
5288e10cab scaling: Add GSettings for adjusting the height of the panel
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/679>
2024-09-23 11:49:53 +02:00
3387154ac1 scaling: Improve scaling
Issues fixed by this change:

- Empty space above and below layouts.
- The compact shape, which is supposed to be used on small screens,
  did not scale up until it reached the border of the screen, on some
  screens, resulting in empty space next to it, and smaller buttons.
- The compact shape was used on some screens in horizontal orientation,
  instead of the wide shape.
- The panel was rather small on large screens.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/677>
2024-09-21 10:21:42 +00:00
9a261acdfd state.rs: Make get_preferred_height_and_arrangement easier to understand
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/677>
2024-09-21 10:21:42 +00:00
e761208630 popover.rs: Open correct panel in GNOME Settings
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/672>
2024-09-13 19:38:19 +00:00
2b07946af2 Layouts: Fallback to more appropriate layouts
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/670>
2024-09-13 15:08:56 +00:00
8b26ea691b Layouts: Add Japanese (jp) layout based on japanese keyboards
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/669>
2024-09-13 14:28:48 +00:00
9decd5bd74 Layouts: Add Belarusian layout
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/668>
2024-09-07 18:15:54 +00:00
8a527c64c3 layouts: Add Serbian layouts
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/666>
2024-09-03 08:35:15 +00:00
34564edf32 Port to crate xkbcommon 0.7
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/656>
2024-08-14 15:18:43 +00:00
0b0585eb66 Layouts: Add Malayalam layout
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/660>
2024-08-12 17:50:38 +02:00
a905d03fc9 resources.rs: Correct sorting of layouts
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/658>
2024-08-05 12:41:00 +02:00
9f7d2d539e Layouts: Add ergonomic German layouts
The "Neo 2"-layout is optimised for typing in German.
The "Bone"-layout is an improved version of the "Neo 2"-layout.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/658>
2024-08-05 12:40:54 +02:00
84341b88cd Improve shape-selection with a workaround
This workaround makes Squeekboard use the wide shape on more devices.

On many devices with wide screens, which should use the wide shape
for layouts while in horizontal orientation, the compact shape was
used instead.
In particular, 5" large displays with an aspect-ratio of 16:9,
which are relatively common, were using the compact shape.

This workaround has the side-effect of allowing for more empty space
above and below the wide shape, to fit the layout into the available area.
The buttons on displays where this would be noticeable,
should still be larger than before.

To find an appropriate point for switching between the shapes without
having the relevant displays to test with,
one can create an image sized according to the device's display-resolution
and pixel-density, place a line representing the height of Squeekboard
(based on the scaling-tests), paste images of compact and wide
layout-shapes into the area and scale them appropriately,
set the image-viewer to show the image according to physical size,
and then compare which one fits better.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/639>
2024-05-03 10:41:14 +00:00
1381e316eb Add a Slovenian [si] layout
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/652>
2024-05-03 09:28:55 +00:00
2aa58186e4 Add Turkish [tr] and [tr+f] layouts
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/650>
2024-05-03 08:53:53 +00:00
856ed64a46 Add an additional view for the accents on the Portuguese (Brazil) layout
and add a Portuguese layout based on it.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/649>
2024-05-03 08:33:39 +00:00
2eb06ae350 src/state.rs: Add comments related to shape-selection
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/645>
2024-04-22 08:40:25 +00:00
7308eeefe1 Add even more scaling-tests
and sort the tests by aspect-ratio, size, and resolution.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/645>
2024-04-22 08:40:25 +00:00
c21fbd86ac Change "GPL-3.0+" to "GPL-3.0-or-later"
The "GPL-3.0+"-SPDX-license-identifier has been deprecated,
and was replaced with "GPL-3.0-or-later".

More information about that, is available in the
"Deprecated License Identifiers"-part of
https://spdx.org/licenses/ .

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/642>
2024-04-14 17:49:06 +02:00
07ccea0fb5 Change "http://" to "https://"
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/642>
2024-04-14 17:49:06 +02:00
69805b4565 Add more scaling-tests
These are based on actual displays/devices.

A display-size-calculator ( https://www.sven.de/dpi/ ) was used to
calculate the width and height from resolution and diagonal display-size.

Some of these tests check for non-optimal results;
however, their purpose is mostly to make it noticeable
how changes to scaling-behaviour affect various
display-types.

When Squeekboard's scaling-behaviour will be improved, the tests
should be updated with values that fit the displays/devices better.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/640>
2024-04-11 17:38:03 +02:00
332e5f91c8 Update to serde_yaml 0.9.*
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/624>
2024-03-22 11:53:35 +01:00
5cfb940caa Add the remaining, wide shapes for layouts
There should be a wide shape for
all available layouts, so those can be used
well on devices in horizonal orientation.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/630>
2024-03-20 19:43:06 +01:00
5806b14628 Simplify build-system further
Remove Fragile from the list of dependencies

It is not necessary for building 'gio' anymore,
since the upgrade to 'glib v2_58'.

Remove "online" and "reset_lock" Meson-options

Building Squeekboard should work offline.

Use a single "Cargo.toml"-file instead of splitting it into parts

and putting it back together when building.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/623>
2024-03-11 17:45:57 +01:00
7ed0d48a99 test-layout: Drop unneeded macro use
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/621>
2024-03-10 17:37:52 +01:00
00740de79f drawing: Unwrap errors
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/621>
2024-03-10 17:37:52 +01:00
d801b77e96 popover: Ignore return value
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/621>
2024-03-10 17:37:52 +01:00
15ebd0ffaf Switch to glib v2_58
Remove the ancient fallbacks

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/621>
2024-03-10 17:37:52 +01:00
a569b1c1a3 "Priority" constants for glib-rs 0.18
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/620>
2024-03-10 15:44:28 +00:00
aa513b5cd9 Replace "Continue" with "ControlFlow"
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/620>
2024-03-10 15:44:28 +00:00
078f58be26 src: style: fix build with newer gtk-rs
`gtk::Settings::property()` no longer returns a `Result` but instead
panics if the property doesn't exist. In order to work around this
change without affecting the surrounding code too much, this patch
modifies the `prop` function so we can avoid panics and wrap the
property value into a `Result` as was previously the case.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/620>
2024-03-10 15:44:28 +00:00
86674507e1 src: popover: fix build with newer gtk-rs
`gtk-rs` v0.16+ no longer exposes the internal fields of the
`gtk::Rectangle` struct, mandating the use of the `new()` function
instead.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/620>
2024-03-10 15:44:28 +00:00
bc43abdb02 src/popover.c: Change 'ControlCenter' to 'Settings'
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/616>
2024-03-08 14:49:11 +01:00
e029c53401 Add wide emoji-layout
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/614>
2024-03-08 01:18:45 +00:00
4352f01486 Add German terminal-keyboard-layout
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/609>
2024-03-07 23:22:38 +00:00
dcz
4b73775695 Merge branch 'master' into 'master'
add french canadian layout (QWERTY + accented letters)

See merge request World/Phosh/squeekboard!603
2024-03-02 16:10:27 +00:00
d801d45812 Add Spanish terminal-keyboard-layouts 2024-02-27 11:24:23 +01:00
8d96803e91 add french canadian layout (QWERTY + accented letters) 2024-01-29 21:41:09 +01:00
dcz
ef516c2082 Merge branch 'size' into 'master'
Fix panel sizing

See merge request World/Phosh/squeekboard!594
2023-03-22 16:21:20 +00:00