Compare commits

..

14 Commits

Author SHA1 Message Date
a4e58aef6a Release 1.20.0 "PID controller"
New translations:
- Greek
- Croatian

New layouts:
- US Dvorak terminal

Improvements:
- forcing the panel to hide now takes effect immediately
- Squeekboard icon will present itself when other applications need to show it
2022-09-03 14:28:35 +00:00
fd3ade8ac4 build: Update Cargo.lock.newer 2022-09-03 14:17:52 +00:00
dcz
decf547e41 Merge branch 'desktop' into 'master'
data: Set an icon in the desktop file and indicate haptic feedback

See merge request World/Phosh/squeekboard!566
2022-09-02 11:45:27 +00:00
870c023414 data: Indicate that Squeekboard provides haptic feedback
This makes the feedback used configurable in Phosh Mobile Settings.
2022-09-02 10:29:32 +00:00
0d3b569553 data: Set an icon in the desktop file
This helps apps like GNOME Usage or Phosh Mobile Settings show something
nice on the Squeekboard's entry.
2022-09-02 10:29:32 +00:00
dcz
c7344aeb47 Merge branch 'fixb' into 'master'
build: Use Cargo.lock included with the repo by default

See merge request World/Phosh/squeekboard!567
2022-09-01 17:35:41 +00:00
51f8217646 build: Use Cargo.lock included with the repo by default
This should fix some future problems with dependencies getting updated in a way that's unsupported by the build tools targeted by Squeekboard.
2022-09-01 17:04:25 +00:00
dcz
a3f6349376 Merge branch 'hide' into 'master'
state: Don't animate when force-hidden

See merge request World/Phosh/squeekboard!565
2022-09-01 13:52:01 +00:00
bf18f05f74 Add Croatian translation 2022-08-31 07:49:50 +00:00
9f4c5e2264 Add Greek translation 2022-07-11 20:12:35 +00:00
dcz
dffec166fd Merge branch '119' into 'master'
Release 1.19.0 "Chirality"

See merge request World/Phosh/squeekboard!560
2022-07-11 06:54:51 +00:00
dcz
3207977d7a Merge branch 'master' into 'master'
added US Dvorak Terminal

See merge request World/Phosh/squeekboard!564
2022-07-11 06:54:09 +00:00
0339a4a50f added US Dvorak Terminal 2022-07-11 06:54:09 +00:00
4ae78b89c6 state: Don't animate when force-hidden 2022-07-08 05:34:36 +00:00
15 changed files with 1711 additions and 10 deletions

1142
Cargo.lock.newer Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,200 @@
---
outlines:
default: { width: 35.33, height: 46 }
action: { width: 59, height: 46 }
altline: { width: 52.67, height: 46 }
wide: { width: 59, height: 46 }
spaceline: { width: 140, height: 46 }
special: { width: 44, height: 46 }
small: { width: 59, height: 22 }
views:
base:
- "Ctrl Alt ↑ ↓ ← →"
- "Shift_L p y f g c r l BackSpace"
- "a o e u i d h t n s"
- ", q j k x b m w v z"
- "show_numbers preferences space show_actions Return"
upper:
- "Ctrl Alt PgUp PgDn Home End"
- "Shift_L p y f g c r l BackSpace"
- "a o e u i d h t n s"
- ", q j k x b m w v z"
- "show_numbers preferences space show_actions Return"
numbers:
- "Ctrl Alt ↑ ↓ ← →"
- "show_symbols , \" ' colon ; ! ? BackSpace"
- "* # $ / & - _ + ( )"
- "1 2 3 4 5 6 7 8 9 0"
- "show_letters preferences space period Return"
symbols:
- "Ctrl Alt ↑ ↓ ← →"
- "show_numbers_from_symbols \\ % < > = [ ] BackSpace"
- "© ® £ € ¥ ^ ° @ { }"
- "~ ` | · √ π τ ÷ × ¶"
- "show_letters preferences space period Return"
actions:
- "Ctrl Alt PgUp PgDn Home End"
- "F1 F2 F3 F4 F5 F6"
- "F7 F8 F9 F10 F11 F12"
- "Esc Tab Pause Insert Up Del"
- "show_letters Menu Break Left Down Right"
buttons:
Shift_L:
action:
locking:
lock_view: "upper"
unlock_view: "base"
outline: "altline"
icon: "key-shift"
BackSpace:
outline: "altline"
icon: "edit-clear-symbolic"
action: erase
preferences:
action: "show_prefs"
outline: "special"
icon: "keyboard-mode-symbolic"
show_numbers:
action:
set_view: "numbers"
outline: "wide"
label: "123"
show_numbers_from_symbols:
action:
set_view: "numbers"
outline: "altline"
label: "123"
show_letters:
action:
set_view: "base"
outline: "wide"
label: "ABC"
show_symbols:
action:
set_view: "symbols"
outline: "altline"
label: "τ=\\"
show_actions:
action:
set_view: "actions"
outline: "altline"
label: ">_"
period:
outline: "altline"
text: "."
space:
outline: "spaceline"
text: " "
Return:
outline: "wide"
icon: "key-enter"
keysym: "Return"
colon:
text: ":"
F1:
outline: "action"
keysym: "F1"
F2:
outline: "action"
keysym: "F2"
F3:
outline: "action"
keysym: "F3"
F4:
outline: "action"
keysym: "F4"
F5:
outline: "action"
keysym: "F5"
F6:
outline: "action"
keysym: "F6"
F7:
outline: "action"
keysym: "F7"
F8:
outline: "action"
keysym: "F8"
F9:
outline: "action"
keysym: "F9"
F10:
outline: "action"
keysym: "F10"
F11:
outline: "action"
keysym: "F11"
F12:
outline: "action"
keysym: "F12"
Esc:
outline: "action"
keysym: "Escape"
Tab:
outline: "action"
keysym: "Tab"
Del:
outline: "action"
keysym: "Delete"
Insert:
outline: "action"
keysym: "Insert"
Menu:
outline: "action"
keysym: "Menu"
Pause:
outline: "action"
keysym: "Pause"
Break:
outline: "action"
keysym: "Break"
Home:
outline: "small"
keysym: "Home"
End:
outline: "small"
keysym: "End"
PgUp:
outline: "small"
keysym: "Page_Up"
PgDn:
outline: "small"
keysym: "Page_Down"
"↑":
outline: "small"
keysym: "Up"
"↓":
outline: "small"
keysym: "Down"
"←":
outline: "small"
keysym: "Left"
"→":
outline: "small"
keysym: "Right"
Up:
label: "↑"
outline: "action"
keysym: "Up"
Left:
label: "←"
outline: "action"
keysym: "Left"
Down:
label: "↓"
outline: "action"
keysym: "Down"
Right:
label: "→"
outline: "action"
keysym: "Right"
Ctrl:
modifier: "Control"
outline: "small"
label: "Ctrl"
Alt:
modifier: "Alt"
outline: "small"
label: "Alt"

View File

@ -0,0 +1,208 @@
---
outlines:
default: { width: 54, height: 37 }
action: { width: 90, height: 37 }
altline: { width: 81, height: 37 }
wide: { width: 90, height: 37 }
spaceline: { width: 225, height: 37 }
special: { width: 54, height: 37 }
small: { width: 67.4, height: 22 }
views:
base:
- "EscSmall TabSmall Ctrl Alt ↑ ↓ ← →"
- "Shift_L p y f g c r l BackSpace"
- "a o e u i d h t n s"
- ", q j k x b m w v z"
- "show_numbers preferences space show_actions Return"
upper:
- "EscSmall TabSmall Ctrl Alt PgUp PgDn Home End"
- "Shift_L p y f g c r l BackSpace"
- "a o e u i d h t n s"
- ", q j k x b m w v z"
- "show_numbers preferences space show_actions Return"
numbers:
- "EscSmall TabSmall Ctrl Alt ↑ ↓ ← →"
- "show_symbols , \" ' colon ; ! ? BackSpace"
- "* # $ / & - _ + ( )"
- "1 2 3 4 5 6 7 8 9 0"
- "show_letters preferences space period Return"
symbols:
- "EscSmall TabSmall Ctrl Alt ↑ ↓ ← →"
- "show_numbers_from_symbols \\ % < > = [ ] BackSpace"
- "© ® £ € ¥ ^ ° @ { }"
- "~ ` | · √ π τ ÷ × ¶"
- "show_letters preferences space period Return"
actions:
- "EscSmall TabSmall Ctrl Alt PgUp PgDn Home End"
- "F1 F2 F3 F4 F5 F6"
- "F7 F8 F9 F10 F11 F12"
- "Esc Tab Pause Insert Up Del"
- "show_letters Menu Break Left Down Right"
buttons:
Shift_L:
action:
locking:
lock_view: "upper"
unlock_view: "base"
outline: "altline"
icon: "key-shift"
BackSpace:
outline: "altline"
icon: "edit-clear-symbolic"
action: erase
preferences:
action: "show_prefs"
outline: "special"
icon: "keyboard-mode-symbolic"
show_numbers:
action:
set_view: "numbers"
outline: "wide"
label: "123"
show_numbers_from_symbols:
action:
set_view: "numbers"
outline: "altline"
label: "123"
show_letters:
action:
set_view: "base"
outline: "wide"
label: "ABC"
show_symbols:
action:
set_view: "symbols"
outline: "altline"
label: "τ=\\"
show_actions:
action:
set_view: "actions"
outline: "altline"
label: ">_"
period:
outline: "altline"
text: "."
space:
outline: "spaceline"
text: " "
Return:
outline: "wide"
icon: "key-enter"
keysym: "Return"
colon:
text: ":"
F1:
outline: "action"
keysym: "F1"
F2:
outline: "action"
keysym: "F2"
F3:
outline: "action"
keysym: "F3"
F4:
outline: "action"
keysym: "F4"
F5:
outline: "action"
keysym: "F5"
F6:
outline: "action"
keysym: "F6"
F7:
outline: "action"
keysym: "F7"
F8:
outline: "action"
keysym: "F8"
F9:
outline: "action"
keysym: "F9"
F10:
outline: "action"
keysym: "F10"
F11:
outline: "action"
keysym: "F11"
F12:
outline: "action"
keysym: "F12"
Esc:
outline: "action"
keysym: "Escape"
EscSmall:
outline: "small"
keysym: "Escape"
label: "Esc"
Tab:
outline: "action"
keysym: "Tab"
TabSmall:
outline: "small"
keysym: "Tab"
label: "Tab"
Del:
outline: "action"
keysym: "Delete"
Insert:
outline: "action"
keysym: "Insert"
Menu:
outline: "action"
keysym: "Menu"
Pause:
outline: "action"
keysym: "Pause"
Break:
outline: "action"
keysym: "Break"
Home:
outline: "small"
keysym: "Home"
End:
outline: "small"
keysym: "End"
PgUp:
outline: "small"
keysym: "Page_Up"
PgDn:
outline: "small"
keysym: "Page_Down"
"↑":
outline: "small"
keysym: "Up"
"↓":
outline: "small"
keysym: "Down"
"←":
outline: "small"
keysym: "Left"
"→":
outline: "small"
keysym: "Right"
Up:
label: "↑"
outline: "action"
keysym: "Up"
Left:
label: "←"
outline: "action"
keysym: "Left"
Down:
label: "↓"
outline: "action"
keysym: "Down"
Right:
label: "→"
outline: "action"
keysym: "Right"
Ctrl:
modifier: "Control"
outline: "small"
label: "Ctrl"
Alt:
modifier: "Alt"
outline: "small"
label: "Alt"

View File

@ -3,7 +3,9 @@ Name=Squeekboard
GenericName=On Screen Keyboard GenericName=On Screen Keyboard
Comment=An on screen virtual keyboard Comment=An on screen virtual keyboard
Exec=@bindir@/squeekboard Exec=@bindir@/squeekboard
Icon=input-keyboard-symbolic
Terminal=false Terminal=false
Type=Application Type=Application
NoDisplay=true NoDisplay=true
Categories=GTK;Utility; Categories=GTK;Utility;
X-Phosh-UsesFeedback=true

22
debian/changelog vendored
View File

@ -1,3 +1,25 @@
squeekboard (1.20.0-1) experimental; urgency=medium
[ Dorota Czaplejewicz ]
* state: Don't animate when force-hidden
* build: Use Cargo.lock included with the repo by default
* build: Update Cargo.lock.newer
[ Darren R ]
* added US Dvorak Terminal
[ Efstathios Iosifidis ]
* Add Greek translation
[ Goran Vidović ]
* Add Croatian translation
[ Sebastian Krzyszkowiak ]
* data: Set an icon in the desktop file
* data: Indicate that Squeekboard provides haptic feedback
-- Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> Sat, 03 Sep 2022 14:21:57 +0000
squeekboard (1.19.0-1) experimental; urgency=medium squeekboard (1.19.0-1) experimental; urgency=medium
[ Dorota Czaplejewicz ] [ Dorota Czaplejewicz ]

View File

@ -1,7 +1,7 @@
project( project(
'squeekboard', 'squeekboard',
'c', 'rust', 'c', 'rust',
version: '1.18.0', version: '1.20.0',
license: 'GPLv3', license: 'GPLv3',
meson_version: '>=0.51.0', meson_version: '>=0.51.0',
default_options: [ default_options: [
@ -101,10 +101,15 @@ cargo_patch = []
if get_option('newer') == true if get_option('newer') == true
cargo_build_flags += ['--features', 'glib_v0_14'] cargo_build_flags += ['--features', 'glib_v0_14']
cargo_deps = files('Cargo.deps.newer') cargo_deps = files('Cargo.deps.newer')
cargo_lock = files('Cargo.lock.newer')
else else
cargo_deps = files('Cargo.deps') cargo_deps = files('Cargo.deps')
cargo_lock = []
if get_option('online') == true if get_option('online') == true
cargo_patch = [files('Cargo.deps.online')] cargo_patch = [files('Cargo.deps.online')]
if get_option('reset_lock') == true
cargo_lock = files('Cargo.lock')
endif
endif endif
endif endif
@ -116,6 +121,17 @@ cargo_toml = custom_target(
capture: true, capture: true,
) )
cargo_deps = [cargo_toml]
if get_option('online') == true and get_option('reset_lock') == true
cargo_lock = custom_target(
'Cargo.lock',
output: 'Cargo.lock',
command: [cat, cargo_lock],
capture: true,
)
cargo_deps += [cargo_lock]
endif
dep_cargo = find_program('cargo') dep_cargo = find_program('cargo')
cargo_script = find_program('cargo.sh') cargo_script = find_program('cargo.sh')
cargo_build = find_program('cargo_build.py') cargo_build = find_program('cargo_build.py')

View File

@ -15,6 +15,10 @@ option('online',
type: 'boolean', value: true, type: 'boolean', value: true,
description: 'Pull packages from the internet while building, as opposed to a local regstry.') description: 'Pull packages from the internet while building, as opposed to a local regstry.')
option('reset_lock',
type: 'boolean', value: true,
description: 'Resets Cargo.lock to the one found in the source repo. Does not affect builds with online == false.')
option('strict', option('strict',
type: 'boolean', value: true, type: 'boolean', value: true,
description: 'Turn more warnings into errors') description: 'Turn more warnings into errors')

View File

@ -1,5 +1,6 @@
ca ca
de de
el
es es
fa fa
fi fi
@ -7,6 +8,7 @@ fr
fur fur
gl gl
he he
hr
hu hu
it it
ka ka

46
po/el.po Normal file
View File

@ -0,0 +1,46 @@
# Greek translation for squeekboard.
# Copyright (C) 2022 squeekboard's COPYRIGHT HOLDER
# This file is distributed under the same license as the squeekboard package.
# Efstathios Iosifidis <eiosifidis@gnome.org>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: squeekboard master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Phosh/squeekboard/"
"issues\n"
"POT-Creation-Date: 2022-07-11 06:54+0000\n"
"PO-Revision-Date: 2022-07-11 23:11+0300\n"
"Last-Translator: Efstathios Iosifidis <eiosifidis@gnome.org>\n"
"Language-Team: Greek <gnome-el-list@gnome.org>\n"
"Language: el\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.1\n"
#. translators: This is a emmoji keyboard layout
#: data/popover.ui:6
msgid "Emoji"
msgstr "Emoji"
#. translators: This is a terminal keyboard layout
#: data/popover.ui:12
msgid "Terminal"
msgstr "Τερματικό"
#: data/popover.ui:18
msgid "Keyboard Settings"
msgstr "Ρυθμίσεις πληκτρολογίου"
#: data/sm.puri.Squeekboard.desktop.in.in:3
msgid "Squeekboard"
msgstr "Squeekboard"
#: data/sm.puri.Squeekboard.desktop.in.in:4
msgid "On Screen Keyboard"
msgstr "Πληκτρολόγιο οθόνης"
#: data/sm.puri.Squeekboard.desktop.in.in:5
msgid "An on screen virtual keyboard"
msgstr "Εικονικό πληκτρολόγιο οθόνης"

47
po/hr.po Normal file
View File

@ -0,0 +1,47 @@
# Croatian translation for squeekboard.
# Copyright (C) 2022 squeekboard's COPYRIGHT HOLDER
# This file is distributed under the same license as the squeekboard package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: squeekboard master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Phosh/squeekboard/"
"issues\n"
"POT-Creation-Date: 2022-07-11 20:12+0000\n"
"PO-Revision-Date: 2022-08-31 09:49+0200\n"
"Last-Translator: \n"
"Language-Team: Croatian <hr@li.org>\n"
"Language: hr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 "
"&& n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 3.1.1\n"
#. translators: This is a emmoji keyboard layout
#: data/popover.ui:6
msgid "Emoji"
msgstr "Smajli"
#. translators: This is a terminal keyboard layout
#: data/popover.ui:12
msgid "Terminal"
msgstr "Terminal"
#: data/popover.ui:18
msgid "Keyboard Settings"
msgstr "Postavke tipkovnice"
#: data/sm.puri.Squeekboard.desktop.in.in:3
msgid "Squeekboard"
msgstr "Squeekboard"
#: data/sm.puri.Squeekboard.desktop.in.in:4
msgid "On Screen Keyboard"
msgstr "Zaslonska tipkovnica"
#: data/sm.puri.Squeekboard.desktop.in.in:5
msgid "An on screen virtual keyboard"
msgstr "Zaslonska virtualna tipkovnica"

View File

@ -63,7 +63,7 @@ rslibs = custom_target(
install: false, install: false,
console: true, console: true,
command: [cargo_build] + ['@OUTPUT@', '--lib'] + cargo_build_flags, command: [cargo_build] + ['@OUTPUT@', '--lib'] + cargo_build_flags,
depends: cargo_toml, depends: cargo_deps,
) )
build_rstests = custom_target( build_rstests = custom_target(
@ -78,7 +78,7 @@ build_rstests = custom_target(
install: false, install: false,
console: true, console: true,
command: [cargo_script, 'test', '--no-run'] + cargo_build_flags, command: [cargo_script, 'test', '--no-run'] + cargo_build_flags,
depends: [rslibs, cargo_toml], # no point building tests if the code itself fails depends: [rslibs, cargo_deps], # no point building tests if the code itself fails
) )
test( test(
@ -88,7 +88,7 @@ test(
env: ['SOURCE_DIR=' + meson.source_root()], env: ['SOURCE_DIR=' + meson.source_root()],
# this is a whole Carg-based test suite, let it run for a while # this is a whole Carg-based test suite, let it run for a while
timeout: 900, timeout: 900,
depends: [build_rstests, cargo_toml], depends: [build_rstests, cargo_deps],
) )
libsqueekboard = static_library('libsqueekboard', libsqueekboard = static_library('libsqueekboard',

View File

@ -110,6 +110,8 @@ static KEYBOARDS: &[(&'static str, &'static str)] = &[
("terminal/us", include_str!("../data/keyboards/terminal/us.yaml")), ("terminal/us", include_str!("../data/keyboards/terminal/us.yaml")),
("terminal/us_wide", include_str!("../data/keyboards/terminal/us_wide.yaml")), ("terminal/us_wide", include_str!("../data/keyboards/terminal/us_wide.yaml")),
("terminal/us+dvorak", include_str!("../data/keyboards/terminal/us+dvorak.yaml")),
("terminal/us+dvorak_wide", include_str!("../data/keyboards/terminal/us+dvorak_wide.yaml")),
// Overlays // Overlays
("emoji/us", include_str!("../data/keyboards/emoji/us.yaml")), ("emoji/us", include_str!("../data/keyboards/emoji/us.yaml")),

View File

@ -271,8 +271,9 @@ impl Application {
app app
}, },
Event::InputMethod(new_im) => match (self.im.clone(), new_im) { Event::InputMethod(new_im)
(InputMethod::Active(_old), InputMethod::Active(new_im)) => match (self.im.clone(), new_im, self.visibility_override) {
(InputMethod::Active(_old), InputMethod::Active(new_im), _)
=> Self { => Self {
im: InputMethod::Active(new_im), im: InputMethod::Active(new_im),
..self ..self
@ -280,13 +281,20 @@ impl Application {
// For changes in active state, remove user's visibility override. // For changes in active state, remove user's visibility override.
// Both cases spelled out explicitly, rather than by the wildcard, // Both cases spelled out explicitly, rather than by the wildcard,
// to not lose the notion that it's the opposition that matters // to not lose the notion that it's the opposition that matters
(InputMethod::InactiveSince(_old), InputMethod::Active(new_im)) (InputMethod::InactiveSince(_old), InputMethod::Active(new_im), _)
=> Self { => Self {
im: InputMethod::Active(new_im), im: InputMethod::Active(new_im),
visibility_override: visibility::State::NotForced, visibility_override: visibility::State::NotForced,
..self ..self
}, },
(InputMethod::Active(_old), InputMethod::InactiveSince(since)) // Avoid triggering animation when old state was forced hidden
(InputMethod::Active(_old), InputMethod::InactiveSince(_since), visibility::State::ForcedHidden)
=> Self {
im: InputMethod::InactiveSince(now - animation::HIDING_TIMEOUT * 2),
visibility_override: visibility::State::NotForced,
..self
},
(InputMethod::Active(_old), InputMethod::InactiveSince(since), _)
=> Self { => Self {
im: InputMethod::InactiveSince(since), im: InputMethod::InactiveSince(since),
visibility_override: visibility::State::NotForced, visibility_override: visibility::State::NotForced,
@ -294,7 +302,7 @@ impl Application {
}, },
// This is a weird case, there's no need to update an inactive state. // This is a weird case, there's no need to update an inactive state.
// But it's not wrong, just superfluous. // But it's not wrong, just superfluous.
(InputMethod::InactiveSince(old), InputMethod::InactiveSince(_new)) (InputMethod::InactiveSince(old), InputMethod::InactiveSince(_new), _)
=> Self { => Self {
// New is going to be newer than old, so it can be ignored. // New is going to be newer than old, so it can be ignored.
// It was already inactive at that moment. // It was already inactive at that moment.

View File

@ -100,6 +100,8 @@ foreach layout : [
'terminal/fr_wide', 'terminal/fr_wide',
'terminal/us', 'terminal/us',
'terminal/us_wide', 'terminal/us_wide',
'terminal/us+dvorak',
'terminal/us+dvorak_wide',
# Block: Not languages. # Block: Not languages.
'emoji/us', 'emoji/us',

View File

@ -16,5 +16,5 @@ test_layout = custom_target('squeekboard-test-layout',
+ cargo_build_flags, + cargo_build_flags,
install: true, install: true,
install_dir: bindir, install_dir: bindir,
depends: cargo_toml, depends: cargo_deps,
) )