The main behind-the-scenes change in this release is the rework which gathers code selecting layout versions into one place. A resource leak causing slowdowns was also avoided.
New translations:
- Chinese (China)
- French
- Russian
Layout changes:
- new FR+Bépo
- new Georgian
- improved Italian
Thanks to all contrbutors.
New translations:
- Portugese
- Serbian
- Hungarian
- Turkish
- Polish
- Spanish
- Italian
- Korean
- Occitan
- Georgian
Updated layouts: greek, polytonic
Bug ixes and improvements:
- better panel sizing
- possible to enable debugging messages while Squeekboard is running
- input method state fix
New translations:
- Hebrew (thanks Yosef Or Boczko)
- Galician (Fran Dieguez)
New Romanian layout (thanks Cosmin Humeniuc)
Others:
- Updated visual design
- Sizing system rework
- Fix crash without dbus (thanks William Wold)
This release contains fixes that make the project's dependencies more reliable, and therefore less likely to blow up when the world changes.
Apart from that, there are a lot of extra translations:
- Brazilian Portugese (Rafael Fontenelle)
- Ukrainian (Yuri Chornoivan)
- Swedish (Luna Jernberg)
- Friulian (Fabio Tomat)
- Romanian (Daniel Șerbănescu)
- Slovenian (Matej Urbančič)
- Dutch (Nathan Follens)
- Finnish (Jiri Grönroos)
- Persian (Danial Behzadi)
- Catalan (Jordi Mas i Hernandez)
This release adds new layouts, and new types of layout, plus fixes a regular allotment of bugs, and improvs the internal design a whole lot.
Here are the changes that you might notice without digging into code.
Layouts:
- Arabic layout from Khaled Eldoheiri
- Swiss French from Jordi
- Bulgarian from Plamen Stoev
- Swiss German from Patrick Jörg
- Armenian from Norayr Chilingarian
- Wide French terminal from Arnaud Ferraris
- PIN layout
Improvements:
- Integration into GNOME translations
- A debug mode that starts the GTK inspector
- Better errors when can't start
- Better docs (thanks PhilProg)
Bug fixes:
- Unblurred icons
- Not showing on the lock screen for no reason
- Theme changes without restarting now
- Input hint can take effect without having to refocus the field
Changes:
- fixed builds in paths that would be shell-escaped
- layout popover leaves the panel area
- global styles better picked up
- and code quality improvements
Changes:
- A system for latching and locking views
- Some crash fixes
- Locale-flavored terminals
- A way to add locale-flavored emoji and numbers layouts
- Making the code less annoying to work with in some places
- Fixed layout changes on newer GSettings
- Mod4 modifier
- Better session registration
- New layouts: Dvorak, Colemak wide, hebrew, wide Thai
User-visible changes:
- Fixed a crash related to making keyboard visible.
- Better fallback: when selecting a missing layout named "fr+foo", "fr" will be used instead.
- When enabling the keyboard manually, it will never be stuck in the numbers view.
- Thai layout
- US-Colemak layout
- Czech layouts
- Esperanto layout
- Bulgarian layout
- Improved Norwegian layout
That's a lot of new layouts!
Plus a bunch of stricter warnings, MIPS64el support, and reproducible building.
- Xwayland support
- Keys' press zone extends to the side edges of the widget
- Layout popover separates languages from special layouts
- Popover can open settings
- Keyboard is invisible when GNOME accessibility setting is off
- Layout tester checks for presence of Backspace and Return
- Adjusts the keyboard size better to tablet-sized displays
- Friulian keyboard layout
- Ukrainian layout
- Belgian layout
- Wide French layout
- Wide Belgian layout
- Wide terminal layout
- Improved tutorial
- Improved README
- Stricter compilation checks
- Minor fixes
This commit is a bit bigger than it could have: Meson changes could have gone in separately from CI and Debian.
This commit looks more complicated than it should reasonably be. Alas, Cargo is a piece of work, and it doesn't let honest people just choose different versions of dependencies, leading to a cascade of misery. Several things were tried to curb the disaster:
- Cargo [feature] supports choosing dependencies, but doesn't support specifying dependency versions
- Cargo has a cfg() syntax in sections for choosing dependencies by build options, but it explicitly doesn't support selecting on features…
- Cargo allows choosing different dependencies based on features, so perhaps dependencies with different versions could live in stub crates pulled in as needed? Nope! If a dependency doesn't exist in the repo (and that's the point here), Cargo throws up its hands.
This means Cargo.toml needs to be generated based on the build type. More misery:
- we lose the simplicity of just doing `cargo.sh` for simple housekeeping like deps updates. HACKING.md was updated to reflect that. Perhaps that's inevitable - build options need to be like this.
- Some flaky adjustments needed in `cargo.sh` because of an additional argument that can be mistaken for an argument to the exec in `cargo run`.
- Specifying a custom `Cargo.toml` means Cargo can no longer find any tests, examples, benchmarks, or binaries, because it searches relative to the directory of `Cargo.toml`, which is now the build dir. Extra care needed to not forget about them now.
As soon as Cargo allows anything better for managing deps versions, the above should be undone in its favor.
Good side is that a couple bugs went away:
- build flags not always making it to Cargo
- arm64 builds were optional while they shouldn't
- test layouts in unit tests are loaded from an explicit directory now
The Bullseye versions of dependencies are canonical now, Buster considered legacy.
- Preview support for "Control" and "Alt" modifiers in buttons, use field "modifiers: Control" inside a button
- Don't crash when gsettings has an empty list of settings
- Documentation rearrangement
Highlights:
- Fixed glib critical when switching layouts
- Fixed minor memory leaks when switching layouts
- Whenever the client supports it, text is sent as text instread of key presses
- New Polish language layout
- Fixed greek layout
- Better key locking
- Less leaks
- Tweaks in terminal layout
- Better emoji layout
- Landscape layout doesn't crash
- CSS font is actually taken into account
- Failed start due to dbus is now communicated
- Better log messages
- Fixed Enter in numbers layout
- More consistent terminal layout
- Proper font sizes in terminal layout