Commit Graph
100 Commits
Author SHA1 Message Date
Guido Günther 8cf9aab78f desktop-file: Add X-GNOME-* for session management
This add the X-GNOME-* bits that are currently shipped in
sm.puri.OSK0.desktop allowing distributions to drop this file and make
it a plain symlink to sm.puri.OSK0.desktop.

If squeekboard is used in another context that doesn't use gnome-session
the entries have no effect.
2022-11-08 08:49:17 +01:00
Guido Günther b6ce4151bd Merge branch 'rel' into 'master'
Release 1.16.0 "Clostridium botulinum"

See merge request World/Phosh/squeekboard!522
2022-01-25 12:15:22 +00:00
Guido Günther 23b35733cb Add entry test using GTK4
This helps debugging GTK4 interaction issues
2022-01-20 10:36:13 +01:00
Guido Günther 55cd225c74 entry: Add another input hint 2022-01-20 10:17:11 +01:00
Guido Günther e55ae67da6 entry: Only activate purpose timer when focused
This avoids verbose printing when the widget is never focused
2022-01-20 10:17:11 +01:00
Guido Günther 79bc670ad0 entry: Mark as executable
Saves some typing
2022-01-20 10:17:11 +01:00
Guido Günther 6979b6d08d po: Fix ui file name
The file was renamed to match the code

Fixes: 2aa9cf2 ("popover: Make the ui file match the code file name")
2021-12-22 09:39:12 +01:00
Guido Günther 44b9c8f869 Merge branch 'rel' into 'master'
Release 1.15.0 "Feedback loop"

See merge request World/Phosh/squeekboard!513
2021-12-21 15:48:51 +00:00
Guido Günther e1b3de9bf8 Merge branch 'indent' into 'master'
ci: Make indentation close to original again

See merge request World/Phosh/squeekboard!511
2021-12-17 12:03:58 +00:00
Guido Günther 2fea092691 Merge branch 'style' into 'master'
ci: style enforcement

See merge request World/Phosh/squeekboard!506
2021-12-09 13:05:32 +00:00
Guido Günther 1451c746e7 Merge branch 'ci' into 'master'
ci: Add git revision and CI pipeline number to .deb artifacts

See merge request World/Phosh/squeekboard!499
2021-12-09 10:46:02 +00:00
Guido Günther 0a417fe4a2 Remove custom translations
Can be handled via po. Most of them should come via libgnome-desktop
anyway and half of them weren't listed in LAYOUT_NAMES so were unused
anyway.
2021-12-09 11:29:48 +01:00
Guido Günther 750814e050 Drop locale_config
Not used anymore.
2021-12-09 11:29:48 +01:00
Guido Günther 10ea276052 Drop custom translation handling
xkb layouts are translated fine by libgnome-desktop. If not
we should go fixing there since that makes keyboard layout
strings consistent with e.g. gnome-control-center.

There weren't any 'exotic' strings in the current translations
so what we get from libgnome-desktop should be just fine.
2021-12-09 11:29:48 +01:00
Guido Günther 1a193a9aed Merge branch 'refs' into 'master'
README/docs improvements

See merge request World/Phosh/squeekboard!501
2021-12-08 19:25:52 +00:00
Guido Günther 72a7825c85 popover: Don't complain about missing translations
It's fine to do all via po.
2021-12-08 15:29:57 +01:00
Guido Günther da789bcb87 Remove emoji and terminal from translations
Handled via po. Remove now empty files. The match with resources.rs
shows that some of them weren't even used (e.g. fa-IR) showing why a
switch to po is useful (which allows to maintain us that outside of
code).
2021-12-08 15:29:57 +01:00
Guido Günther 2aa9cf26ee popover: Make the ui file match the code file name
UI files are usually named like the code file. Stick to that
pattern.
2021-12-08 15:29:57 +01:00
Guido Günther ac833950ab popover: Add translator notes
Single words are hard to translate in context, give some indication what
they do. They're automatically extracted into the pot file.

  #. translators: This is a emmoji keyboard layout
  #: data/popover.ui:6
  msgid "Emoji"
  msgstr "…"

  #. translators: This is a terminal keyboard layout
  #: data/popover.ui:12
  msgid "Terminal"
  msgstr "…"
2021-12-08 15:29:57 +01:00
Guido Günther 9b7e065b0f popover: Move Emoji and Terminal to ui file
This allows them to be translated via po so we don't have to maintain
the translation list by hand or care about empty translation files.

The only downside is that the "overlay layouts" in OVERLAY_NAMES need to
match the ones in the ui file but since a missing one is a clean crash
when selected there's little potential for subtle breackage. We could
even ensure consistency by comparing the two at run time but they change
only slowly this is not much of an issue (compared to how e.g. new
languages can be added now).
2021-12-08 15:27:17 +01:00
Guido Günther a9f5429bcb gitignore: Ignore generated po files 2021-12-07 20:11:58 +01:00
Guido Günther 12c10ad726 gitignore: Drop zanata dir
Unused since ages
2021-12-07 20:11:27 +01:00
Guido Günther 12cf628c71 Add URL and EMail keyboard variants for us
Closes: #65
2021-12-05 21:26:44 +01:00
Guido Günther da7230e723 po: Add desktop file to translatable files 2021-12-05 21:06:40 +01:00
Guido Günther e91f6419fb data: Make generic name truly generic
And mention that it's an on screen keyboard which is the more widely
used term in end user facing string.
2021-12-05 21:06:40 +01:00
Guido Günther 16dd4f9753 server-context-servide: Don't translate application name 2021-12-05 21:04:43 +01:00
Guido Günther b41aedabbf eekboard-context-service: Don't translate property names
No need to bother translators with this.
2021-12-05 21:04:43 +01:00
Guido Günther 7a1e646bc9 debian: Install desktop file
Distros like Debian ship it anyway
2021-12-05 20:57:02 +01:00
Guido Günther 4f19a81d78 debian: Switch to dh 13
This adds goodies like failing on inexistent files. It's well
supported in Debian Bullseye, PureOS Byzantium and newer versions.
2021-12-05 19:35:19 +01:00
Guido Günther 0c4d3e5450 debian: Install translations 2021-12-05 18:14:39 +01:00
Guido Günther 9d97fa4d29 pin: Use less margin
Introduce a common.css so styles don't deviate unintentionally between
the different themes. Way more stuff can be moved here once this is in.
2021-12-05 17:34:40 +01:00
Guido Günther 321dadba34 renderer: Set style class based on input purpose 2021-12-05 17:34:40 +01:00
Guido Günther 4903f3d1a0 layout: Keep content purpose around
This allows to add proper CSS style classes based on that
2021-12-05 17:31:12 +01:00
Guido Günther 3513bf8de4 Use special pin keyboard
This helps muscle memory
2021-12-05 17:31:12 +01:00
Guido Günther 5f40c31cab layout: Drop trailing whitespace
Otherwise sane editor setup is basically impossible since
we want to trim that by default (and not manually like here)
in the future.
2021-12-05 17:31:12 +01:00
Guido Günther f922374e27 gitlab-ci: Add PKG_ONLY
This allows for easy package builds saving resources.
2021-12-04 17:58:14 +01:00
Guido Günther 3306907008 Revert "gresources: Drop popup.ui"
This reverts commit fdcef4aa88.
2021-12-04 13:12:48 +01:00
Guido Günther fdcef4aa88 gresources: Drop popup.ui
It's unused in the code atm
2021-12-03 19:00:22 +01:00
Guido Günther 74f55b30ef po: Add German translation 2021-12-03 18:59:52 +01:00
Guido Günther d696c9624e Reuse the unused popover ui file for i18n
Since the current code uses a handcoded approach for popup construction
reuse the unused ui file to keep translatable strings. Since UI file in
popover.rs runs through glib the strings get translated.

Future rework will allow us to get rid of this duplication but since the
ui file went unnoticed for so long who could possibly complain.

Closes: #315
2021-12-03 18:58:24 +01:00
Guido Günther 964f1da305 Initialize gettext 2021-12-03 18:58:12 +01:00
Guido Günther 73e7908709 langs: Don't use empty translation file
This breaks the translation

Closes: #313
2021-12-03 16:57:26 +01:00
Guido Günther 06b17907bf imservice: Invoke eekboard_context_service_set_hint_purpose unconditionally
Since eekboard_context_service_set_hint_purpose() checks if the
hint or purpose changed this doesn't cause unwanted layout reloads.

Closes: #311
2021-12-02 09:19:50 +01:00
Guido Günther 912fe0b7b7 entry: Add a random text entry field
This allows to test the case where the purpose changes but nothing else.
2021-12-02 09:19:50 +01:00
Guido Günther 937638c582 entry: Set a margin on the grids
Less heavy on the eyes.
2021-12-01 14:40:55 +01:00
Guido Günther 894191d3a0 entry: Use a scrolled window
This ensures all entries are reachable even with the OSK unfolded
2021-12-01 14:40:55 +01:00
Guido Günther 0d7fab2ef4 Honor input-purpose PIN
Otherwise e.g. SIM pins are requested with a numerical keyboard.
2021-11-30 13:29:11 +01:00
Guido Günther dd708456ff Move style-check to separate script
This avoids having to copy out of .gitlab-ci.yml before submitting an MR
to do a style check.

Could become a meson target at some point.
2021-11-23 18:16:36 +01:00
Guido Günther dce848b3ce README: Document SQUEEKBOARD_DEBUG environment variable 2021-11-23 12:46:16 +01:00
Guido Günther 03aa04d6d8 main: Add debug flag to show GTK inspector
Since squeekboard doesn't ever get input focus and hence we can't
activate it via keybinding add a debug flag.
2021-11-23 11:36:37 +01:00
Guido Günther 379a09e0d6 renderer: Disconnect theme change signal handler
The renderer does not stick around so we need to disconnect the signal
handler on "dispose". Since the renderer is not a GObject track the
signal id manually instead of using `g_signal_connect_object ()`.

Fixes 1995285 ("eek-renderer: Honor theme changes")
2021-11-22 17:56:15 +01:00
Guido Günther 1c875cda6c main: Add debug flag to always show squeekboard on start
This makes debugging way fun since there's no need to mess
with the running DBus, gsettings or anything else.
2021-11-22 17:10:43 +01:00
Guido Günther a6d766e650 renderer: Use g_debug ()
Switching to `g_debug ()` after adding `G_LOG_DOMAIN` got lost
in a rebase.
2021-11-22 17:08:17 +01:00
Guido Günther 74977ec88f gtk-keyboard: Don't set variable to NULL twice in a row 2021-11-22 17:08:15 +01:00
Guido Günther c3337b05b6 main: Use dark theme when run in a Phosh session
Downstreams either don't restyle making us divert from the designs or
use squeekboard-restyled adding extra complexity.

Closes: #242
2021-11-22 11:02:10 +01:00
Guido Günther 28a48635b3 main: Avoid two error variables in the same function
This also fixes a superfluous additional `NULL` assignment right
after declaring error and setting it to NULL.
2021-11-22 11:01:06 +01:00
Guido Günther 475761ec73 main: Drop broken support G_BUS_TYPE_SYSTEM
Fliping opt_system would still use opt_session so drop that.
While at that remove G_BUS_TYPE_NONE which can't be set by
an option either.
2021-11-22 11:01:06 +01:00
Guido Günther 1995285b65 eek-renderer: Honor theme changes
Reload style providers so e.g. switching to HighContrast is handled.

Closes: #296
2021-11-22 10:27:43 +01:00
Guido Günther 73515b5fe1 eek-renderer: Fix indentation 2021-11-22 10:27:43 +01:00
Guido Günther 8cfce093e7 eek-renderer: Add log domain
This allows to only log renderer messages similar to what
other projects to. `G_MESSAGES_DEBUG=all` is unaffected.
2021-11-22 10:27:43 +01:00
Guido Günther 359376041d main: Honor --help and -h
Use a GOptionContext to display command line options (that are already
handled by e.g. gtk_init anyway).

This turns:

  $ squeekboard -h
  Debug: Tried file "/home/agx/.local/share/squeekboard/keyboards/us.yaml", but it's missing: No such file or directory (os error 2)
  Info: Loaded layout Resource: us
  Debug: Tried file "/home/agx/.local/share/squeekboard/keyboards/us.yaml", but it's missing: No such file or directory (os error 2)
  Info: Loaded layout Resource: us

** (squeekboard:8015): WARNING **: 19:03:13.125: DBus unavailable, unclear how to continue. Is Squeekboard already running?

into the more useful

  $ squeekboard -h
  Usage:
    squeekboard [OPTION…] - A on screen keyboard

  Help Options:
    -h, --help               Show help options
    --help-all               Show all help options
    --help-gtk               Show GTK+ Options

  Application Options:
    --display=DISPLAY        X display to use

...
2021-11-21 20:45:58 +01:00
Guido Günther 6e1faafa2f main: Remove trailing whitespace 2021-11-21 20:37:51 +01:00
Guido Günther aa0e7d1c19 data: Fix build with meson 0.60.0
Drop the possitional argument since we otherwise see

  data/meson.build:15:5: ERROR: Function does not take positional arguments.
2021-11-06 11:13:07 +01:00
Guido Günther d629542ce2 Merge branch 'update-entry-py-filepath' into 'master'
Update entry.py file path in readme

See merge request World/Phosh/squeekboard!470
2021-08-11 07:08:38 +00:00
Guido Günther 39c004ecfc Merge branch 'ci' into 'master'
Fix gitlab CI

See merge request World/Phosh/squeekboard!471
2021-08-07 09:15:53 +00:00
Guido Günther 31f8e4e49f gitlab-ci: Drop build for outdated distributions 2021-08-07 10:56:39 +02:00
Guido Günther 2c662e0630 gitlab-ci: Adjust CI tags
This makes it build on GNOME infra
2021-08-07 10:54:27 +02:00
Guido Günther 40bf3ca5de server-main: Properly register to gnome-session
So far squeeboard only did half of the registration failing
to respond to the signals sent by the session.

This causes problems e.g. when exiting the session since the it
thinks the client hangs or is busy.

Closes: #274
2021-03-25 18:11:39 +01:00
Guido Günther e800a88893 server-main: Add quit()
This allows to exit the mainloop e.g. when signalled from gnome-session
or by a signal.
2021-03-25 16:03:57 +01:00
Guido Günther 4ccf11f4fd server-context-service: Don't show keyboard when disabled
If the corresponding a11y settings is disbaled don't unfold
the keyboad at all.

This helps e.g. running the same session on laptops or when
an external keyboard is attached.

Closes: #222
2020-09-14 11:34:17 +02:00
Guido Günther 8bdfb69dc1 server-context-service: swap signal arguments
This makes sure 'self' comes first. While at that fix the
function signatures and use ServerContextService directly
and add type checks so it's easy to notice when we messed up.
2020-09-11 20:44:36 +02:00
Guido Günther 1e6bcef055 server-context-service: Consistenty name self argument 'self'
It's confusing when the object a method acts on is sometimes called
context and sometimes called state. So name it 'self' as we do
in other projects.
2020-09-11 20:05:49 +02:00
Guido Günther 07faf906d8 eekboard-context-service: Drop private struct
There's no point having it for a final type and it only
makes the code harder to read.
2020-09-11 18:55:35 +02:00
Guido Günther 53f30324f0 eekboard-context-service: Drop the GObject boilerplate
The previous commits show it's not really a derivable type
so make it a finale one.
2020-09-11 18:55:35 +02:00
Guido Günther 3e212ddab4 eekboard-context-service: Drop docstrings for inexistent functions 2020-09-11 18:46:22 +02:00
Guido Günther 966990ad65 eekboad-context-service: Drop signal class handler
It's unused
2020-09-11 18:45:33 +02:00
Guido Günther a8b81172fc build: Enable '-Wformat-nonliteral' 2020-09-11 18:40:56 +02:00
Guido Günther 97f51591b3 ServerContextService: Drop GObject boilerplate
G_DECLARE_FINAL_TYPE does this for us
2020-09-11 18:16:30 +02:00
Guido Günther 6756fb423a build: Enable -Wredundant-declarations 2020-09-11 18:16:30 +02:00
Guido Günther eb7673d2c2 treewide: Drop redundant declarations 2020-09-11 18:16:30 +02:00
Guido Günther 24b6a04903 build: Enable -Wmaybe-uninitialized
No changes needed.
2020-09-11 18:16:30 +02:00
Guido Günther b197cd839e build: Enable -Wformat-security
No changes needed.
2020-09-11 18:16:30 +02:00
Guido Günther 857a916402 build: Enable -Winit-self
No changes needed
2020-09-11 18:16:30 +02:00
Guido Günther ca68fc2040 eek-keyboard: Don't ignore return value
This fixes

../eek/eek-keyboard.c:71:5: warning: ignoring return value of ‘getrandom’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   71 |     getrandom(r, 6, GRND_NONBLOCK);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17/32] Compiling C object 'src/25a6634@@libsqueekboard@sta/.._eek_eek-renderer.c.o'
2020-09-11 18:16:30 +02:00
Guido Günther bd661bd4f4 gitlab-ci: Enable --Werror
This makes sure we don't have more warnings creeping in
2020-09-11 18:16:30 +02:00
Guido Günther 4228192bda layout: Fix warning
This fixes

warning: unnecessary parentheses around block return value
   --> /var/scratch/librem5/squeekboard/src/layout.rs:110:13
    |
110 | /             (point.x > self.x && point.x < self.x + self.width
111 | |                 && point.y > self.y && point.y < self.y + self.height)
    | |______________________________________________________________________^
    |
    = note: `#[warn(unused_parens)]` on by default
2020-09-11 18:16:30 +02:00
Guido Günther 0f7ab99da3 keyboard: Fix warning
warning: unused variable: `name`
   --> /var/scratch/librem5/squeekboard/src/keyboard.rs:195:10
    |
195 |     for (name, state) in keystates.iter() {
    |          ^^^^ help: consider prefixing with an underscore: `_name`
2020-09-11 18:16:30 +02:00
Guido Günther e15d317488 eekboard-context-service: Drop EEKBOARD_CONTEXT_SERVICE_GET_PRIVATE
This fixes the

../eekboard/eekboard-context-service.c:244:13: warning: Deprecated pre-processor symbol, replace with
  244 |     self->priv = EEKBOARD_CONTEXT_SERVICE_GET_PRIVATE(self);

warning and makes us use more modern GObject style
2020-09-11 18:16:30 +02:00
Guido Günther 93e9ce0dd7 build: Enable '-Wunused-function' 2020-09-11 18:16:13 +02:00
Guido Günther 9d63b505ec build: Enable '-Wold-style-definition' '-Wstrict-prototypes' 2020-09-11 18:15:44 +02:00
Guido Günther 306c11f1fd treewide: Use new style function definitions 2020-09-11 18:15:02 +02:00
Guido Günther c26feed8b2 eekboard-context-service: Return early if schema is unavailable
This also fixes a leak of GSettingsSchema.
2020-09-11 18:14:19 +02:00
Guido Günther ec58442724 eek-gtk-keyboard: Trigger event feedback on button press
Use libfeedback to trigger feedback for the button press event.

Closes: #166
2020-06-04 12:13:58 +02:00
Guido Günther e89c9b02a0 debian: Build-depend on libfeedback
Will be needed in the following commits.
2020-06-02 10:10:43 +02:00
Guido Günther 1b2725250b eek: Drop libcanberra usage 2020-06-02 10:10:43 +02:00
Guido Günther e285ecce93 d/rules: Only remove Cargo.lock if it exists
This allows to invoke the build target twice in a row
2020-06-02 10:10:43 +02:00
Guido Günther d816cc261a desktop file: Use NoDisplay=true
There's no point in having the keyboard in the list of installed
applications and it has no icon either.
2019-08-28 15:41:38 +02:00
Guido Günther 79dce7c4c3 gitlab-ci: Run tests under xvfb
We create widgets so need a display.
2019-07-23 10:20:07 +02:00
Guido Günther aff71e0e33 debian: Add test run dependencies
We need xvfb to run the tests since this involves creating GTK
widgets.
2019-07-23 10:20:02 +02:00
Guido Günther 633d69baca Drop HAVE_CLUTTER_GTK
We don't use it.
2019-07-17 19:50:53 +02:00