Compare commits

...

56 Commits

Author SHA1 Message Date
1d8a86d172 Merge branch 'update-link' into 'master'
squeekboard.doap: update descriptions and links

See merge request World/Phosh/squeekboard!618
2024-03-09 10:41:10 +00:00
fa972253be squeekboard.doap: update descriptions and links
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/618>
2024-03-09 10:25:14 +00:00
3899c042b8 Merge branch 'add-new-emoji-layout' into 'master'
Add new emoji-layout

Closes #381

See merge request World/Phosh/squeekboard!613
2024-03-09 09:01:07 +00:00
492c4ba948 Add new emoji-layout
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/613>
2024-03-09 09:27:13 +01:00
e3d08fff88 Merge branch 'change-controlcenter-to-settings' into 'master'
src/popover.c: Change 'ControlCenter' to 'Settings'

Closes #335

See merge request World/Phosh/squeekboard!616
2024-03-08 15:47:20 +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
bdcf23750d Merge branch 'release-1.23.0' into 'master'
Release 1.23.0

See merge request World/Phosh/squeekboard!615
2024-03-08 12:04:59 +00:00
00b894993c Release 1.23.0
New or updated translations:
- Belarusian
- Haitian Creole

New layouts:
- French Canadian (QWERTY + accented letters)
- German terminal-layout
- Spanish terminal-layout

Changes:
- Fixed Persian and Swiss layouts
- Fixed various small style-issues in many layouts
- Improved the US-terminal-layout

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/615>
2024-03-08 11:36:43 +01:00
4fed8c5b1e Update dependencies
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/615>
2024-03-08 11:05:46 +01:00
ab37c2a7f2 Merge branch 'improve-readability-of-layout-files' into 'master'
Improve readability of layout-files

See merge request World/Phosh/squeekboard!610
2024-03-08 09:19:05 +00:00
79d21dde5e data/keyboards/fr*.yaml: Move default to the top
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/610>
2024-03-08 09:31:39 +01:00
08493ed094 data/keyboards/*.yaml: Indent outline-definitions equally
For better readability.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/610>
2024-03-08 09:31:33 +01:00
b4b88f6a98 data/keyboards/*.yaml: Remove unused custom outlines
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/610>
2024-03-08 09:24:58 +01:00
23b9687988 Merge branch 'add-wide-emoji-layout' into 'master'
Add wide emoji-layout

See merge request World/Phosh/squeekboard!614
2024-03-08 01:39:07 +00: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
015cae5c63 Merge branch 'styling-fixes' into 'master'
Fix some small styling-issues

See merge request World/Phosh/squeekboard!611
2024-03-08 01:10:49 +00:00
f237807522 data/keyboards/*.yaml: Change "abc" to "ABC"
Currently this differs for the same view-change-keys in different layouts.

When the text is "abc", the size of the key's text changes
when toggling between "123" and "abc"; with the text "ABC",
the size remains about the same.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/611>
2024-03-08 00:04:16 +00:00
069d64ac3e data/keyboards/de*.yaml: Change äÄ-label to Ää
A big letter after a small letter looks incorrect on a keyboard,
because that is not normal German grammar and a keyboard is for
inputting text.
The key is also on the left side of the layout,
which makes äÄ not fit the visual flow.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/611>
2024-03-08 00:04:16 +00:00
cd1e269a9d data/keyboards/email/us.yaml: fix styling of @-key
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/611>
2024-03-08 00:04:16 +00:00
bf45d4b71b Merge branch 'add-german-terminal-keyboard-layout' into 'master'
Add German terminal-keyboard-layout

See merge request World/Phosh/squeekboard!609
2024-03-08 00:01:40 +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
805d276248 Merge branch 'fix-ch-layout' into 'master'
Fix Swiss layouts

See merge request World/Phosh/squeekboard!612
2024-03-07 23:19:29 +00:00
2ad2b09344 Fix Swiss layouts
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/612>
2024-03-07 20:23:57 +00:00
b22cda800f Merge branch 'improve-layouts-of-us-terminal-keyboards' into 'master'
Improve the layouts of the us-terminal-keyboards

Closes #249 and #358

See merge request World/Phosh/squeekboard!601
2024-03-07 20:15:14 +00:00
d299ba070d us.yaml and us_wide.yaml: Change the outline of the period-key
It was styled as a special key before, even though it has no special
function.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/601>
2024-03-07 18:23:14 +01:00
cf2e6151bb us.yaml and us_wide.yaml: Change outline of 123- and ABC-keys to altline
The altline-outline is primarily meant to be used for keys
that change the view, which is what these keys do.

Also changing it on the actions-view would make the layout not align
well anymore, as it is currently not possible to have 2 different
sizes with the altline-styling.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/601>
2024-03-07 18:23:14 +01:00
6f978aee0b Improve layouts of us-terminal-keyboards
This change makes entering paths, URLs, options and pipes easier.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/601>
2024-03-07 18:23:13 +01:00
7117d1fe20 Merge branch 'update-documentation' into 'master'
doc/tutorial.md: Remove outdated information about translations

See merge request World/Phosh/squeekboard!608
2024-03-07 16:55:35 +00:00
eb28a8523f doc/tutorial.md: Remove outdated information about translations
The custom translation-system and the tests for it have been removed.

Relevant commits:
10ea276052
0a417fe4a2

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/608>
2024-03-02 19:22:02 +01:00
dcz
d36febefc3 Merge branch 'update-documentation' into 'master'
Update links in the documentation

See merge request World/Phosh/squeekboard!607
2024-03-02 17:47:26 +00:00
c7ced7de2b Update links in the documentation 2024-03-02 17:31:12 +01: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
dcz
23c5fc1fb8 Merge branch 'keyboard-layout-es' into 'master'
Add Spanish terminal-keyboard-layouts

See merge request World/Phosh/squeekboard!606
2024-03-02 16:09:57 +00:00
dcz
a60b9d019e Merge branch 'Persian' into 'master'
Fix Persian layout

See merge request World/Phosh/squeekboard!605
2024-03-02 16:09:14 +00:00
b791919075 Improve Spanish terminal-keyboard-layouts 2024-02-28 16:03:14 +01:00
d801d45812 Add Spanish terminal-keyboard-layouts 2024-02-27 11:24:23 +01:00
6145f9b652 Fix Persian layout 2024-02-23 03:49:25 +03:30
8d96803e91 add french canadian layout (QWERTY + accented letters) 2024-01-29 21:41:09 +01:00
30904afb4b Update Haitian Creole translation 2024-01-11 22:58:26 +00:00
271640f391 Update Haitian Creole translation 2024-01-11 22:37:29 +00:00
76eadca47a Add Haitian Creole translation 2024-01-11 05:05:29 +00:00
a25c083f92 Add Belarusian translation 2023-09-14 11:45:44 +00:00
dcz
4c8dbf9fe6 Merge branch '022' into 'master'
Release 1.22.0 "Superposition"

See merge request World/Phosh/squeekboard!596
2023-04-02 17:10:49 +00:00
1fac218c70 Release 1.22.0 "Superposition"
New or updated translations:
- Basque

Changes:
- fixed panel sizing when scaling
- fixed panel sizing when rotating
- fixed Dvorak terminal layout
2023-04-01 13:50:31 +00:00
01bde740bb Update deps 2023-04-01 13:45:25 +00: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
dcz
fe39632303 Merge branch 'dbg' into 'master'
cleanup: Remove debug prints

See merge request World/Phosh/squeekboard!593
2023-03-22 16:21:03 +00:00
dcz
e94619883b Merge branch 'master' into 'master'
layout: fix uppercase dvorak terminal mode

Closes #367

See merge request World/Phosh/squeekboard!595
2023-03-20 09:14:13 +00:00
af09304835 layout: fix uppercase dvorak terminal mode
These were left lowercase for some reason.
2023-03-20 08:58:13 +00:00
bd96f4c0c2 panel: Fix sizing on output reconfiguration 2023-03-15 15:44:55 +00:00
83fda9d38a tests: Make panel manager modifications pure
This makes testing possible. Test which prompted this is included.
2023-03-15 15:44:55 +00:00
8c89b4dc2c cleanup: Remove debug prints 2023-03-15 12:53:22 +00:00
dcz
b17716a427 Merge branch 'size' into 'master'
state: Make size independent of scaling factor

See merge request World/Phosh/squeekboard!592
2023-03-14 14:01:49 +00:00
367d8dd5c7 state: Make size independent of scaling factor 2023-03-14 12:16:15 +00:00
97371b8dfb Add Basque translation 2023-03-06 20:35:18 +00:00
dcz
6f66edf8a1 Merge branch 'rel' into 'master'
Release 1.21.0

See merge request World/Phosh/squeekboard!591
2023-02-26 09:13:19 +00:00
99 changed files with 5676 additions and 614 deletions

79
Cargo.lock generated
View File

@ -42,9 +42,9 @@ checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
[[package]]
name = "byteorder"
version = "1.4.3"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "cairo-rs"
@ -73,9 +73,9 @@ dependencies = [
[[package]]
name = "cc"
version = "1.0.79"
version = "1.0.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
[[package]]
name = "cfg-if"
@ -108,7 +108,7 @@ checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 1.0.109",
]
[[package]]
@ -129,7 +129,7 @@ checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 1.0.109",
]
[[package]]
@ -325,9 +325,9 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
[[package]]
name = "indexmap"
version = "1.9.2"
version = "1.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
dependencies = [
"autocfg",
"hashbrown",
@ -350,9 +350,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
version = "0.2.139"
version = "0.2.153"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
[[package]]
name = "linked-hash-map"
@ -418,9 +418,9 @@ dependencies = [
[[package]]
name = "pkg-config"
version = "0.3.26"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
[[package]]
name = "proc-macro-crate"
@ -433,18 +433,18 @@ dependencies = [
[[package]]
name = "proc-macro2"
version = "1.0.51"
version = "1.0.78"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6"
checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.23"
version = "1.0.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
dependencies = [
"proc-macro2",
]
@ -474,9 +474,9 @@ dependencies = [
[[package]]
name = "ryu"
version = "1.0.12"
version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
[[package]]
name = "scoped-tls"
@ -486,33 +486,33 @@ checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
[[package]]
name = "serde"
version = "1.0.152"
version = "1.0.197"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb"
checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.152"
version = "1.0.197"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e"
checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.52",
]
[[package]]
name = "serde_repr"
version = "0.1.10"
version = "0.1.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a5ec9fa74a20ebbe5d9ac23dac1fc96ba0ecfe9f50f2843b52e537b10fbcb4e"
checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.52",
]
[[package]]
@ -529,9 +529,20 @@ dependencies = [
[[package]]
name = "syn"
version = "1.0.107"
version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "syn"
version = "2.0.52"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
dependencies = [
"proc-macro2",
"quote",
@ -558,15 +569,15 @@ dependencies = [
[[package]]
name = "unicode-ident"
version = "1.0.6"
version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
[[package]]
name = "unicode-width"
version = "0.1.10"
version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
[[package]]
name = "void"
@ -643,7 +654,7 @@ dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote",
"syn",
"syn 1.0.109",
]
[[package]]
@ -665,5 +676,5 @@ checksum = "d68726e8c12757384a8d1485080527e263dea67d91f19e97cd71b9292f22d7c5"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 1.0.109",
]

28
NEWS.md
View File

@ -1,3 +1,31 @@
1.23.0
------------------
New or updated translations:
- Belarusian
- Haitian Creole
New layouts:
- French Canadian (QWERTY + accented letters)
- German terminal-layout
- Spanish terminal-layout
Changes:
- Fixed Persian and Swiss layouts
- Fixed various small style-issues in many layouts
- Improved the US-terminal-layout
1.22.0 "Superposition"
------------------
New or updated translations:
- Basque
Changes:
- fixed panel sizing when scaling
- fixed panel sizing when rotating
- fixed Dvorak terminal layout
1.21.0 "Expected value"
------------------

5
data/icons/zwnj.svg Normal file
View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.1">
<path d="M 3,0.5 V 1 c 2.5,0 4.5,1 4.5,2 v 12.5 h 1 V 3 c 0,-1 2,-2 4.5,-2 V 0.5 Z" />
</svg>

After

Width:  |  Height:  |  Size: 231 B

View File

@ -63,7 +63,7 @@ buttons:
action:
set_view: "base"
outline: "wide"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -63,7 +63,7 @@ buttons:
action:
set_view: "base"
outline: "wide"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -59,7 +59,7 @@ buttons:
action:
set_view: "base"
outline: "wide"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -59,7 +59,7 @@ buttons:
action:
set_view: "base"
outline: "wide"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

93
data/keyboards/ca.yaml Normal file
View File

@ -0,0 +1,93 @@
---
outlines:
default: { width: 35.33, height: 52 }
altline: { width: 52.67, height: 52 }
wide: { width: 62, height: 52 }
spaceline: { width: 142, height: 52 }
special: { width: 44, height: 52 }
views:
base:
- "q w e r t y u i o p"
- "a s d f g h j k l"
- "Shift_L z x c v b n m BackSpace"
- "show_numbers preferences space show_eschars Return"
upper:
- "Q W E R T Y U I O P"
- "A S D F G H J K L"
- "Shift_L Z X C V B N M BackSpace"
- "show_numbers preferences space show_eschars Return"
numbers:
- "1 2 3 4 5 6 7 8 9 0"
- "@ # $ % & - _ + ( )"
- "show_symbols , \" ' colon ; ! ? BackSpace"
- "show_letters preferences space show_eschars Return"
symbols:
- "~ ` | · √ π τ ÷ × ¶"
- "© ® £ € ¥ ^ ° * { }"
- "show_numbers_from_symbols \\ / < > = [ ] BackSpace"
- "show_letters preferences space show_eschars Return"
eschars:
- "à â ç é è ê ë î ï ô"
- "ù û À Â Ç É È Ê Î Ô"
- "show_numbers_from_symbols ' ! ? . , BackSpace"
- "show_letters preferences space show_eschars Return"
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_eschars:
action:
locking:
lock_view: "eschars"
unlock_view: "base"
outline: "altline"
label: "âÂ"
period:
outline: "special"
text: "."
space:
outline: "spaceline"
text: " "
Return:
outline: "wide"
icon: "key-enter"
keysym: "Return"
colon:
text: ":"

View File

@ -55,7 +55,7 @@ buttons:
action:
set_view: "base"
outline: "altline"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -32,7 +32,7 @@ views:
- "à â ç é è ê î ô ù û"
- "À Â Ç É È Ê Î Ô Ù Û"
- "show_numbers æ œ ä ë ï ö ü BackSpace"
- "show_letters_from_accents preferences ñ Ñ space ° ß Return"
- "show_letters show_eschars preferences ñ Ñ space ° ß Return"
buttons:
Shift_L:
@ -59,7 +59,7 @@ buttons:
action:
set_view: "base"
outline: "altline"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"
@ -71,14 +71,7 @@ buttons:
lock_view: "eschars"
unlock_view: "base"
outline: "altline"
label: "âÂ"
show_letters_from_accents:
action:
locking:
lock_view: "eschars"
unlock_view: "base"
outline: "altline"
label: "âÂ"
label: â"
space:
outline: "spaceline"
label: " "

View File

@ -3,38 +3,39 @@
---
outlines:
default: { width: 35.33, height: 52 }
altline: { width: 48, height: 52 }
wide: { width: 59, height: 52 }
spaceline: { width: 70, height: 52 }
special: { width: 28, height: 52 }
default: { width: 35.33, height: 58 }
doublewidth: { width: 70.66, height: 58 }
altline: { width: 52.8, height: 58 }
wide: { width: 64.9, height: 58 }
spaceline: { width: 116.67, height: 58 }
special: { width: 30.41, height: 58 }
views:
base:
- "q w e r t z u i o p ü"
- "a s d f g h j k l ö ä"
- "Shift_L y x c v b n m BackSpace"
- "show_numbers show_eschars preferences ' space , . Return"
- "Shift_L y x c v b n m ' BackSpace"
- "show_numbers show_eschars preferences Space , . Return"
upper:
- "Q W E R T Z U I O P Ü"
- "A S D F G H J K L Ö Ä"
- "Shift_L Y X C V B N M BackSpace"
- "show_numbers show_eschars preferences \" space , . Return"
- "Shift_L Y X C V B N M \" BackSpace"
- "show_numbers show_eschars preferences Space , . Return"
numbers:
- "1 2 3 4 5 6 7 8 9 0"
- "@ * + - = ( ) ~ < > ? !"
- "show_symbols # & / \\ √ ; : BackSpace"
- "show_letters show_eschars preferences _ space , . Return"
- "1 2 3 4 5 6 7 8 9 0 ^"
- "* + - = ( ) ~ < > ! ?"
- "show_symbols _ # & / \\ √ ; : BackSpace"
- "show_letters show_eschars preferences Space , . Return"
symbols:
- "€ $ £ ¥ % | § µ [ ]"
- "© ® § ` ^ { } · ¡ ¿"
- "© ® § ` { } @ · ¡ ¿"
- "show_numbers « » ÷ × “ ” „ BackSpace"
- "show_letters show_eschars preferences - space , . Return"
- "show_letters show_eschars preferences Space , . Return"
eschars:
- "à â ç é è ê î ô ù û"
- "À Â Ç É È Ê Î Ô Ù Û"
- "show_numbers æ œ ä ë ï ö ü BackSpace"
- "show_letters_from_accents preferences ñ Ñ space ° ß Return"
- "à â ç é è ê î ô ù û ñ"
- "À Â Ç É È Ê Î Ô Ù Û Ñ"
- "show_numbers æ œ ä ë ï ö ü ß BackSpace"
- "show_letters show_eschars preferences Space ° Return"
buttons:
Shift_L:
@ -47,7 +48,7 @@ buttons:
BackSpace:
outline: "altline"
icon: "edit-clear-symbolic"
action: erase
action: "erase"
preferences:
action: "show_prefs"
outline: "special"
@ -61,7 +62,7 @@ buttons:
action:
set_view: "base"
outline: "altline"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"
@ -73,15 +74,8 @@ buttons:
lock_view: "eschars"
unlock_view: "base"
outline: "altline"
label: "âÂ"
show_letters_from_accents:
action:
locking:
lock_view: "eschars"
unlock_view: "base"
outline: "altline"
label: "âÂ"
space:
label: â"
Space:
outline: "spaceline"
label: " "
text: " "
@ -91,3 +85,11 @@ buttons:
keysym: "Return"
"\"":
keysym: "quotedbl"
°:
outline: "doublewidth"
"|":
outline: "doublewidth"
"}":
outline: "doublewidth"
×:
outline: "doublewidth"

View File

@ -4,37 +4,40 @@
---
outlines:
default: { width: 48, height: 42 }
altline: { width: 81, height: 42 }
doublewidth: { width: 96, height: 42 }
narrow: { width: 33, height: 42 }
large: { width: 66, height: 42 }
altline: { width: 72, height: 42 }
wide: { width: 108, height: 42 }
spaceline: { width: 216, height: 42 }
spaceline: { width: 162, height: 42 }
special: { width: 48, height: 42 }
views:
base:
- "q w e r t z u i o p ü"
- "a s d f g h j k l ö ä"
- "Shift_L y x c v b n m BackSpace"
- "show_numbers show_eschars preferences ' space , . Return"
- "Shift_L y x c v b n m ' BackSpace"
- "show_numbers show_eschars preferences Space , . Return"
upper:
- "Q W E R T Z U I O P Ü"
- "A S D F G H J K L Ö Ä"
- "Shift_L Y X C V B N M BackSpace"
- "show_numbers show_eschars preferences \" space , . Return"
- "Shift_L Y X C V B N M \" BackSpace"
- "show_numbers show_eschars preferences Space , . Return"
numbers:
- "1 2 3 4 5 6 7 8 9 0"
- "@ * + - = ( ) ~ < > ? !"
- "show_symbols # & / \\ √ ; : BackSpace"
- "show_letters show_eschars preferences _ space , . Return"
- "1 2 3 4 5 6 7 8 9 0 ^"
- "* + - = ( ) ~ < > ! ?"
- "show_symbols _ # & / \\ √ ; : BackSpace"
- "show_letters show_eschars preferences Space , . Return"
symbols:
- "€ $ £ ¥ % | § µ [ ]"
- "© ® § ` ^ { } · ¡ ¿"
- "© ® § ` { } @ · ¡ ¿"
- "show_numbers « » ÷ × “ ” „ BackSpace"
- "show_letters show_eschars preferences - space , . Return"
- "show_letters show_eschars preferences Space , . Return"
eschars:
- "à â ç é è ê î ô ù û"
- "À Â Ç É È Ê Î Ô Ù Û"
- "show_numbers æ œ ä ë ï ö ü BackSpace"
- "show_letters_from_accents preferences ñ Ñ space ° ß Return"
- "à â ç é è ê î ô ù û ñ"
- "À Â Ç É È Ê Î Ô Ù Û Ñ"
- "show_numbers æ œ ä ë ï ö ü ß BackSpace"
- "show_letters show_eschars preferences Space ° Return"
buttons:
Shift_L:
@ -61,7 +64,7 @@ buttons:
action:
set_view: "base"
outline: "altline"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"
@ -73,15 +76,8 @@ buttons:
lock_view: "eschars"
unlock_view: "base"
outline: "altline"
label: "äÄ"
show_letters_from_accents:
action:
locking:
lock_view: "eschars"
unlock_view: "base"
outline: "altline"
label: "âÂ"
space:
label: "Ââ"
Space:
outline: "spaceline"
label: " "
text: " "
@ -91,3 +87,15 @@ buttons:
keysym: "Return"
"\"":
keysym: "quotedbl"
°:
outline: "large"
".":
outline: "narrow"
",":
outline: "narrow"
"|":
outline: "doublewidth"
"}":
outline: "doublewidth"
×:
outline: "doublewidth"

View File

@ -75,7 +75,7 @@ buttons:
action:
set_view: "base"
outline: "wide"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -75,7 +75,7 @@ buttons:
action:
set_view: "base"
outline: "wide"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -75,7 +75,7 @@ buttons:
action:
set_view: "base"
outline: "wide"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -75,7 +75,7 @@ buttons:
action:
set_view: "base"
outline: "wide"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -59,7 +59,7 @@ buttons:
action:
set_view: "base"
outline: "altline"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"
@ -71,7 +71,7 @@ buttons:
lock_view: "eschars"
unlock_view: "base"
outline: "altline"
label: "äÄ"
label: ä"
space:
outline: "spaceline"
label: " "

View File

@ -59,7 +59,7 @@ buttons:
action:
set_view: "base"
outline: "altline"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"
@ -71,7 +71,7 @@ buttons:
lock_view: "eschars"
unlock_view: "base"
outline: "altline"
label: "äÄ"
label: ä"
space:
outline: "spaceline"
text: " "

View File

@ -3,7 +3,6 @@ outlines:
default: { width: 32, height: 52 }
altline: { width: 48.39024, height: 52 }
wide: { width: 62, height: 52 }
outline7: { width: 88.97561, height: 52 }
spaceline: { width: 150.5853, height: 52 }
views:

View File

@ -5,6 +5,7 @@ outlines:
wide: { width: 62, height: 52 }
spaceline: { width: 106.67, height: 52 }
special: { width: 44, height: 52 }
large: { width: 44, height: 52 }
views:
base:
@ -41,10 +42,10 @@ buttons:
icon: "edit-clear-symbolic"
action: erase
at:
outline: "special"
outline: "large"
text: "@"
preferences:
action: show_prefs
action: "show_prefs"
outline: "special"
icon: "keyboard-mode-symbolic"
show_numbers:
@ -68,7 +69,7 @@ buttons:
outline: "altline"
label: "*/="
period:
outline: "special"
outline: "large"
text: "."
space:
outline: "spaceline"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -58,7 +58,7 @@ buttons:
action:
set_view: "base"
outline: "altline"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -58,7 +58,7 @@ buttons:
action:
set_view: "base"
outline: "altline"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -58,7 +58,7 @@ buttons:
action:
set_view: "base"
outline: "altline"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -3,7 +3,6 @@ outlines:
default: { width: 32, height: 52 }
altline: { width: 48.39024, height: 52 }
wide: { width: 62, height: 52 }
outline7: { width: 88.97561, height: 52 }
spaceline: { width: 150.5853, height: 52 }
views:

View File

@ -1,7 +1,7 @@
---
outlines:
small: { width: 50, height: 30 }
default: { width: 35.33, height: 52 }
small: { width: 50, height: 30 }
altline: { width: 35.33, height: 52 }
wide: { width: 50, height: 52 }
spaceline: { width: 150, height: 52 }
@ -180,7 +180,7 @@ buttons:
action:
set_view: "base"
outline: "wide"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -63,7 +63,7 @@ buttons:
action:
set_view: "base"
outline: "wide"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -63,7 +63,7 @@ buttons:
action:
set_view: "base"
outline: "wide"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -63,7 +63,7 @@ buttons:
action:
set_view: "base"
outline: "wide"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -59,7 +59,7 @@ buttons:
action:
set_view: "base"
outline: "altline"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -59,7 +59,7 @@ buttons:
action:
set_view: "base"
outline: "altline"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -8,22 +8,22 @@ outlines:
views:
base:
- "ض ص ق ف غ ع ه خ ح ج"
- "ش س ی ب ل ا ت ن م ک"
- "Shift_L ظ ط ز ر ذ د و BackSpace"
- "show_numbers preferences space period Return"
- "ض ص ث ق ف غ ع ه خ ح ج"
- "ش س ی ب ل ا ت ن م ک گ"
- "Shift_L ظ ط ز ر ذ د پ و BackSpace"
- "show_numbers preferences space zwnj period Return"
upper:
- "پ { } [ ] ّ َ ِ ُ چ"
- "ؤ‌ ئ ي إ أ آ ة » « گ"
- "Shift_L ك ٓ ژ ء > < ؟ BackSpace"
- "show_numbers preferences space period Return"
- " ْ ٌ ٍ ً ُ ِ َ ّ # @ چ"
- "_ ئ ي إ أ آ ة » « : ؛"
- "Shift_L ك ٓ ژ ٔ ء > < ؟ BackSpace"
- "show_numbers preferences space ! ، Return"
numbers:
- "۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۰"
- "@ # ﷼ % & - _ + ( )"
- "show_symbols , \" ' colon ؛ ! ? BackSpace"
- "۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۰ |"
- "… ٬ ٫ ﷼ ٪ ، * ) ( ـ"
- "show_symbols + - × ÷ = ^ % / BackSpace"
- "show_letters preferences space period Return"
symbols:
- "~ ` | · π τ ÷ × ¶"
- "& ` | · • % π τ ÷ × ¶"
- "© ® £ € ¥ ^ ° * { }"
- "show_numbers_from_symbols \\ / < > = [ ] BackSpace"
- "show_letters preferences space period Return"
@ -48,17 +48,17 @@ buttons:
action:
set_view: "numbers"
outline: "wide"
label: "123"
label: "۱۲۳"
show_numbers_from_symbols:
action:
set_view: "numbers"
outline: "altline"
label: "123"
label: "۱۲۳"
show_letters:
action:
set_view: "base"
outline: "wide"
label: "ABC"
label: "ا‌ب‌پ"
show_symbols:
action:
set_view: "symbols"
@ -74,5 +74,8 @@ buttons:
outline: "wide"
icon: "key-enter"
keysym: "Return"
zwnj:
icon: "zwnj"
text: ""
colon:
text: ":"

View File

@ -8,25 +8,25 @@ outlines:
views:
base:
- "ض ص ق ف غ ع ه خ ح ج"
- "ش س ی ب ل ا ت ن م ک"
- "Shift_L ظ ط ز ر ذ د و BackSpace"
- "show_numbers preferences space period Return"
- "ض ص ث ق ف غ ع ه خ ح ج چ \\"
- "ش س ی ب ل ا ت ن م ک گ"
- "Shift_L ظ ط ز ر ذ د پ و ، / BackSpace"
- "show_numbers preferences space zwnj ؟ ! period Return"
upper:
- "پ { } [ ] ّ َ ِ ُ چ"
- ئ ي إ أ آ ة » « گ"
- "Shift_L ك ٓ ژ ء > < ؟ BackSpace"
- "show_numbers preferences space period Return"
- " ْ ٌ ٍ ً ُ ِ َ ّ ] [ @ # _"
- "ؤ ئ ي إ أ آ ة » « : ؛"
- "Shift_L ك ٓ ژ ٰ ٔ ء > < ؟ BackSpace"
- "show_numbers preferences space ، ؟ ! period Return"
numbers:
- "۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۰"
- "@ # ﷼ % & - _ + ( )"
- "show_symbols , \" ' colon ؛ ! ? BackSpace"
- "show_letters preferences space period Return"
- "۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۰ | ="
- "… ٬ ٫ ﷼ ٪ ، * ) ( _"
- "show_symbols + - × ÷ = ^ % / BackSpace"
- "show_letters preferences space ، ؟ ! period Return"
symbols:
- "~ ` | · π τ ÷ × ¶"
- "& ` | · • % π τ ÷ × ¶"
- "© ® £ € ¥ ^ ° * { }"
- "show_numbers_from_symbols \\ / < > = [ ] BackSpace"
- "show_letters preferences space period Return"
- "show_letters preferences space ، ؟ ! period Return"
buttons:
Shift_L:
@ -48,23 +48,23 @@ buttons:
action:
set_view: "numbers"
outline: "wide"
label: "123"
label: "۱۲۳"
show_numbers_from_symbols:
action:
set_view: "numbers"
outline: "altline"
label: "123"
label: "۱۲۳"
show_letters:
action:
set_view: "base"
outline: "wide"
label: "ABC"
label: "ا‌ب‌پ"
show_symbols:
action:
set_view: "symbols"
outline: "altline"
label: "*/="
".":
period:
outline: "special"
text: "."
space:
@ -74,5 +74,8 @@ buttons:
outline: "wide"
icon: "key-enter"
keysym: "Return"
zwnj:
icon: "zwnj"
text: ""
colon:
text: ":"

View File

@ -65,7 +65,7 @@ buttons:
action:
set_view: "base"
outline: "altline"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -65,7 +65,7 @@ buttons:
action:
set_view: "base"
outline: "altline"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -63,7 +63,7 @@ buttons:
action:
set_view: "base"
outline: "wide"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -63,7 +63,7 @@ buttons:
action:
set_view: "base"
outline: "wide"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -0,0 +1,255 @@
---
outlines:
default: { width: 35.33, height: 46 }
halfwidth: { width: 17.665, height: 46 }
narrow: { width: 26.335, height: 46 }
special: { width: 35.33, height: 46 }
altline: { width: 52.67, height: 46 }
large: { width: 52.67, height: 46 }
action: { width: 59, height: 46 }
wide: { width: 59, height: 46 }
spaceline: { width: 100.96, height: 46 }
small: { width: 50.471, height: 22 }
views:
base:
- "TabSmall Ctrl Alt ↑ ↓ ← →"
- "q w e r t z u i o p"
- "PeriodSmall a s d f g h j k l MinusSmall"
- "Shift_L y x c v b n m BackSpace"
- "show_numbers show_eschars preferences space show_actions Return"
upper:
- "TabSmall Ctrl Alt PgUp PgDn Home End"
- "Q W E R T Z U I O P"
- "SlashSmall A S D F G H J K L PipeSmall"
- "Shift_L Y X C V B N M BackSpace"
- "show_numbers show_eschars preferences space show_actions Return"
numbers:
- "TabSmall Ctrl Alt ↑ ↓ ← →"
- "1 2 3 4 5 6 7 8 9 0"
- "\\ * # $ / & - + ( ) _"
- "show_symbols , \" ' colon ; ! ? BackSpace"
- "show_letters show_eschars preferences space period Return"
symbols:
- "TabSmall Ctrl Alt ↑ ↓ ← →"
- "~ ` · √ π τ ÷ × ¶ @"
- "© ® £ € ¥ ^ ° { }"
- "show_numbers_from_symbols % | < > = [ ] BackSpace"
- "show_letters show_eschars preferences space period Return"
eschars:
- "TabSmall Ctrl Alt ↑ ↓ ← →"
- "ä è é ö ü Ä È É Ö Ü"
- "à â ê î ô À Â È Î Ô"
- "show_numbers « » ç Ç æ œ ß BackSpace"
- "show_letters show_eschars preferences space „ “ Return"
actions:
- "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_actions 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: "altline"
label: "123"
show_numbers_from_symbols:
action:
set_view: "numbers"
outline: "altline"
label: "123"
show_letters:
action:
set_view: "base"
outline: "altline"
label: "ABC"
show_letters_actions:
action:
set_view: "base"
outline: "wide"
label: "ABC"
show_symbols:
action:
set_view: "symbols"
outline: "altline"
label: "τ=\\"
show_eschars:
action:
locking:
lock_view: "eschars"
unlock_view: "base"
outline: "altline"
label: "Ää"
show_actions:
action:
set_view: "actions"
outline: "altline"
label: ">_"
period:
outline: "large"
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"
TabSmall:
outline: "small"
keysym: "Tab"
label: "Tab"
Del:
outline: "action"
keysym: "Delete"
label: "Entf"
Insert:
outline: "action"
keysym: "Insert"
label: "Einfg"
Menu:
outline: "action"
keysym: "Menu"
label: "Menü"
Pause:
outline: "action"
keysym: "Pause"
Break:
outline: "action"
keysym: "Break"
label: "Untbr"
Home:
outline: "small"
keysym: "Home"
label: "Pos1"
End:
outline: "small"
keysym: "End"
label: "Ende"
PgUp:
outline: "small"
keysym: "Page_Up"
label: "Bild↑"
PgDn:
outline: "small"
keysym: "Page_Down"
label: "Bild↓"
"↑":
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: "Strg"
Alt:
modifier: "Alt"
outline: "small"
label: "Alt"
MinusSmall:
outline: "halfwidth"
text: "-"
SlashSmall:
outline: "halfwidth"
text: "/"
PipeSmall:
outline: "halfwidth"
text: "|"
PeriodSmall:
outline: "halfwidth"
text: "."
"„":
outline: "narrow"
text: "„"
"“":
outline: "narrow"
text: "“"
"\\":
outline: "halfwidth"
_:
outline: "halfwidth"

View File

@ -0,0 +1,259 @@
---
outlines:
default: { width: 54, height: 37 }
halfwidth: { width: 27, height: 37 }
narrow: { width: 40.5, height: 37 }
special: { width: 54, height: 37 }
altline: { width: 81, height: 37 }
large: { width: 81, height: 37 }
action: { width: 90, height: 37 }
wide: { width: 90, height: 37 }
spaceline: { width: 153, height: 37 }
small: { width: 67.4, height: 22 }
views:
base:
- "EscSmall TabSmall Ctrl Alt ↑ ↓ ← →"
- "q w e r t z u i o p"
- "PeriodSmall a s d f g h j k l MinusSmall"
- "Shift_L y x c v b n m BackSpace"
- "show_numbers show_eschars preferences space show_actions Return"
upper:
- "EscSmall TabSmall Ctrl Alt PgUp PgDn Home End"
- "Q W E R T Z U I O P"
- "SlashSmall A S D F G H J K L PipeSmall"
- "Shift_L Y X C V B N M BackSpace"
- "show_numbers show_eschars preferences space show_actions Return"
numbers:
- "EscSmall TabSmall Ctrl Alt ↑ ↓ ← →"
- "1 2 3 4 5 6 7 8 9 0"
- "\\ * # $ / & - + ( ) _"
- "show_symbols , \" ' colon ; ! ? BackSpace"
- "show_letters show_eschars preferences space period Return"
symbols:
- "EscSmall TabSmall Ctrl Alt ↑ ↓ ← →"
- "~ ` · √ π τ ÷ × ¶ @"
- "© ® £ € ¥ ^ ° { }"
- "show_numbers_from_symbols % | < > = [ ] BackSpace"
- "show_letters show_eschars preferences space period Return"
eschars:
- "EscSmall TabSmall Ctrl Alt ↑ ↓ ← →"
- "ä è é ö ü Ä È É Ö Ü"
- "à â ê î ô À Â È Î Ô"
- "show_numbers « » ç Ç æ œ ß BackSpace"
- "show_letters show_eschars preferences space „ “ 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_actions 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: "altline"
label: "123"
show_numbers_from_symbols:
action:
set_view: "numbers"
outline: "altline"
label: "123"
show_letters:
action:
set_view: "base"
outline: "altline"
label: "ABC"
show_letters_actions:
action:
set_view: "base"
outline: "wide"
label: "ABC"
show_symbols:
action:
set_view: "symbols"
outline: "altline"
label: "τ=\\"
show_eschars:
action:
locking:
lock_view: "eschars"
unlock_view: "base"
outline: "altline"
label: "Ää"
show_actions:
action:
set_view: "actions"
outline: "altline"
label: ">_"
period:
outline: "large"
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"
label: "Entf"
Insert:
outline: "action"
keysym: "Insert"
label: "Einfg"
Menu:
outline: "action"
keysym: "Menu"
label: "Menü"
Pause:
outline: "action"
keysym: "Pause"
Break:
outline: "action"
keysym: "Break"
label: "Untbr"
Home:
outline: "small"
keysym: "Home"
label: "Pos1"
End:
outline: "small"
keysym: "End"
label: "Ende"
PgUp:
outline: "small"
keysym: "Page_Up"
label: "Bild↑"
PgDn:
outline: "small"
keysym: "Page_Down"
label: "Bild↓"
"↑":
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: "Strg"
Alt:
modifier: "Alt"
outline: "small"
label: "Alt"
MinusSmall:
outline: "halfwidth"
text: "-"
SlashSmall:
outline: "halfwidth"
text: "/"
PipeSmall:
outline: "halfwidth"
text: "|"
PeriodSmall:
outline: "halfwidth"
text: "."
"„":
outline: "narrow"
text: "„"
"“":
outline: "narrow"
text: "“"
"\\":
outline: "halfwidth"
_:
outline: "halfwidth"

View File

@ -0,0 +1,220 @@
---
outlines:
default: { width: 35.33, height: 46 }
action: { width: 59, height: 46 }
altline: { width: 52.67, height: 46 }
large: { width: 52.67, height: 46 }
wide: { width: 59, height: 46 }
spaceline: { width: 92.29, height: 46 }
special: { width: 44, height: 46 }
small: { width: 50.57, height: 22 }
views:
base:
- "TabSmall Ctrl Alt ↑ ↓ ← →"
- "q w e r t y u i o p"
- "a s d f g h j k l ñ"
- "Shift_L z x c v b n m BackSpace"
- "show_numbers show_eschars preferences space show_actions Return"
upper:
- "TabSmall Ctrl Alt PgUp PgDn Home End"
- "Q W E R T Y U I O P"
- "A S D F G H J K L Ñ"
- "Shift_L Z X C V B N M DelUp"
- "show_numbers show_eschars preferences space show_actions Return"
numbers:
- "TabSmall Ctrl Alt ↑ ↓ ← →"
- "1 2 3 4 5 6 7 8 9 0"
- "* # € / & - _ + ( )"
- "show_symbols , \" ' colon ; ! ? BackSpace"
- "show_letters show_eschars preferences space . Return"
symbols:
- "TabSmall Ctrl Alt ↑ ↓ ← →"
- "~ ` | · √ π τ ÷ × ¶"
- "© ® £ $ ¥ ^ ° @ { }"
- "show_numbers \\ % < > = [ ] BackSpace"
- "show_letters show_eschars preferences space . Return"
eschars:
- "TabSmall Ctrl Alt ↑ ↓ ← →"
- "á é í ó ú Á É Í Ó Ú"
- "à è ì ò ù À È Ì Ò Ù"
- "show_numbers , ü ç ï Ü Ç ï BackSpace"
- "show_letters show_symbols preferences space show_actions Return"
actions:
- "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_actions 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: "altline"
label: "123"
show_letters:
action:
set_view: "base"
outline: "altline"
label: "ABC"
show_letters_actions:
action:
set_view: "base"
outline: "wide"
label: "ABC"
show_symbols:
action:
set_view: "symbols"
outline: "altline"
label: "τ=\\"
show_eschars:
action:
set_view: "eschars"
outline: "altline"
label: "áÁ"
show_actions:
action:
set_view: "actions"
outline: "altline"
label: ">_"
".":
outline: "large"
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"
TabSmall:
outline: "small"
keysym: "Tab"
label: "Tab"
Del:
outline: "action"
keysym: "Delete"
DelUp:
outline: "altline"
keysym: "Delete"
label: "Del"
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,224 @@
---
outlines:
default: { width: 54, height: 37 }
action: { width: 90, height: 37 }
altline: { width: 81, height: 37 }
large: { width: 81, height: 37 }
wide: { width: 90, height: 37 }
spaceline: { width: 153, height: 37 }
special: { width: 54, height: 37 }
small: { width: 67.4, height: 22 }
views:
base:
- "EscSmall TabSmall Ctrl Alt ↑ ↓ ← →"
- "q w e r t y u i o p"
- "a s d f g h j k l ñ"
- "Shift_L z x c v b n m BackSpace"
- "show_numbers show_eschars preferences space show_actions Return"
upper:
- "EscSmall TabSmall Ctrl Alt PgUp PgDn Home End"
- "Q W E R T Y U I O P"
- "A S D F G H J K L Ñ"
- "Shift_L Z X C V B N M DelUp"
- "show_numbers show_eschars preferences space show_actions Return"
numbers:
- "EscSmall TabSmall Ctrl Alt ↑ ↓ ← →"
- "1 2 3 4 5 6 7 8 9 0"
- "* # $ / & - _ + ( )"
- "show_symbols , \" ' colon ; ! ? BackSpace"
- "show_letters show_eschars preferences space . Return"
symbols:
- "EscSmall TabSmall Ctrl Alt ↑ ↓ ← →"
- "~ ` | · √ π τ ÷ × ¶"
- "© ® £ € ¥ ^ ° @ { }"
- "show_numbers \\ % < > = [ ] BackSpace"
- "show_letters show_eschars preferences space . Return"
eschars:
- "EscSmall TabSmall Ctrl Alt ↑ ↓ ← →"
- "á é í ó ú Á É Í Ó Ú"
- "à è ì ò ù À È Ì Ò Ù"
- "show_numbers ´ ü ç ï Ü Ç Ï BackSpace"
- "show_letters show_symbols preferences space show_actions 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_actions 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: "altline"
label: "123"
show_letters:
action:
set_view: "base"
outline: "altline"
label: "ABC"
show_letters_actions:
action:
set_view: "base"
outline: "wide"
label: "ABC"
show_symbols:
action:
set_view: "symbols"
outline: "altline"
label: "τ=\\"
show_eschars:
action:
set_view: "eschars"
outline: "altline"
label: "áÁ"
show_actions:
action:
set_view: "actions"
outline: "altline"
label: ">_"
".":
outline: "large"
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"
DelUp:
outline: "altline"
keysym: "Delete"
label: "Del"
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

@ -197,7 +197,7 @@ buttons:
action:
set_view: "base"
outline: "wide"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -1,8 +1,8 @@
---
outlines:
default: { width: 54, height: 37 }
action: { width: 90, height: 37 }
small: { width: 67.4, height: 22 }
default: { width: 54, height: 37 }
altline: { width: 81, height: 37 }
wide: { width: 100, height: 37 }
spaceline: { width: 110, height: 37 }
@ -201,7 +201,7 @@ buttons:
action:
set_view: "base"
outline: "wide"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -194,7 +194,7 @@ buttons:
action:
set_view: "base"
outline: "wide"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -1,8 +1,8 @@
---
outlines:
default: { width: 54, height: 37 }
action: { width: 90, height: 37 }
small: { width: 67.4, height: 22 }
default: { width: 54, height: 37 }
altline: { width: 81, height: 37 }
wide: { width: 100, height: 37 }
spaceline: { width: 110, height: 37 }
@ -197,7 +197,7 @@ buttons:
action:
set_view: "base"
outline: "wide"
label: "abc"
label: "ABC"
show_symbols:
action:
set_view: "symbols"

View File

@ -6,35 +6,35 @@ outlines:
wide: { width: 59, height: 46 }
spaceline: { width: 140, height: 46 }
special: { width: 44, height: 46 }
small: { width: 59, height: 22 }
small: { width: 50.47, height: 22 }
views:
base:
- "Ctrl Alt ↑ ↓ ← →"
- "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:
- "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"
- "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:
- "Ctrl Alt ↑ ↓ ← →"
- "TabSmall 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 ↑ ↓ ← →"
- "TabSmall Ctrl Alt ↑ ↓ ← →"
- "show_numbers_from_symbols \\ % < > = [ ] BackSpace"
- "© ® £ € ¥ ^ ° @ { }"
- "~ ` | · √ π τ ÷ × ¶"
- "show_letters preferences space period Return"
actions:
- "Ctrl Alt PgUp PgDn Home End"
- "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"
@ -135,6 +135,10 @@ buttons:
Tab:
outline: "action"
keysym: "Tab"
TabSmall:
outline: "small"
keysym: "Tab"
label: "Tab"
Del:
outline: "action"
keysym: "Delete"

View File

@ -17,9 +17,9 @@ views:
- "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"
- "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 ↑ ↓ ← →"

View File

@ -1,44 +1,46 @@
---
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 }
halfwidth: { width: 17.665, height: 46 }
special: { width: 44, height: 46 }
small: { width: 59, height: 22 }
altline: { width: 52.67, height: 46 }
large: { width: 52.67, height: 46 }
action: { width: 59, height: 46 }
wide: { width: 59, height: 46 }
spaceline: { width: 144.96, height: 46 }
small: { width: 50.57, height: 22 }
views:
base:
- "Ctrl Alt ↑ ↓ ← →"
- "TabSmall Ctrl Alt ↑ ↓ ← →"
- "q w e r t y u i o p"
- "a s d f g h j k l"
- "PeriodSmall a s d f g h j k l MinusSmall"
- "Shift_L z x c v b n m BackSpace"
- "show_numbers preferences space show_actions Return"
upper:
- "Ctrl Alt PgUp PgDn Home End"
- "TabSmall Ctrl Alt PgUp PgDn Home End"
- "Q W E R T Y U I O P"
- "A S D F G H J K L"
- "SlashSmall A S D F G H J K L PipeSmall"
- "Shift_L Z X C V B N M BackSpace"
- "show_numbers preferences space show_actions Return"
numbers:
- "Ctrl Alt ↑ ↓ ← →"
- "TabSmall Ctrl Alt ↑ ↓ ← →"
- "1 2 3 4 5 6 7 8 9 0"
- "* # $ / & - _ + ( )"
- "\\ * # $ / & - + ( ) _"
- "show_symbols , \" ' colon ; ! ? BackSpace"
- "show_letters preferences space period Return"
symbols:
- "Ctrl Alt ↑ ↓ ← →"
- "~ ` | · √ π τ ÷ × ¶"
- "© ® £ € ¥ ^ ° @ { }"
- "show_numbers_from_symbols \\ % < > = [ ] BackSpace"
- "TabSmall Ctrl Alt ↑ ↓ ← →"
- "~ ` · √ π τ ÷ × @"
- "© ® £ € ¥ ^ ° { }"
- "show_numbers_from_symbols % | < > = [ ] BackSpace"
- "show_letters preferences space period Return"
actions:
- "Ctrl Alt PgUp PgDn Home End"
- "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"
- "show_letters_actions Menu Break Left Down Right"
buttons:
Shift_L:
@ -59,7 +61,7 @@ buttons:
show_numbers:
action:
set_view: "numbers"
outline: "wide"
outline: "altline"
label: "123"
show_numbers_from_symbols:
action:
@ -67,6 +69,11 @@ buttons:
outline: "altline"
label: "123"
show_letters:
action:
set_view: "base"
outline: "altline"
label: "ABC"
show_letters_actions:
action:
set_view: "base"
outline: "wide"
@ -82,7 +89,7 @@ buttons:
outline: "altline"
label: ">_"
period:
outline: "altline"
outline: "large"
text: "."
space:
outline: "spaceline"
@ -135,6 +142,10 @@ buttons:
Tab:
outline: "action"
keysym: "Tab"
TabSmall:
outline: "small"
keysym: "Tab"
label: "Tab"
Del:
outline: "action"
keysym: "Delete"
@ -198,3 +209,19 @@ buttons:
modifier: "Alt"
outline: "small"
label: "Alt"
MinusSmall:
outline: "halfwidth"
text: "-"
SlashSmall:
outline: "halfwidth"
text: "/"
PipeSmall:
outline: "halfwidth"
text: "|"
PeriodSmall:
outline: "halfwidth"
text: "."
"\\":
outline: "halfwidth"
_:
outline: "halfwidth"

View File

@ -1,44 +1,46 @@
---
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 }
halfwidth: { width: 27, height: 37 }
special: { width: 54, height: 37 }
altline: { width: 81, height: 37 }
large: { width: 81, height: 37 }
action: { width: 90, height: 37 }
wide: { width: 90, height: 37 }
spaceline: { width: 234, height: 37 }
small: { width: 67.4, height: 22 }
views:
base:
- "EscSmall TabSmall Ctrl Alt ↑ ↓ ← →"
- "q w e r t y u i o p"
- "a s d f g h j k l"
- "PeriodSmall a s d f g h j k l MinusSmall"
- "Shift_L z x c v b n m BackSpace"
- "show_numbers preferences space show_actions Return"
upper:
- "EscSmall TabSmall Ctrl Alt PgUp PgDn Home End"
- "Q W E R T Y U I O P"
- "A S D F G H J K L"
- "SlashSmall A S D F G H J K L PipeSmall"
- "Shift_L Z X C V B N M BackSpace"
- "show_numbers preferences space show_actions Return"
numbers:
- "EscSmall TabSmall Ctrl Alt ↑ ↓ ← →"
- "1 2 3 4 5 6 7 8 9 0"
- "* # $ / & - _ + ( )"
- "\\ * # $ / & - + ( ) _"
- "show_symbols , \" ' colon ; ! ? BackSpace"
- "show_letters preferences space period Return"
symbols:
- "EscSmall TabSmall Ctrl Alt ↑ ↓ ← →"
- "~ ` | · √ π τ ÷ × ¶"
- "© ® £ € ¥ ^ ° @ { }"
- "show_numbers_from_symbols \\ % < > = [ ] BackSpace"
- "~ ` · √ π τ ÷ × @"
- "© ® £ € ¥ ^ ° { }"
- "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"
- "show_letters_actions Menu Break Left Down Right"
buttons:
Shift_L:
@ -59,7 +61,7 @@ buttons:
show_numbers:
action:
set_view: "numbers"
outline: "wide"
outline: "altline"
label: "123"
show_numbers_from_symbols:
action:
@ -67,6 +69,11 @@ buttons:
outline: "altline"
label: "123"
show_letters:
action:
set_view: "base"
outline: "altline"
label: "ABC"
show_letters_actions:
action:
set_view: "base"
outline: "wide"
@ -82,7 +89,7 @@ buttons:
outline: "altline"
label: ">_"
period:
outline: "altline"
outline: "large"
text: "."
space:
outline: "spaceline"
@ -206,3 +213,19 @@ buttons:
modifier: "Alt"
outline: "small"
label: "Alt"
MinusSmall:
outline: "halfwidth"
text: "-"
SlashSmall:
outline: "halfwidth"
text: "/"
PipeSmall:
outline: "halfwidth"
text: "|"
PeriodSmall:
outline: "halfwidth"
text: "."
"\\":
outline: "halfwidth"
_:
outline: "halfwidth"

View File

@ -8,5 +8,6 @@
<file>icons/key-enter.svg</file>
<file>icons/key-shift.svg</file>
<file>icons/keyboard-mode-symbolic.svg</file>
<file>icons/zwnj.svg</file>
</gresource>
</gresources>

53
debian/changelog vendored
View File

@ -1,3 +1,56 @@
squeekboard (1.23.0) experimental; urgency=medium
[ Vasil Pupkin ]
* Add Belarusian translation
[ Pierre Michel Augustin ]
* Add Haitian Creole translation
* Update Haitian Creole translation
* Update Haitian Creole translation
[ Luciano ]
* add french canadian layout (QWERTY + accented letters)
[ Danial Behzadi ]
* Fix Persian layout
[ uzanto uz ]
* Add Spanish terminal-keyboard-layouts
[ MoonlightWave-12 ]
* Improve Spanish terminal-keyboard-layouts
* Update links in the documentation
* doc/tutorial.md: Remove outdated information about translations
* Improve layouts of us-terminal-keyboards
* us.yaml and us_wide.yaml: Change outline of 123- and ABC-keys to altline
* us.yaml and us_wide.yaml: Change the outline of the period-key
* Fix Swiss layouts
* Add German terminal-keyboard-layout
* data/keyboards/email/us.yaml: fix styling of @-key
* data/keyboards/de*.yaml: Change äÄ-label to Ää
* data/keyboards/*.yaml: Change "abc" to "ABC"
* Add wide emoji-layout
* Update dependencies
-- MoonlightWave-12 <135532-MoonlightWave-12@users.noreply.gitlab.gnome.org> Fri, 08 Mar 2024 10:46:37 +0100
squeekboard (1.22.0-1) experimental; urgency=medium
[ Asier Sarasua Garmendia ]
* Add Basque translation
[ Dorota Czaplejewicz ]
* state: Make size independent of scaling factor
* cleanup: Remove debug prints
* tests: Make panel manager modifications pure
* panel: Fix sizing on output reconfiguration
* Update deps
[ Undef ]
* layout: fix uppercase dvorak terminal mode
-- Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> Sat, 01 Apr 2023 13:46:23 +0000
squeekboard (1.21.0-1) experimental; urgency=medium
[ Dorota Czaplejewicz ]

2
debian/control vendored
View File

@ -32,7 +32,7 @@ Build-Depends:
rustc-mozilla,
wayland-protocols (>= 1.14),
Standards-Version: 4.1.3
Homepage: https://source.puri.sm/Librem5/squeekboard
Homepage: https://gitlab.gnome.org/World/Phosh/squeekboard
Package: squeekboard
Architecture: linux-any

View File

@ -32,7 +32,7 @@ Build-Depends:
rustc,
wayland-protocols (>= 1.14),
Standards-Version: 4.1.3
Homepage: https://source.puri.sm/Librem5/squeekboard
Homepage: https://gitlab.gnome.org/World/Phosh/squeekboard
Package: squeekboard
Architecture: linux-any

2
debian/copyright vendored
View File

@ -1,6 +1,6 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: squeekboard
Source: https://source.puri.sm/Librem5/squeekboard
Source: https://gitlab.gnome.org/World/Phosh/squeekboard
Files: *
Copyright: 2010-2011 Daiki Ueno <ueno@unixuser.org>

View File

@ -38,7 +38,7 @@ You may notice that they are ordered roughly from "user-focused" to "maintainer-
Sending patches
---------------
By submitting a change to this project, you agree to license it under the [GPL license version 3](https://source.puri.sm/Librem5/squeekboard/blob/master/COPYING), or any later version. You also certify that your contribution fulfills the [Developer's Certificate of Origin 1.1](https://source.puri.sm/Librem5/squeekboard/blob/master/dco.txt).
By submitting a change to this project, you agree to license it under the [GPL license version 3](COPYING), or any later version. You also certify that your contribution fulfills the [Developer's Certificate of Origin 1.1](dco.txt).
Development environment
-----------------------
@ -56,7 +56,7 @@ sudo apt-get -y install build-essential
sudo apt-get -y build-dep .
```
For an explicit list of dependencies check the `Build-Depends` entry in the [`debian/control`](https://source.puri.sm/Librem5/squeekboard/blob/master/debian/control) file.
For an explicit list of dependencies check the `Build-Depends` entry in the [`debian/control`](debian/control) file.
Testing
-------

View File

@ -4,7 +4,7 @@ Welcome to squeekboard's documentation!
Introduction
------------
Squeekboard is the on-screen keyboard for the Librem 5 phone. For information about building, look at the [README](https://source.puri.sm/Librem5/squeekboard/blob/master/README.md).
Squeekboard is the on-screen keyboard for the Librem 5 phone. For information about building, look at the [README](README.md).
Layouts
-------
@ -24,4 +24,4 @@ Anyone is free to modify *squeekboard*. See the [contributing document](hacking.
### Code documentation
To expose the structure of Squeekboard in detail, there's a [code reference](doc/rs).
To expose the structure of Squeekboard in detail, there's a [code reference](https://world.pages.gitlab.gnome.org/Phosh/squeekboard/doc/rs/).

View File

@ -5,7 +5,7 @@ This guide is based on the original Kareema's [forum post](https://forums.puri.s
Its long overdue to write a comprehensive guide how to add a keyboard layout from start. But unfortunately, I dont have much time left ATM. A lot of information can be found in [this](https://forums.puri.sm/t/using-non-latin-language-on-librem-5/7103/5) thread.
So at least I will try to start writing a short how-to here and edit this post as I find the time. Hope this helps a bit - comments and corrections [welcome](https://source.puri.sm/Librem5/squeekboard/-/merge_requests/)
So at least I will try to start writing a short how-to here and edit this post as I find the time. Hope this helps a bit - comments and corrections [welcome](https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/)
## Creating a new layout
@ -13,8 +13,8 @@ Creating a layout is easy. You don't need to recompile things, just edit and tes
### Get one of the existing keyboard layouts
* You can get one of the keyboards from the squeekboard git repository : [https://source.puri.sm/Librem5/squeekboard](https://source.puri.sm/Librem5/squeekboard)
* The keyboard layouts are located in the subdirectory [`data/keyboards/`](https://source.puri.sm/Librem5/squeekboard/-/tree/master/data/keyboards) in the `.yaml` files
* You can get one of the keyboards from the squeekboard git repository : [https://gitlab.gnome.org/World/Phosh/squeekboard](https://gitlab.gnome.org/World/Phosh/squeekboard)
* The keyboard layouts are located in the subdirectory [`data/keyboards/`](data/keyboards) in the `.yaml` files
### Creating the keyboard layout
@ -52,7 +52,7 @@ Above all, your layout should be working, be tested, not break anything, and mak
### Fork your own copy of squeekboard
* Best way would be to start with a fork of the squeekboard repository: Create a user account at https://source.puri.sm/, go the the squeekboard git repository, press “Fork” in the web interface. You can find further instructions [here](https://docs.gitlab.com/ee/user/project/repository/forking_workflow.html#creating-a-fork).
* Best way would be to start with a fork of the squeekboard repository: Create a user account at https://gitlab.gnome.org/, go the the squeekboard git repository, press “Fork” in the web interface. You can find further instructions [here](https://docs.gitlab.com/ee/user/project/repository/forking_workflow.html#creating-a-fork).
* Clone your fork locally with `git clone` and use the uri of your forked repo there
### Edit your keyboard and get it merged
@ -62,8 +62,7 @@ Above all, your layout should be working, be tested, not break anything, and mak
* Checkout your branch, edit your keyboard layout and commit your changes
* Your layout **must** be correctly named, and in `data/keyboards/`.
* Your layout **must** pass the `test_layout` tool with zero problems.
* Your translation **must** be correctly named, and in `data/langs/`.
* Your layout or translation **must** be added to automatic tests. **Dont forget to add it** to `src/resources.rs` and the layout to `tests/meson.build` (thats for me, because I always forget it).
* Your layout **must** be added to automatic tests. **Remember to add the layout** to `src/resources.rs` and `tests/meson.build`.
### Get it merged
@ -80,12 +79,12 @@ If you want your change to become part of official Squeekboard, or if you want t
### Compile squeekboard
* Follow the instructions found in “Building” section of the squeekboards README: Running squeekboard: [https://source.puri.sm/Librem5/squeekboard/blob/master/README.md#building](https://source.puri.sm/Librem5/squeekboard/blob/master/README.md#building)
* Follow the instructions found in “Building” section of the squeekboards README: Running squeekboard: [README.md#building](https://gitlab.gnome.org/World/Phosh/squeekboard/-/blob/master/README.md#building)
### Run squeekboard
* Follow these instructions to run squeekboard: [https://source.puri.sm/Librem5/squeekboard/blob/master/README.md#running](https://source.puri.sm/Librem5/squeekboard/blob/master/README.md#running)
* Additionally take a look at the contribution document for [testing info](HACKING.md#testing)
* Follow these instructions to run squeekboard: [README.md#running](https://gitlab.gnome.org/World/Phosh/squeekboard/-/blob/master/README.md#running)
* Additionally take a look at the contribution document for [testing info](https://gitlab.gnome.org/World/Phosh/squeekboard/-/blob/master/doc/hacking.md#testing)
* You can either test it locally on your Linux system or use the [QEMU Librem 5 image](https://developer.puri.sm/Librem5/Development_Environment/Boards/emulators.html)
* To test squeekboard locally, you need phoc. Either compile that from the sources as well or use the CI repository ci.puri.sm for Debian based systems:
`deb [arch=amd64] http://ci.puri.sm/ scratch librem5`

View File

@ -1,7 +1,7 @@
project(
'squeekboard',
'c', 'rust',
version: '1.21.0',
version: '1.23.0',
license: 'GPLv3',
meson_version: '>=0.51.0',
default_options: [

View File

@ -1,8 +1,10 @@
be
ca
cs
de
el
es
eu
fa
fi
fr
@ -11,6 +13,7 @@ gl
he
hi
hr
ht
hu
it
ka

47
po/be.po Normal file
View File

@ -0,0 +1,47 @@
# Belarusian translation for squeekboard.
# Copyright (C) 2023 squeekboard's COPYRIGHT HOLDER
# This file is distributed under the same license as the squeekboard package.
# Yuras Shumovich <shumovichy@gmail.com>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: squeekboard master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Phosh/squeekboard/"
"issues\n"
"POT-Creation-Date: 2023-04-02 17:10+0000\n"
"PO-Revision-Date: 2023-09-14 14:44+0300\n"
"Last-Translator: Yuras Shumovich <shumovichy@gmail.com>\n"
"Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n"
"Language: be\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.3.2\n"
#. 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 "Тэрмінал"
#: 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 "Віртуальная экранная клавіятура"

42
po/eu.po Normal file
View File

@ -0,0 +1,42 @@
# Basque translation for squeekboard.
# Copyright (C) 2023 squeekboard's COPYRIGHT HOLDER
# This file is distributed under the same license as the squeekboard package.
# Asier Sarasua Garmendia <asiersarasua@ni.eus>, 2023.
#
msgid ""
msgstr "Project-Id-Version: squeekboard master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Phosh/squeekboard/issues\n"
"POT-Creation-Date: 2023-02-26 09:13+0000\n"
"PO-Revision-Date: 2023-03-06 09:13+0000\n"
"Last-Translator: Asier Sarasua Garmendia <asiersarasua@ni.eus>\n"
"Language-Team: Basque <librezale@librezale.eus>\n"
"Language: eu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. translators: This is a emmoji keyboard layout
#: data/popover.ui:6
msgid "Emoji"
msgstr "Emojia"
#. translators: This is a terminal keyboard layout
#: data/popover.ui:12
msgid "Terminal"
msgstr "Terminala"
#: data/popover.ui:18
msgid "Keyboard Settings"
msgstr "Teklatuaren ezarpenak"
#: 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 "Pantailako teklatua"
#: data/sm.puri.Squeekboard.desktop.in.in:5
msgid "An on screen virtual keyboard"
msgstr "Gehitu pantailako teklatu birtuala"

45
po/ht.po Normal file
View File

@ -0,0 +1,45 @@
# Squeekboard Haitian Creole Translation
# Copyright (C) 2024 Purism
# This file is distributed under the same license as the squeekboard package.
# Pierre Michel Augustin <pierremichelaugustin@gnuhealth.org>, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Phosh/squeekboard/"
"issues\n"
"POT-Creation-Date: 2024-01-11 05:05+0000\n"
"PO-Revision-Date: 2024-01-11 10:40-0500\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: ht\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.0.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 "Tèminal"
#: data/popover.ui:18
msgid "Keyboard Settings"
msgstr "Paramèt Klavye yo"
#: 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 "Sou Ekran Klavye"
#: data/sm.puri.Squeekboard.desktop.in.in:5
msgid "An on screen virtual keyboard"
msgstr "Sou yon ekran klavye vityèl"

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<Project xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns="http://usefulinc.com/ns/doap#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:admin="http://webns.net/mvcb/">
<name>squeekboard</name>
<shortdesc>A Wayland virtual keyboard</shortdesc>
<description>A virtual keyboard supporting Wayland, built primarily for the Librem 5 phone.</description>
<homepage rdf:resource="https://source.puri.sm/Librem5/squeekboard" />
<bug-database rdf:resource="https://source.puri.sm/Librem5/squeekboard/issues" />
<shortdesc>A virtual keyboard for Wayland</shortdesc>
<description>An on-screen-keyboard input method for Wayland</description>
<homepage rdf:resource="https://gitlab.gnome.org/World/Phosh/squeekboard" />
<bug-database rdf:resource="https://gitlab.gnome.org/World/Phosh/squeekboard/issues" />
<os>Linux</os>
<license rdf:resource="http://usefulinc.com/doap/licenses/gpl" />
<maintainer>

View File

@ -29,9 +29,14 @@ pub mod c {
pub struct WlOutput(*const c_void);
impl WlOutput {
fn null() -> Self {
const fn null() -> Self {
Self(ptr::null())
}
#[cfg(test)]
pub const fn dummy() -> Self {
Self::null()
}
}
#[repr(C)]

View File

@ -94,7 +94,7 @@ impl PixelSize {
}
}
#[derive(Clone, Debug)]
#[derive(Clone, Debug, PartialEq)]
struct Size {
width: u32,
height: u32,
@ -104,7 +104,7 @@ struct Size {
/// the application asks for some size,
/// and then receives a size that the compositor thought appropriate.
/// Stores raw values passed to Wayland, i.e. scaled dimensions.
#[derive(Clone, Debug)]
#[derive(Clone, Debug, PartialEq)]
enum State {
Hidden,
SizeRequested {
@ -119,6 +119,18 @@ enum State {
},
}
/// A command to send out to the next layer of processing.
/// Here, it's the C side of the panel.
#[derive(Debug, PartialEq)]
enum Update {
Hide,
Resize { height: u32 },
RequestWidget {
output: OutputId,
height: u32,
},
}
#[derive(Clone, PartialEq, Debug)]
pub enum Command {
Show {
@ -153,7 +165,50 @@ impl Manager {
eprintln!("Panel received configure {:?}", &size);
}
self.state = match self.state.clone() {
self.state = self.state.clone().configure(size);
if self.debug {
eprintln!("Panel now {:?}", &self.state);
}
}
pub fn update(mgr: Wrapped<Manager>, cmd: Command) {
let copied = mgr.clone();
let mgr = mgr.clone_ref();
let mut mgr = mgr.borrow_mut();
if mgr.debug {
eprintln!("Panel received {:?}", &cmd);
}
let (state, updates) = mgr.state.clone().update(cmd);
(*mgr).state = state;
for update in &updates {
unsafe {
match update {
Update::Hide => c::panel_manager_hide(mgr.panel),
Update::Resize { height }
=> c::panel_manager_resize(mgr.panel, *height),
Update::RequestWidget{output, height}
=> c::panel_manager_request_widget(mgr.panel, output.0, *height, copied.clone()),
}
}
}
if mgr.debug {
for update in &updates {
eprintln!("Panel updates: {:?}", &update);
}
eprintln!("Panel is now {:?}", &(*mgr).state);
}
}
}
impl State {
fn configure(self, size: Size) -> Self {
match self {
State::Hidden => {
// This may happen if a hide is scheduled immediately after a show.
log_print!(
@ -174,49 +229,34 @@ impl Manager {
wanted_height: height,
allocated: size,
},
};
if self.debug {
eprintln!("Panel now {:?}", &self.state);
}
}
pub fn update(mgr: Wrapped<Manager>, cmd: Command) {
let copied = mgr.clone();
let mgr = mgr.clone_ref();
let mut mgr = mgr.borrow_mut();
if mgr.debug {
eprintln!("Panel received {:?}", &cmd);
}
(*mgr).state = match (cmd, mgr.state.clone()) {
(Command::Hide, State::Hidden) => State::Hidden,
(Command::Hide, State::SizeAllocated{..}) => {
unsafe { c::panel_manager_hide(mgr.panel); }
State::Hidden
},
(Command::Hide, State::SizeRequested{..}) => {
unsafe { c::panel_manager_hide(mgr.panel); }
State::Hidden
},
fn update(self, cmd: Command) -> (Self, Vec<Update>) {
match (cmd, self) {
(Command::Hide, State::Hidden) => (State::Hidden, Vec::new()),
(Command::Hide, State::SizeAllocated{..}) => (
State::Hidden, vec![Update::Hide],
),
(Command::Hide, State::SizeRequested{..}) => (
State::Hidden, vec![Update::Hide],
),
(Command::Show{output, height}, State::Hidden) => {
let height = height.as_scaled_ceiling();
if mgr.debug {
eprintln!("Panel requests widget {:?}", (&output.0, &height));
}
unsafe { c::panel_manager_request_widget(mgr.panel, output.0, height, copied); }
State::SizeRequested{output, height}
(
State::SizeRequested{output, height},
vec![Update::RequestWidget{ output, height }],
)
},
(
Command::Show{output, height},
State::SizeRequested{output: req_output, height: req_height},
) => {
let height = height.as_scaled_ceiling();
if output == req_output && height == req_height {
State::SizeRequested{output: req_output, height: req_height}
} else if output == req_output {
if output == req_output && height == req_height {(
State::SizeRequested{output: req_output, height: req_height},
Vec::new(),
)} else if output == req_output {(
// I'm not sure about that.
// This could cause a busy loop,
// when two requests are being processed at the same time:
@ -225,50 +265,119 @@ impl Manager {
// the other from the state wanting height B',
// causing the compositor to change size to B.
// So better cut this short here, despite artifacts.
// Out of simplicty, just ignore the new request.
// If that causes problems, the request in flight could be stored
// for the purpose of handling it better somehow.
State::SizeRequested{output: req_output, height: req_height}
} else {
if mgr.debug {
eprintln!("Panel requests widget {:?}", (&output.0, &height));
}
// Doing nothing means that Squeekboard will occasionally use the stale size (see test),
// so instead always listen to the higher layer and request a new size.
// If this causes problems, maybe count requests/configures, or track what was allocated in response to what request.
State::SizeRequested{output, height},
vec![Update::Resize { height }],
)} else {(
// This looks weird, but should be safe.
// The stack seems to handle
// configure events on a dead surface.
unsafe {
c::panel_manager_hide(mgr.panel);
c::panel_manager_request_widget(mgr.panel, output.0, height, copied);
}
State::SizeRequested{output, height}
}
State::SizeRequested{output, height},
vec![
Update::Hide,
Update::RequestWidget { output, height },
],
)}
},
(
Command::Show{output, height},
State::SizeAllocated{output: alloc_output, allocated, wanted_height},
) => {
let height = height.as_scaled_ceiling();
if output == alloc_output && height == wanted_height {
State::SizeAllocated{output: alloc_output, wanted_height, allocated}
} else if output == alloc_output && height == allocated.height {
State::SizeAllocated{output: alloc_output, wanted_height: height, allocated}
} else if output == alloc_output {
if output == alloc_output && height == wanted_height {(
State::SizeAllocated{output: alloc_output, wanted_height, allocated},
Vec::new(),
)} else if output == alloc_output && height == allocated.height {(
State::SizeAllocated{output: alloc_output, wanted_height: height, allocated},
Vec::new(),
)} else if output == alloc_output {(
// Should *all* other heights cause a resize?
// What about those between wanted and allocated?
unsafe { c::panel_manager_resize(mgr.panel, height); }
State::SizeRequested{output, height}
} else {
unsafe {
c::panel_manager_hide(mgr.panel);
c::panel_manager_request_widget(mgr.panel, output.0, height, copied);
}
State::SizeRequested{output, height}
}
State::SizeRequested{output, height},
vec![Update::Resize{height}],
)} else {(
State::SizeRequested{output, height},
vec![
Update::Hide,
Update::RequestWidget{output, height},
]
)}
},
};
if mgr.debug {
eprintln!("Panel is now {:?}", &(*mgr).state);
}
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::outputs::c::WlOutput;
#[test]
fn resize_before_configured() {
// allow to make typing fields easier
#[allow(non_upper_case_globals)]
const output: OutputId = OutputId(WlOutput::dummy());
let state = State::Hidden;
// Initial show
let (state, cmds) = state.update(Command::Show {
output,
height: PixelSize { pixels: 100, scale_factor: 1 },
});
assert_eq!(
cmds,
vec![Update::RequestWidget { output, height: 100 }],
);
// layer shell requests a resize
// but another show comes before first can be confirmed
let (state, cmds) = dbg!(state).update(Command::Show {
output,
height: PixelSize { pixels: 50, scale_factor: 1 },
});
assert_eq!(
cmds,
vec![Update::Resize { height: 50 }],
"{:?}",
state,
);
// This is too many layers of indirection, but as long as layer shell is tied to gtk widgets, there's not much to be done.
// The main issue is that as the outputs change, we acknowledge the wrong (maintained) size:
/*
[346947.774] wl_output@31.geometry(0, 0, 65, 130, 0, "<Unknown>", "<Unknown>", 3)
[346948.117] wl_output@17.geometry(0, 0, 65, 130, 0, "<Unknown>", "<Unknown>", 3)
[346948.198] zwlr_layer_surface_v1@41.configure(1709, 720, 210)
[346948.268] -> zwlr_layer_surface_v1@41.ack_configure(1709)
*/
// TODO: check if layer_shell allows not acknowledging a configure event, and which part of squeekboard is responsible for that
// (there are no messages in between, so it's not PanelMgr; panel.c almost-unconditionally calls to Rust too; could it be layer-shell.c?).
// event we want
let good_state = state.clone().configure(Size { width: 50, height: 50 });
assert_eq!(
good_state,
State::SizeAllocated {
output,
wanted_height: 50,
allocated: Size { width: 50, height: 50 },
},
);
// or stale event we do not want
let state = state.configure(Size { width: 50, height: 100 });
// followed by the good one
let state = state.configure(Size { width: 50, height: 50 });
assert_eq!(
state,
State::SizeAllocated {
output,
wanted_height: 50,
allocated: Size { width: 50, height: 50 },
},
);
}
}

View File

@ -59,8 +59,8 @@ popover_open_settings_panel (char *panel)
g_dbus_proxy_new_for_bus (G_BUS_TYPE_SESSION,
G_DBUS_PROXY_FLAGS_NONE,
NULL,
"org.gnome.ControlCenter",
"/org/gnome/ControlCenter",
"org.gnome.Settings",
"/org/gnome/Settings",
"org.gtk.Actions",
NULL,
(GAsyncReadyCallback) create_dbus_proxy_cb,

View File

@ -27,6 +27,8 @@ static KEYBOARDS: &[(&'static str, &'static str)] = &[
("br", include_str!("../data/keyboards/br.yaml")),
("ca", include_str!("../data/keyboards/ca.yaml")),
("ch+fr", include_str!("../data/keyboards/ch+fr.yaml")),
("ch+de", include_str!("../data/keyboards/ch+de.yaml")),
("ch", include_str!("../data/keyboards/ch.yaml")),
@ -109,6 +111,12 @@ static KEYBOARDS: &[(&'static str, &'static str)] = &[
("pin/us", include_str!("../data/keyboards/pin/us.yaml")),
// Terminal
("terminal/de", include_str!("../data/keyboards/terminal/de.yaml")),
("terminal/de_wide", include_str!("../data/keyboards/terminal/de_wide.yaml")),
("terminal/es", include_str!("../data/keyboards/terminal/es.yaml")),
("terminal/es_wide", include_str!("../data/keyboards/terminal/es_wide.yaml")),
("terminal/fr", include_str!("../data/keyboards/terminal/fr.yaml")),
("terminal/fr_wide", include_str!("../data/keyboards/terminal/fr_wide.yaml")),
@ -119,6 +127,7 @@ static KEYBOARDS: &[(&'static str, &'static str)] = &[
// Overlays
("emoji/us", include_str!("../data/keyboards/emoji/us.yaml")),
("emoji/us_wide", include_str!("../data/keyboards/emoji/us_wide.yaml")),
];
pub fn get_keyboard(needle: &str) -> Option<&'static str> {

View File

@ -385,19 +385,20 @@ Outcome:
let ideal_height = IDEAL_TARGET_SIZE * ROW_COUNT as i32;
let ideal_height_px = (ideal_height * density).ceil().0 as u32;
let max_wide_height = Rational {
numerator: 172,
denominator: 540,
};
let ideal_panel_height = Rational {
numerator: ideal_height_px as i32,
denominator: px_size.width,
};
// Reduce height to match what the layout can fill.
// For this, we need to guess if normal or wide will be picked up.
// For this, we need to guess if normal or wide will be picked.
// This must match `eek_gtk_keyboard.c::get_type`.
// TODO: query layout database and choose one directly
let abstract_width
= PixelSize {
scale_factor: output.scale as u32,
pixels: px_size.width,
}
.as_scaled_ceiling();
let (arrangement, height_as_widths) = {
if abstract_width < 540 {(
if max_wide_height < ideal_panel_height {(
ArrangementKind::Base,
Rational {
numerator: 210,
@ -405,10 +406,7 @@ Outcome:
},
)} else {(
ArrangementKind::Wide,
Rational {
numerator: 172,
denominator: 540,
}
max_wide_height,
)}
};
@ -755,4 +753,33 @@ pub mod test {
)),
);
}
#[test]
fn size_l5_scale1() {
use crate::outputs::{Mode, Geometry, c, Size};
assert_eq!(
Application::get_preferred_height_and_arrangement(&OutputState {
current_mode: Some(Mode {
width: 720,
height: 1440,
}),
geometry: Some(Geometry{
transform: c::Transform::Normal,
phys_size: Size {
width: Some(Millimeter(65)),
height: Some(Millimeter(130)),
},
}),
scale: 1,
}),
Some((
PixelSize {
scale_factor: 1,
pixels: 420,
},
ArrangementKind::Base,
)),
);
}
}

View File

@ -4,6 +4,7 @@ use std::rc::Rc;
use crate::float_ord::FloatOrd;
use std::borrow::Borrow;
use std::cmp::{Ordering, PartialOrd};
use std::hash::{ Hash, Hasher };
use std::ops::Mul;
@ -242,6 +243,34 @@ impl<U, T: Mul<U, Output=T>> Mul<Rational<U>> for Rational<T> {
}
}
impl PartialEq for Rational<i32> {
fn eq(&self, other: &Self) -> bool {
(self.denominator as i64).saturating_mul(other.numerator as i64)
== (other.denominator as i64).saturating_mul(self.numerator as i64)
}
}
impl Eq for Rational<i32> {}
impl Ord for Rational<i32> {
fn cmp(&self, other: &Self) -> Ordering {
// Using 64-bit values to make overflows unlikely.
// If i32_max * u32_max can exceed i64_max,
// then this is actually PartialOrd.
// Saturating mul used just to avoid propagating mistakes.
(other.denominator as i64).saturating_mul(self.numerator as i64)
.cmp(
&(self.denominator as i64).saturating_mul(other.numerator as i64)
)
}
}
impl PartialOrd for Rational<i32> {
fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
Some(self.cmp(other))
}
}
/// Compares pointers but not internal values of Rc
pub struct Pointer<T>(pub Rc<T>);
@ -327,4 +356,20 @@ mod tests {
vec![(5, 0), (6, 0), (7, 0), (5, 1), (6, 1), (7, 1), (5, 2)]
);
}
#[test]
fn check_rational_cmp() {
assert_eq!(
Rational { numerator: 1, denominator: 1 },
Rational { numerator: 1, denominator: 1 },
);
assert_eq!(
Rational { numerator: 1, denominator: 1 },
Rational { numerator: 2, denominator: 2 },
);
assert!(
Rational { numerator: 1, denominator: 1 }
< Rational { numerator: 2, denominator: 1 }
);
}
}

View File

@ -64,6 +64,7 @@ foreach layout : [
'bg',
'bg+phonetic',
'br',
'ca',
'ch+fr',
'ch+de',
'ch', 'ch_wide',
@ -97,6 +98,10 @@ foreach layout : [
'us+dvorak', 'us+dvorak_wide',
# Terminal keyboards
'terminal/de',
'terminal/de_wide',
'terminal/es',
'terminal/es_wide',
'terminal/fr',
'terminal/fr_wide',
'terminal/us',
@ -106,6 +111,7 @@ foreach layout : [
# Block: Not languages.
'emoji/us',
'emoji/us_wide',
'number/us',
'pin/us',
]