[Debian-on-mobile-maintainers] [Git][DebianOnMobile-team/squeekboard][upstream/latest] 26 commits: Show more useful keys at the same time.

Guido Günther gitlab at salsa.debian.org
Sat Sep 26 11:53:56 BST 2020



Guido Günther pushed to branch upstream/latest at Debian On Mobile / squeekboard


Commits:
a5ce2505 by Björn Tantau at 2020-04-10T16:43:36+00:00
Show more useful keys at the same time.
- - - - -
46de67a4 by Björn Tantau at 2020-04-28T08:29:41+00:00
Add Ctrl and Alt modifier keys.
- - - - -
3ba6aca9 by Dorota Czaplejewicz at 2020-06-13T08:27:33+00:00
build: Add missing gio-unix dependency

- - - - -
ecfc45c2 by Dorota Czaplejewicz at 2020-06-24T15:51:21+00:00
build: Make compatible with Debian Bullseye

This commit is a bit bigger than it could have: Meson changes could have gone in separately from CI and Debian.

This commit looks more complicated than it should reasonably be. Alas, Cargo is a piece of work, and it doesn't let honest people just choose different versions of dependencies, leading to a cascade of misery. Several things were tried to curb the disaster:

- Cargo [feature] supports choosing dependencies, but doesn't support specifying dependency versions
- Cargo has a cfg() syntax in sections for choosing dependencies by build options, but it explicitly doesn't support selecting on features…
- Cargo allows choosing different dependencies based on features, so perhaps dependencies with different versions could live in stub crates pulled in as needed? Nope! If a dependency doesn't exist in the repo (and that's the point here), Cargo throws up its hands.

This means Cargo.toml needs to be generated based on the build type. More misery:

- we lose the simplicity of just doing `cargo.sh` for simple housekeeping like deps updates. HACKING.md was updated to reflect that. Perhaps that's inevitable - build options need to be like this.
- Some flaky adjustments needed in `cargo.sh` because of an additional argument that can be mistaken for an argument to the exec in `cargo run`.
- Specifying a custom `Cargo.toml` means Cargo can no longer find any tests, examples, benchmarks, or binaries, because it searches relative to the directory of `Cargo.toml`, which is now the build dir. Extra care needed to not forget about them now.

As soon as Cargo allows anything better for managing deps versions, the above should be undone in its favor.

Good side is that a couple bugs went away:

- build flags not always making it to Cargo
- arm64 builds were optional while they shouldn't
- test layouts in unit tests are loaded from an explicit directory now

The Bullseye versions of dependencies are canonical now, Buster considered legacy.

- - - - -
02995277 by Dorota Czaplejewicz at 2020-06-25T11:29:47+00:00
debian: Add amber to legacy distro list

- - - - -
67d89269 by Dorota Czaplejewicz at 2020-06-25T16:17:16+00:00
ci: Add amber job

- - - - -
0735d1c6 by Guido Gunther at 2020-06-25T17:03:28+00:00
Merge branch 'bullseye' into 'master'

build: Debian Bullseye-compatible deps

See merge request Librem5/squeekboard!357
- - - - -
26e0473f by Dorota Czaplejewicz at 2020-06-25T17:45:08+00:00
debian: Require lsb-release

- - - - -
767bb174 by Guido Gunther at 2020-06-26T06:50:44+00:00
Merge branch 'fix' into 'master'

debian: Require lsb-release

See merge request Librem5/squeekboard!359
- - - - -
762e1243 by Dorota Czaplejewicz at 2020-06-26T07:13:23+00:00
Merge branch 'fix_gio_unix' into 'master'

build: Add missing gio-unix dependency

See merge request Librem5/squeekboard!356
- - - - -
4f727796 by Dorota Czaplejewicz at 2020-06-28T17:14:49+00:00
size: Hardcode size to work around screen rotation

Phoc sends output information *after* changing keyboard surface size. Squeekboard adjusts size on surface events, but not on output in this revision, making it unaware of display size at the time of adjustment, resulting in bad adjustment.

This change hardcodes the proportions again to make it work at least on the Librem5.

- - - - -
93ff086e by Dorota Czaplejewicz at 2020-06-28T17:38:10+00:00
ci: Re-add x64 Buster build

- - - - -
d7c7528d by Dorota Czaplejewicz at 2020-07-10T15:04:43+00:00
italian: Fix space and period

- - - - -
ea22afba by Björn Tantau at 2020-07-15T14:41:01+00:00
Add missing Ê key.
- - - - -
c0c666f1 by Björn Tantau at 2020-07-15T14:41:17+00:00
Make f-keys slightly wider.
- - - - -
f3f1d58f by Björn Tantau at 2020-07-15T14:42:55+00:00
Add Menu key.
- - - - -
0c8feb76 by Sebastian Krzyszkowiak at 2020-07-15T15:06:36+00:00
Merge branch 'btantau-master-patch-76686' into 'master'

New terminal layout, showing more useful keys at the same time

See merge request Librem5/squeekboard!345
- - - - -
7ec3053a by Dorota Czaplejewicz at 2020-07-16T15:56:57+00:00
Merge branch 'fixsize' into 'master'

size: Hardcode size to work around screen rotation

See merge request Librem5/squeekboard!361
- - - - -
123faecb by Dorota Czaplejewicz at 2020-07-16T15:57:38+00:00
Merge branch 'italian' into 'master'

italian: Fix space and period

See merge request Librem5/squeekboard!364
- - - - -
f5a52822 by Sebastian Krzyszkowiak at 2020-07-18T03:26:03+02:00
Revert "Merge branch 'btantau-master-patch-76686' into 'master'"

This reverts commit 0c8feb76871f179ef50ca2928f6fc66fd554895c, reversing
changes made to 762e12431d19fad213d3ab6527c3cd2b7d366c1e.

- - - - -
97da44f0 by Sebastian Krzyszkowiak at 2020-07-18T05:43:15+02:00
Terminal layout: another approach

- - - - -
c87b61d0 by Luís Fernando Stürmer da Rosa at 2020-07-20T09:47:19+00:00
Brazilian Portuguese Keyboard Layout.

- - - - -
81344bb9 by Dorota Czaplejewicz at 2020-07-20T09:47:19+00:00
Merge branch 'patch-1' into 'master'

Brazilian Portuguese Keyboard Layout.

See merge request Librem5/squeekboard!365
- - - - -
88821e2e by Dorota Czaplejewicz at 2020-07-20T09:48:36+00:00
Merge branch 'terminal' into 'master'

Terminal layout: another approach

See merge request Librem5/squeekboard!368
- - - - -
1ee58ce7 by Sebastian Krzyszkowiak at 2020-08-05T16:17:44+02:00
Document changes and release 1.9.3

- - - - -
d3661398 by Guido Günther at 2020-09-26T12:14:28+02:00
Add gbp.conf

- - - - -


25 changed files:

- .gitlab-ci.yml
- + Cargo.deps
- + Cargo.deps.legacy
- Cargo.lock
- Cargo.toml → Cargo.toml.in
- cargo.sh
- + data/keyboards/br.yaml
- data/keyboards/it.yaml
- data/keyboards/terminal.yaml
- data/style-Adwaita:dark.css
- data/style.css
- debian/changelog
- debian/control
- + debian/gbp.conf
- debian/rules
- doc/hacking.md
- meson.build
- meson_options.txt
- src/data.rs
- src/meson.build
- src/popover.rs
- src/resources.rs
- src/server-context-service.c
- tests/meson.build
- tools/meson.build


Changes:

=====================================
.gitlab-ci.yml
=====================================
@@ -1,4 +1,4 @@
-image: debian:buster
+image: debian:bullseye
 
 stages:
   - build
@@ -11,7 +11,7 @@ stages:
 before_script:
   - apt-get -y update
   - apt-get -y install wget ca-certificates gnupg
-  - echo "deb http://ci.puri.sm/ scratch librem5" > /etc/apt/sources.list.d/ci.list
+  - echo "deb [trusted=yes] http://ci.puri.sm/ bullseyeci main" > /etc/apt/sources.list.d/ci.list
   - wget -O- https://ci.puri.sm/ci-repo.key | apt-key add -
   - apt-get -y update
 
@@ -27,7 +27,8 @@ build_docs:
       - ./doc/build.sh _build
 
 build_meson:
-  <<: *tags
+  tags:
+    - librem5
   stage: build
   artifacts:
     paths:
@@ -52,10 +53,44 @@ build_deb:
         - debuild -i -us -uc -b
         - cp ../*.deb .
 
+build_deb:amber:
+    image: pureos/amber
+    tags:
+        - librem5
+    stage: build
+    artifacts:
+      paths:
+        - "*.deb"
+    script:
+        - echo "deb http://ci.puri.sm/ scratch librem5" > /etc/apt/sources.list.d/ci.list
+        - apt-get -y update
+        - rm -f ../*.deb
+        - apt-get -y build-dep .
+        - apt-get -y install devscripts
+        - debuild -i -us -uc -b
+        - cp ../*.deb .
+
+build_deb:buster:
+    image: "debian:buster"
+    tags:
+        - librem5
+    stage: build
+    artifacts:
+      paths:
+        - "*.deb"
+    script:
+        - echo "deb http://ci.puri.sm/ scratch librem5" > /etc/apt/sources.list.d/ci.list
+        - apt-get -y update
+        - rm -f ../*.deb
+        - apt-get -y build-dep .
+        - apt-get -y install devscripts
+        - debuild -i -us -uc -b
+        - cp ../*.deb .
+
+
 build_deb:arm64:
     tags:
         - librem5:arm64
-    allow_failure: true
     stage: build
     artifacts:
       paths:
@@ -67,6 +102,23 @@ build_deb:arm64:
         - debuild -i -us -uc -b
         - cp ../*.deb .
 
+build_deb:arm64_buster:
+    image: "debian:buster"
+    tags:
+        - librem5:arm64
+    stage: build
+    artifacts:
+      paths:
+        - "*.deb"
+    script:
+        - echo "deb http://ci.puri.sm/ scratch librem5" > /etc/apt/sources.list.d/ci.list
+        - apt-get -y update
+        - rm -f ../*.deb
+        - apt-get -y build-dep .
+        - apt-get -y install devscripts
+        - debuild -i -us -uc -b
+        - cp ../*.deb .
+
 test_lintian:
     <<: *tags
     stage: test
@@ -77,7 +129,8 @@ test_lintian:
         - lintian *.deb
 
 test:
-  <<: *tags
+  tags:
+    - librem5
   stage: test
   needs:
     - build_meson


=====================================
Cargo.deps
=====================================
@@ -0,0 +1,22 @@
+# Dependencies which change based on build flags
+bitflags = "1.2.*"
+clap = { version = "2.33.*", default-features = false }
+regex = { version = "1.3.*", default-features = false, features = ["std", "unicode-case"] }
+
+[dependencies.cairo-rs]
+version = "0.7.*"
+
+[dependencies.gdk]
+version = "0.11.*"
+
+[dependencies.gio]
+version = "0.7.*"
+features = ["v2_44"]
+
+[dependencies.glib]
+version = "0.8.*"
+features = ["v2_44"]
+
+[dependencies.gtk]
+version = "0.7.*"
+features = ["v3_22"]


=====================================
Cargo.deps.legacy
=====================================
@@ -0,0 +1,22 @@
+# Dependencies which change based on build flags
+bitflags = "1.0.*"
+clap = { version = "2.32.*", default-features = false }
+regex = { version = "1.1.*", default-features = false, features = ['use_std'] }
+
+[dependencies.cairo-rs]
+version = "0.5.*"
+
+[dependencies.gdk]
+version = "0.9.*"
+
+[dependencies.gio]
+version = "0.5.*"
+features = ["v2_44"]
+
+[dependencies.glib]
+version = "0.6.*"
+features = ["v2_44"]
+
+[dependencies.gtk]
+version = "0.5.*"
+features = ["v3_22"]


=====================================
Cargo.lock
=====================================
@@ -1,52 +1,55 @@
 # This file is automatically @generated by Cargo.
 # It is not intended for manual editing.
 [[package]]
-name = "aho-corasick"
-version = "0.7.10"
+name = "atk"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "atk-sys"
-version = "0.7.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
  "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "bitflags"
-version = "1.0.4"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
 name = "cairo-rs"
-version = "0.5.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "cairo-sys-rs"
-version = "0.7.0"
+version = "0.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
  "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -56,11 +59,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
 name = "clap"
-version = "2.32.0"
+version = "2.33.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -76,105 +79,105 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
 name = "gdk"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "cairo-rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gdk-pixbuf 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gdk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
- "pango 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "gdk-pixbuf"
-version = "0.5.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "gdk-pixbuf-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "gdk-pixbuf-sys"
-version = "0.7.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
  "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "gdk-sys"
-version = "0.7.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gdk-pixbuf-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
- "pango-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "gio"
-version = "0.5.1"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "gio-sys"
-version = "0.7.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
  "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "glib"
-version = "0.6.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "glib-sys"
-version = "0.7.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -183,52 +186,54 @@ dependencies = [
 
 [[package]]
 name = "gobject-sys"
-version = "0.7.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
  "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "gtk"
-version = "0.5.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "cairo-rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "atk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "cc 1.0.54 (registry+https://github.com/rust-lang/crates.io-index)",
- "gdk 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gdk-pixbuf 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gdk-pixbuf-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gdk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gtk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gtk-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
- "pango 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "gtk-sys"
-version = "0.7.0"
+version = "0.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "atk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gdk-pixbuf-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gdk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
- "pango-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -252,11 +257,6 @@ name = "maplit"
 version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
-[[package]]
-name = "memchr"
-version = "2.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
 [[package]]
 name = "memmap"
 version = "0.7.0"
@@ -268,25 +268,25 @@ dependencies = [
 
 [[package]]
 name = "pango"
-version = "0.5.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
- "pango-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "pango-sys"
-version = "0.7.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)",
  "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -306,7 +306,7 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.6"
+version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -314,14 +314,10 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.1.9"
+version = "1.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)",
- "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "utf8-ranges 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -333,20 +329,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 name = "rs"
 version = "0.1.0"
 dependencies = [
- "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "cairo-rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gdk 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gtk 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gtk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "clap 2.33.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gtk-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "maplit 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde 1.0.111 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_yaml 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_yaml 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)",
  "xkbcommon 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -364,47 +360,39 @@ version = "1.0.111"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "serde_yaml"
-version = "0.8.12"
+version = "0.8.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "dtoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "linked-hash-map 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde 1.0.111 (registry+https://github.com/rust-lang/crates.io-index)",
- "yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "yaml-rust 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "syn"
-version = "1.0.30"
+version = "1.0.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
  "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "textwrap"
-version = "0.10.0"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
-[[package]]
-name = "thread_local"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
 [[package]]
 name = "unicode-width"
 version = "0.1.7"
@@ -415,11 +403,6 @@ name = "unicode-xid"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
-[[package]]
-name = "utf8-ranges"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
 [[package]]
 name = "winapi"
 version = "0.3.8"
@@ -450,57 +433,54 @@ dependencies = [
 
 [[package]]
 name = "yaml-rust"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "linked-hash-map 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [metadata]
-"checksum aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)" = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
-"checksum atk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c7017e53393e713212aed7aea336b6553be4927f58c37070a56c2fe3d107e489"
-"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12"
-"checksum cairo-rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "dd940f0d609699e343ef71c4af5f66423afbf30d666f796dabd8fd15229cf5b6"
-"checksum cairo-sys-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d25596627380be4381247dba06c69ad05ca21b3b065bd9827e416882ac41dcd2"
+"checksum atk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "86b7499272acf036bb5820c6e346bbfb5acc5dceb104bc2c4fd7e6e33dfcde6a"
+"checksum atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e552c1776737a4c80110d06b36d099f47c727335f9aaa5d942a72b6863a8ec6f"
+"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+"checksum cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e05db47de3b0f09a222fa4bba2eab957d920d4243962a86b2d77ab401e4a359c"
+"checksum cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff65ba02cac715be836f63429ab00a767d48336efc5497c5637afb53b4f14d63"
 "checksum cc 1.0.54 (registry+https://github.com/rust-lang/crates.io-index)" = "7bbb73db36c1246e9034e307d0fba23f9a2e251faa47ade70c1bd252220c8311"
-"checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e"
+"checksum clap 2.33.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129"
 "checksum dtoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4358a9e11b9a09cf52383b451b49a169e8d797b68aa02301ff586d70d9661ea3"
 "checksum fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05f8140122fa0d5dcb9fc8627cfce2b37cc1500f752636d46ea28bc26785c2f9"
-"checksum gdk 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bcc52c7244046df9d959df87289f1fc5cca23f9f850bab0c967963e2ecb83a96"
-"checksum gdk-pixbuf 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc3aa730cb4df3de5d9fed59f43afdf9e5fb2d3d10bfcbd04cec031435ce87f5"
-"checksum gdk-pixbuf-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "08284f16ce4d909b10d785a763ba190e222d2c1557b29908bf0a661e27a8ac3b"
-"checksum gdk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "108548ebf5329b551f2b97ab356908d14627905abb74b936c3372de1535aee81"
-"checksum gio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "29a44b051990573448edc80b1995237f8b97b5734d2aec05105b9242aa10af11"
-"checksum gio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6975ada29f7924dc1c90b30ed3b32d777805a275556c05e420da4fbdc22eb250"
-"checksum glib 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a333edf5b9f1411c246ef14e7881b087255f04c56dbef48c64a0cb039b4b340"
-"checksum glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3573351e846caed9f11207b275cd67bc07f0c2c94fb628e5d7c92ca056c7882d"
-"checksum gobject-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "08475e4a08f27e6e2287005950114735ed61cec2cb8c1187682a5aec8c69b715"
-"checksum gtk 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "56a6b30f194f09a17bb7ffa95c3ecdb405abd3b75ff981f831b1f6d18fe115ff"
-"checksum gtk-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d487d333a4b87072e6bf9f2e55befa0ebef01b9496c2e263c0f4a1ff3d6c04b1"
+"checksum gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6243e995f41f3a61a31847e54cc719edce93dd9140c89dca3b9919be1cfe22d5"
+"checksum gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9726408ee1bbada83094326a99b9c68fea275f9dbb515de242a69e72051f4fcc"
+"checksum gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d8991b060a9e9161bafd09bf4a202e6fd404f5b4dd1a08d53a1e84256fb34ab0"
+"checksum gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6adf679e91d1bff0c06860287f80403e7db54c2d2424dce0a470023b56c88fbb"
+"checksum gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6261b5d34c30c2d59f879e643704cf54cb44731f3a2038000b68790c03e360e3"
+"checksum gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4fad225242b9eae7ec8a063bb86974aca56885014672375e5775dc0ea3533911"
+"checksum glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "be27232841baa43e0fd5ae003f7941925735b2f733a336dc75f07b9eff415e7b"
+"checksum glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "95856f3802f446c05feffa5e24859fe6a183a7cb849c8449afc35c86b1e316e2"
+"checksum gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31d1a804f62034eccf370006ccaef3708a71c31d561fee88564abe71177553d9"
+"checksum gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "709f1074259d4685b96133f92b75c7f35b504715b0fcdc96ec95de2607296a60"
+"checksum gtk-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53def660c7b48b00b510c81ef2d2fbd3c570f1527081d8d7947f471513e1a4c1"
 "checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 "checksum libc 0.2.71 (registry+https://github.com/rust-lang/crates.io-index)" = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49"
 "checksum linked-hash-map 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a"
 "checksum maplit 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
-"checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
 "checksum memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b"
-"checksum pango 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4c2cb169402a3eb1ba034a7cc7d95b8b1c106e9be5ba4be79a5a93dc1a2795f4"
-"checksum pango-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d6eb49268e69dd0c1da5d3001a61aac08e2e9d2bfbe4ae4b19b9963c998f6453"
+"checksum pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "393fa071b144f8ffb83ede273758983cf414ca3c0b1d2a5a9ce325b3ba3dd786"
+"checksum pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "86b93d84907b3cf0819bff8f13598ba72843bee579d5ebc2502e4b0367b4be7d"
 "checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
 "checksum proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)" = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa"
-"checksum quote 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "54a21852a652ad6f610c9510194f398ff6f8692e334fd1145fed931f7fbe44ea"
-"checksum regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "d9d8297cc20bbb6184f8b45ff61c8ee6a9ac56c156cec8e38c3e5084773c44ad"
+"checksum quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
+"checksum regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
 "checksum regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)" = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
 "checksum serde 1.0.111 (registry+https://github.com/rust-lang/crates.io-index)" = "c9124df5b40cbd380080b2cc6ab894c040a3070d995f5c9dc77e18c34a8ae37d"
 "checksum serde_derive 1.0.111 (registry+https://github.com/rust-lang/crates.io-index)" = "3f2c3ac8e6ca1e9c80b8be1023940162bf81ae3cffbb1809474152f2ce1eb250"
-"checksum serde_yaml 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)" = "16c7a592a1ec97c9c1c68d75b6e537dcbf60c7618e038e7841e00af1d9ccf0c4"
-"checksum syn 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)" = "93a56fabc59dce20fe48b6c832cc249c713e7ed88fa28b0ee0a3bfcaae5fe4e2"
-"checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6"
-"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
+"checksum serde_yaml 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)" = "ae3e2dd40a7cdc18ca80db804b7f461a39bb721160a85c9a1fa30134bf3c02a5"
+"checksum syn 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)" = "b5304cfdf27365b7585c25d4af91b35016ed21ef88f17ced89c7093b43dba8b6"
+"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
 "checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
 "checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
-"checksum utf8-ranges 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b4ae116fef2b7fea257ed6440d3cfcff7f190865f170cdad00bb6465bf18ecba"
 "checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
 "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 "checksum xkbcommon 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fda0ea5f7ddabd51deeeda7799bee06274112f577da7dd3d954b8eda731b2fce"
-"checksum yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "65923dd1784f44da1d2c3dbbc5e822045628c590ba72123e1c73d3c230c4434d"
+"checksum yaml-rust 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "39f0c922f1a334134dc2f7a8b67dc5d25f0735263feec974345ff706bcf20b0d"


=====================================
Cargo.toml → Cargo.toml.in
=====================================
@@ -2,46 +2,39 @@
 name = "rs"
 version = "0.1.0"
 
-[dependencies]
-bitflags = "1.0.*"
-clap = { version = "2.32.*", default-features = false }
-maplit = "1.0.*"
-regex = "1.1.*"
-serde = { version = "1.0.*", features = ["derive"] }
-serde_yaml = "0.8.*"
-xkbcommon = { version = "0.4.*", features = ["wayland"] }
-
-[dependencies.cairo-rs]
-version = "0.5.*"
+[lib]
+name = "rs"
+path = "@path@/src/lib.rs"
+crate-type = ["staticlib", "rlib"]
 
-[dependencies.cairo-sys-rs]
-version = ""
+# Cargo can't do autodiscovery if Cargo.toml is not in the root.
+[[bin]]
+name = "test_layout"
+path = "@path@/src/bin/test_layout.rs"
 
-[dependencies.gdk]
-version = ""
+[[example]]
+name = "test_layout"
+path = "@path@/examples/test_layout.rs"
 
-[dependencies.gio]
-version = ""
-features = ["v2_44"]
+[features]
+gio_v0_5 = []
+gtk_v0_5 = []
 
-[dependencies.glib]
+# Dependencies which don't change based on build flags
+[dependencies.cairo-sys-rs]
 version = ""
-features = ["v2_44"]
 
 [dependencies.glib-sys]
 version = ""
 features = ["v2_44"]
 
-[dependencies.gtk]
-version = "0.5.*"
-features = ["v3_22"]
-
 [dependencies.gtk-sys]
 version = ""
 features = ["v3_22"]
 
-
-[lib]
-name = "rs"
-path = "src/lib.rs"
-crate-type = ["staticlib", "rlib"]
+[dependencies]
+maplit = "1.0.*"
+serde = { version = "1.0.*", features = ["derive"] }
+serde_yaml = "0.8.*"
+xkbcommon = { version = "0.4.*", features = ["wayland"] }
+# Here is inserted the Cargo.deps file


=====================================
cargo.sh
=====================================
@@ -13,5 +13,10 @@ CARGO_TARGET_DIR="$(pwd)"
 export CARGO_TARGET_DIR
 
 cd "$SOURCE_DIR"
-cargo "$@"
+
+# the 'run" command takes arguments at the end,
+# so --manifest-path must not be last
+CMD="$1"
+shift
+cargo "$CMD" --manifest-path "$CARGO_TARGET_DIR"/Cargo.toml "$@"
 


=====================================
data/keyboards/br.yaml
=====================================
@@ -0,0 +1,78 @@
+---
+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     , 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     period Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "à À á Á ã Ã â Â é É"
+        - "show_symbols   ê Ê í Í ó Ó ô Ô"
+        - "show_letters        õ Õ ú Ú ü Ü period BackSpace"
+    symbols:
+        - "@ # $ % - + ÷ × = ≠"
+        - "( ) § & < > / * { }"
+        - "show_numbers_from_symbols     º \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        period 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: "1ã"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "1ã"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    period:
+        outline: "special"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"


=====================================
data/keyboards/it.yaml
=====================================
@@ -13,22 +13,22 @@ views:
         - "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        , period Return"
+        - "show_numbers show_eschars preferences         space        , . 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 show_eschars preferences         space        ? period Return"
+        - "show_numbers show_eschars preferences         space        ? . Return"
     numbers:
         - "1 2 3 4 5 6 7 8 9 0"
         - "@ # € % & - _ + ( )"
         - "show_symbols   , \" ' colon ; ! ?  BackSpace"
-        - "show_letters show_eschars preferences         space        ? period Return"
+        - "show_letters show_eschars preferences         space        ? . Return"
     symbols:
         - "~ ` | · √ π τ ÷ × ¶"
         - "© ® £ $ ¥ ^ ° * { }"
         - "show_numbers   \\ / < > = [ ]  BackSpace"
-        - "show_letters show_eschars preferences         space        ? period Return"
+        - "show_letters show_eschars preferences         space        ? . Return"
     eschars:
         - "á é í ó ú Á É Í Ó Ú"
         - "à è ì ò « » ù ! { }"
@@ -76,12 +76,10 @@ buttons:
             set_view: "eschars"
         outline: "altline"
         label: "àè"
-    period:
-        outline: "default"
-        label: "."
     space:
         outline: "spaceline"
         label: " "
+        text: " "
     Return:
         outline: "altline"
         icon: "key-enter"


=====================================
data/keyboards/terminal.yaml
=====================================
@@ -1,38 +1,44 @@
 ---
 outlines:
-    default: { width: 35.33, height: 52 }
-    action:  { width: 59,    height: 52 }
-    altline: { width: 52.67, height: 52 }
-    wide: { width: 59, height: 52 }
-    spaceline: { width: 140, height: 52 }
-    special: { width: 44, height: 52 }
+    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 ↑ ↓ ← →"
         - "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_actions Return"
     upper:
+        - "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  BackSpace"
         - "show_numbers preferences      space        show_actions Return"
     numbers:
+        - "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"
         - "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 Del PgUp ↑ PgDn"
-        - "show_letters Home End ← ↓ →"
+        - "Esc Tab Pause Insert Up Del"
+        - "show_letters Menu Break Left Down Right"
 
 buttons:
     Shift_L:
@@ -132,28 +138,67 @@ buttons:
     Del:
         outline: "action"
         keysym: "Delete"
-    Home:
+    Insert:
+        outline: "action"
+        keysym: "Insert"
+    Menu:
+        outline: "action"
+        keysym: "Menu"
+    Pause:
+        outline: "action"
+        keysym: "Pause"
+    Menu:
+        outline: "action"
+        keysym: "Menu"
+    Break:
         outline: "action"
+        keysym: "Break"
+    Home:
+        outline: "small"
         keysym: "Home"
     End:
-        outline: "action"
+        outline: "small"
         keysym: "End"
     PgUp:
-        outline: "action"
+        outline: "small"
         keysym: "Page_Up"
     PgDn:
-        outline: "action"
+        outline: "small"
         keysym: "Page_Down"
     "↑":
-        outline: "action"
+        outline: "small"
         keysym: "Up"
     "↓":
-        outline: "action"
+        outline: "small"
         keysym: "Down"
     "←":
-        outline: "action"
+        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"
 


=====================================
data/style-Adwaita:dark.css
=====================================
@@ -40,6 +40,10 @@ sq_button.action {
     font-size: 0.75em;
 }
 
+sq_button.small {
+    font-size: 0.5em;
+}
+
 #Return {
     background: #1c71d8;
     border-color: #1a5fb4;


=====================================
data/style.css
=====================================
@@ -43,6 +43,10 @@ sq_button.action {
     font-size: 0.75em;
 }
 
+sq_button.small {
+    font-size: 0.5em;
+}
+
 #Return {
     background: @theme_selected_bg_color; /* #1c71d8; */
     border-color: @borders; /*#1a5fb4;*/


=====================================
debian/changelog
=====================================
@@ -1,3 +1,37 @@
+squeekboard (1.9.3) amber-phone; urgency=medium
+
+  [ Björn Tantau ]
+  * Show more useful keys at the same time.
+  * Add Ctrl and Alt modifier keys.
+  * Add missing Ê key.
+  * Make f-keys slightly wider.
+  * Add Menu key.
+
+  [ Guido Günther ]
+  * d/rules: Only remove Cargo.lock if it exists
+  * eek: Drop libcanberra usage
+  * debian: Build-depend on libfeedback
+  * eek-gtk-keyboard: Trigger event feedback on button press (Closes: #166)
+
+  [ Dorota Czaplejewicz ]
+  * build: Add missing gio-unix dependency
+  * build: Make compatible with Debian Bullseye
+  * debian: Add amber to legacy distro list
+  * ci: Add amber job
+  * debian: Require lsb-release
+  * size: Hardcode size to work around screen rotation
+  * ci: Re-add x64 Buster build
+  * italian: Fix space and period
+
+  [ Sebastian Krzyszkowiak ]
+  * Revert "Merge branch 'btantau-master-patch-76686' into 'master'"
+  * Terminal layout: another approach
+
+  [ Luís Fernando Stürmer da Rosa ]
+  * Brazilian Portuguese Keyboard Layout.
+
+ -- Sebastian Krzyszkowiak <sebastian.krzyszkowiak at puri.sm>  Wed, 05 Aug 2020 16:16:08 +0200
+
 squeekboard (1.9.2) amber-phone; urgency=medium
 
   [ Dorota Czaplejewicz ]


=====================================
debian/control
=====================================
@@ -25,6 +25,7 @@ Build-Depends:
  librust-serde-yaml-0.8-dev (>= 0.8),
  librust-xkbcommon-0.4+wayland-dev (>= 0.4),
  libwayland-dev (>= 1.16),
+ lsb-release,
  rustc,
  wayland-protocols (>= 1.14),
 Standards-Version: 4.1.3


=====================================
debian/gbp.conf
=====================================
@@ -0,0 +1,5 @@
+[DEFAULT]
+debian-branch = debian/master
+debian-tag = debian/%(version)s
+upstream-branch = upstream/latest
+upstream-tag = v%(version)s


=====================================
debian/rules
=====================================
@@ -3,13 +3,20 @@
 export CARGO_HOME = $(CURDIR)/debian/cargo
 export DEB_BUILD_MAINT_OPTIONS = hardening=+all
 
+distrel := $(shell lsb_release --codename --short)
+ifneq (,$(filter $(distrel),buster amber))
+	legacy = true
+else
+	legacy = false
+endif
+
 %:
 	dh $@ --builddirectory=_build --buildsystem=meson
 
 # The Debian version of linked-hash-map doesn't provide any hash,
 # causing Cargo to refuse to build with a crates.io copy
-build-arch:
+override_dh_auto_configure:
 	[ ! -f Cargo.lock ] || rm Cargo.lock
-	dh $@ --builddirectory=_build --buildsystem=meson
+	dh_auto_configure -- -Dlegacy=$(legacy)
 
 override_dh_autoreconf:


=====================================
doc/hacking.md
=====================================
@@ -175,10 +175,11 @@ All Cargo dependencies must be selected in the version available in PureOS, and
 
 Dependencies must be specified in `Cargo.toml` with 2 numbers: "major.minor". Since bugfix version number is meant to not affect the interface, this allows for safe updates.
 
-`Cargo.lock` is used for remembering the revisions of all Rust dependencies. It should be updated often, preferably with each bugfix revision, and in a commit on its own:
+`Cargo.lock` is used for remembering the revisions of all Rust dependencies. It must correspond to the default dependency configuration: without flags to use older or newer versions of dependencies. It should be updated often, preferably with each bugfix revision, and in a commit on its own:
 
 ```
 cd build_dir
+ninja build src/Cargo.toml
 sh /source_path/cargo.sh update
 ninja test
 ```


=====================================
meson.build
=====================================
@@ -1,7 +1,7 @@
 project(
     'squeekboard',
     'c', 'rust',
-    version: '1.8.0',
+    version: '1.9.3',
     license: 'GPLv3',
     meson_version: '>=0.51.0',
     default_options: [
@@ -61,6 +61,32 @@ summary = [
 ]
 message('\n'.join(summary))
 
+# Rust deps are changing, depending on compile flags. Cargo can't handle it alone.
+cargo_toml_in = files('Cargo.toml.in')
+path_data = configuration_data()
+path_data.set('path', meson.source_root())
+cargo_toml_base = configure_file(
+    input: 'Cargo.toml.in',
+    output: 'Cargo.toml.base',
+    configuration: path_data,
+)
+
+
+cargo_deps = files('Cargo.deps')
+
+if get_option('legacy') == true
+    cargo_build_flags += ['--features', 'gtk_v0_5,gio_v0_5']
+    cargo_deps = files('Cargo.deps.legacy')
+endif
+    
+cat = find_program('cat')
+cargo_toml = custom_target(
+    'Cargo.toml',
+    output: 'Cargo.toml',
+    command: [cat, cargo_toml_base, cargo_deps],
+    capture: true,
+)
+
 dep_cargo = find_program('cargo')
 cargo_script = find_program('cargo.sh')
 cargo_build = find_program('cargo_build.sh')


=====================================
meson_options.txt
=====================================
@@ -6,3 +6,7 @@ option('depdatadir',
 option('tests',
        type: 'boolean', value: true,
        description: 'Whether to compile unit tests')
+
+option('legacy',
+       type: 'boolean', value: false,
+       description: 'Build with Deban Buster versions of dependencies')


=====================================
src/data.rs
=====================================
@@ -741,10 +741,19 @@ mod tests {
     use std::error::Error as ErrorTrait;
     use ::logging::ProblemPanic;
 
+    const THIS_FILE: &str = file!();
+
+    fn path_from_root(file: &'static str) -> PathBuf {
+        PathBuf::from(THIS_FILE)
+            .parent().unwrap()
+            .parent().unwrap()
+            .join(file)
+    }
+
     #[test]
     fn test_parse_path() {
         assert_eq!(
-            Layout::from_file(PathBuf::from("tests/layout.yaml")).unwrap(),
+            Layout::from_file(path_from_root("tests/layout.yaml")).unwrap(),
             Layout {
                 margins: Margins { top: 0f64, bottom: 0f64, side: 0f64 },
                 views: hashmap!(
@@ -771,7 +780,7 @@ mod tests {
     /// Check if the default protection works
     #[test]
     fn test_empty_views() {
-        let out = Layout::from_file(PathBuf::from("tests/layout2.yaml"));
+        let out = Layout::from_file(path_from_root("tests/layout2.yaml"));
         match out {
             Ok(_) => assert!(false, "Data mistakenly accepted"),
             Err(e) => {
@@ -789,7 +798,7 @@ mod tests {
 
     #[test]
     fn test_extra_field() {
-        let out = Layout::from_file(PathBuf::from("tests/layout3.yaml"));
+        let out = Layout::from_file(path_from_root("tests/layout3.yaml"));
         match out {
             Ok(_) => assert!(false, "Data mistakenly accepted"),
             Err(e) => {
@@ -808,7 +817,7 @@ mod tests {
     
     #[test]
     fn test_layout_punctuation() {
-        let out = Layout::from_file(PathBuf::from("tests/layout_key1.yaml"))
+        let out = Layout::from_file(path_from_root("tests/layout_key1.yaml"))
             .unwrap()
             .build(ProblemPanic).0
             .unwrap();
@@ -823,7 +832,7 @@ mod tests {
 
     #[test]
     fn test_layout_unicode() {
-        let out = Layout::from_file(PathBuf::from("tests/layout_key2.yaml"))
+        let out = Layout::from_file(path_from_root("tests/layout_key2.yaml"))
             .unwrap()
             .build(ProblemPanic).0
             .unwrap();
@@ -839,7 +848,7 @@ mod tests {
     /// Test multiple codepoints
     #[test]
     fn test_layout_unicode_multi() {
-        let out = Layout::from_file(PathBuf::from("tests/layout_key3.yaml"))
+        let out = Layout::from_file(path_from_root("tests/layout_key3.yaml"))
             .unwrap()
             .build(ProblemPanic).0
             .unwrap();
@@ -916,7 +925,7 @@ mod tests {
 
     #[test]
     fn test_layout_margins() {
-        let out = Layout::from_file(PathBuf::from("tests/layout_margins.yaml"))
+        let out = Layout::from_file(path_from_root("tests/layout_margins.yaml"))
             .unwrap()
             .build(ProblemPanic).0
             .unwrap();


=====================================
src/meson.build
=====================================
@@ -36,6 +36,7 @@ cc = meson.get_compiler('c')
 deps = [
 #  dependency('glib-2.0', version: '>=2.26.0'),
   dependency('gio-2.0', version: '>=2.26.0'),
+  dependency('gio-unix-2.0'),
   dependency('gnome-desktop-3.0', version: '>=3.0'),
   dependency('gtk+-3.0', version: '>=3.0'),
   dependency('libfeedback-0.0'),
@@ -55,7 +56,8 @@ rslibs = custom_target(
     output: ['librs.a'],
     install: false,
     console: true,
-    command: [cargo_build] + cargo_build_flags + ['@OUTPUT@', '--lib']
+    command: [cargo_build] + ['@OUTPUT@', '--lib'] + cargo_build_flags,
+    depends: cargo_toml,
 )
 
 build_rstests = custom_target(
@@ -69,17 +71,17 @@ build_rstests = custom_target(
     output: ['src'],
     install: false,
     console: true,
-    command: [cargo_script, 'test', '--no-run'],
-    depends: rslibs, # no point building tests if the code itself fails
+    command: [cargo_script, 'test', '--no-run'] + cargo_build_flags,
+    depends: [rslibs, cargo_toml], # no point building tests if the code itself fails
 )
 
 test(
     'rstest',
     cargo_script,
-    args: ['test'],
+    args: ['test'] + cargo_build_flags,
     # this is a whole Carg-based test suite, let it run for a while
     timeout: 900,
-    depends: build_rstests,
+    depends: [build_rstests, cargo_toml],
 )
 
 libsqueekboard = static_library('libsqueekboard',


=====================================
src/popover.rs
=====================================
@@ -11,11 +11,15 @@ use ::logging;
 use ::manager;
 use ::resources;
 
+// Traits
 use gio::ActionMapExt;
 use gio::SettingsExt;
+#[cfg(feature = "gio_v0_5")]
 use gio::SimpleActionExt;
 use glib::translate::FromGlibPtrNone;
 use glib::variant::ToVariant;
+#[cfg(not(feature = "gtk_v0_5"))]
+use gtk::BuilderExtManual;
 use gtk::PopoverExt;
 use gtk::WidgetExt;
 use std::io::Write;


=====================================
src/resources.rs
=====================================
@@ -11,9 +11,11 @@ use std::iter::FromIterator;
 // and what a convenience layout. "_wide" is not a layout,
 // neither is "number"
 const KEYBOARDS: &[(*const str, *const str)] = &[
-    // layouts
+    // layouts: us must be left as first, as it is the,
+    // fallback layout. The others should be alphabetical.
     ("us", include_str!("../data/keyboards/us.yaml")),
     ("us_wide", include_str!("../data/keyboards/us_wide.yaml")),
+    ("br", include_str!("../data/keyboards/br.yaml")),
     ("de", include_str!("../data/keyboards/de.yaml")),
     ("de_wide", include_str!("../data/keyboards/de_wide.yaml")),
     ("dk", include_str!("../data/keyboards/dk.yaml")),


=====================================
src/server-context-service.c
=====================================
@@ -87,6 +87,18 @@ on_notify_unmap (GObject    *object,
     g_object_set (context, "visible", FALSE, NULL);
 }
 
+static uint32_t
+calculate_height(int32_t width)
+{
+    uint32_t height = 180;
+    if (width < 360 && width > 0) {
+        height = ((unsigned)width * 7 / 12); // to match 360×210
+    } else if (width < 540) {
+        height = 180 + (540 - (unsigned)width) * 30 / 180; // smooth transition
+    }
+    return height;
+}
+
 static void
 on_surface_configure(PhoshLayerSurface *surface, ServerContextService *context)
 {
@@ -97,7 +109,12 @@ on_surface_configure(PhoshLayerSurface *surface, ServerContextService *context)
                  "configured-height", &height,
                  NULL);
 
-    guint desired_height = squeek_uiman_get_perceptual_height(context->manager);
+    // When the geometry event comes after surface.configure,
+    // this entire height calculation does nothing.
+    // guint desired_height = squeek_uiman_get_perceptual_height(context->manager);
+    // Temporarily use old method, until the size manager is complete.
+    guint desired_height = calculate_height(width);
+
     guint configured_height = (guint)height;
     // if height was already requested once but a different one was given
     // (for the same set of surrounding properties),


=====================================
tests/meson.build
=====================================
@@ -49,6 +49,7 @@ endforeach
 # and the need to call it manually
 foreach layout : [
     'us', 'us_wide',
+    'br',
     'de', 'de_wide',
     'dk',
     'es',
@@ -69,7 +70,9 @@ foreach layout : [
     test(
         'test_layout_' + layout,
         cargo_script,
-        args: ['run', '--example', 'test_layout', layout]
+        args: ['run'] + cargo_build_flags
+            + [ '--example', 'test_layout', '--', layout],
+        workdir: meson.build_root(),
     )
 endforeach
 


=====================================
tools/meson.build
=====================================
@@ -12,8 +12,9 @@ test_layout = custom_target('squeekboard-test-layout',
     build_always_stale: true,
     output: ['squeekboard-test-layout'],
     console: true,
-    command: [cargo_build] + cargo_build_flags
-        + ['--rename', 'test_layout', '@OUTPUT@', '--bin', 'test_layout'],
+    command: [cargo_build, '--rename', 'test_layout', '@OUTPUT@', '--bin', 'test_layout']
+        + cargo_build_flags,
     install: true,
     install_dir: bindir,
+    depends: cargo_toml,
 )



View it on GitLab: https://salsa.debian.org/DebianOnMobile-team/squeekboard/-/compare/40b3172de83561566ccbecc96de0c76aa73a4720...d3661398e21903f33bcd9bcbf71c0d4428abe42b

-- 
View it on GitLab: https://salsa.debian.org/DebianOnMobile-team/squeekboard/-/compare/40b3172de83561566ccbecc96de0c76aa73a4720...d3661398e21903f33bcd9bcbf71c0d4428abe42b
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-on-mobile-maintainers/attachments/20200926/a9d0495c/attachment-0001.html>


More information about the Debian-on-mobile-maintainers mailing list