public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/proj/guru:dev commit in: x11-misc/squeekboard/files/, x11-misc/squeekboard/
@ 2021-06-22 17:58 Marco Scardovi
  0 siblings, 0 replies; 2+ messages in thread
From: Marco Scardovi @ 2021-06-22 17:58 UTC (permalink / raw
  To: gentoo-commits

commit:     ac041841174f531f9c4feac0f02eb3427c56387d
Author:     Marco Scardovi <marco <AT> scardovi <DOT> com>
AuthorDate: Tue Jun 22 17:57:52 2021 +0000
Commit:     Marco Scardovi <marco <AT> scardovi <DOT> com>
CommitDate: Tue Jun 22 17:57:52 2021 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=ac041841

x11-misc/squeekboard: add package

squeekboard is the keyboard for phosh

Package-Manager: Portage-3.0.20, Repoman-3.0.3
Signed-off-by: Marco Scardovi <marco <AT> scardovi.com>

 x11-misc/squeekboard/Manifest                  |  45 +++
 x11-misc/squeekboard/files/448.patch           | 470 +++++++++++++++++++++++++
 x11-misc/squeekboard/files/450.patch           |  38 ++
 x11-misc/squeekboard/files/terminal.yaml       | 157 +++++++++
 x11-misc/squeekboard/metadata.xml              |  11 +
 x11-misc/squeekboard/squeekboard-1.14.0.ebuild |  98 ++++++
 6 files changed, 819 insertions(+)

diff --git a/x11-misc/squeekboard/Manifest b/x11-misc/squeekboard/Manifest
new file mode 100644
index 000000000..c48753229
--- /dev/null
+++ b/x11-misc/squeekboard/Manifest
@@ -0,0 +1,45 @@
+DIST atk-0.7.0.crate 43814 BLAKE2B dc1d569df7a53506b50d484f7d04240ec3179b3915abacc5790310fa0b03587df07cf3ec5ed9922a877eb2d82c1cf3eef937bace3e2cf1b30895be27131b80a3 SHA512 4369d48607d58cfde6fd1dbe006eca2ffbf0212750d991b0a534586e75496e9cb99636e2b916ae3e6c3cbc0aa3345bddf1b2e7d2561a9c16769646029be9041b
+DIST atk-sys-0.9.1.crate 21064 BLAKE2B 752cd426951051af696413725189286f465433388dfa84efc2ef6963af6b387b56cee830fd595c39049f9721f4c9b3c51828c3d17c7362b85a6cf648e17e5dbb SHA512 a2eb083abfd585bb7bea6415c1b0a6981c1e071b11dbbd41442d5ab438219d13ab28bf957640616644fb11760d2371c929f379ab414b8b00b297f3af25680a92
+DIST bitflags-1.2.1.crate 16745 BLAKE2B 0fa6d3ce44aad7616d5cd02aad8c1d0b0fed4022650eb43067c4a72e6fc88da05442674fa51826e4858a47c9de233e1ba2229820af094197cd11bb416ceffb2b SHA512 ad89b3798845e23737a620bba581c2ff1ff3e15bac12555c765e201d2c0b90ecea0cdbc5b5b1a3fa9858c385e8e041f8226f5acfae5bbbe9925643fff2bf3f0b
+DIST cairo-rs-0.7.1.crate 45803 BLAKE2B f12439219c6df2d35464d2e20c7e5b9a2ab3a5c92a87fd93f491b4e483553d4b078ff787e0e502f58a97521918a9e0633ffdf765c9087edd257087c9c72ba870 SHA512 3a8825c352ebea72d7cfc947654e85e0395990c4572913858d71b6c7eabb60efec0a9e9fdebb409530aed5535edaec5fcfb0f77f1f2dd6794503feff2e384ba7
+DIST cairo-sys-rs-0.9.2.crate 11650 BLAKE2B ac664b7976de57907ae543c1afc2fd8fe166b2a147e1be31d6f60aec0b08949bb53b9f59c16e02f33a299a225f8e8202c5d7ad744c6aa8c5f03ec421a773ff33 SHA512 cab877b76951212710c7e668093fda218ac9c7e1e26fcffc448d759a3f968a7faeeea347025189a1aee7579b15916c141d0d727f986bb7061183a695b52bf39b
+DIST cc-1.0.68.crate 55936 BLAKE2B 9bbbeda78b8c3aca487e770cddbe11bf4686424bd33d023ad66e1fbdfc8dcbc17fd85c15905e0edbed8745202c01aea13d4f03a7f8f655e5806da152565419aa SHA512 faca9aa91488808f920f1d88422cc8a69790aa6dbd7bd2cc5d08a579d248faafd0fd675e8499e56aef6715398c278db1fa2079511d211d41aa65741de5d5ac8c
+DIST clap-2.33.3.crate 201925 BLAKE2B bec9c866481c5b3fddeb314f68af9bce38fc421e42816182de3209e8ea3447b72cf033e6251eea27fe974eff8085b7d98cdd2911b5cc0ec6b4bf4c750deb8a25 SHA512 3eb0fd648e2e3f9e5ff69a5e6cf0d867304fe18523accd036f28a86de368e4774088a6936c108ccc045092c539fe7f7494ea96420ebf6b4bec16880cea84bedf
+DIST dtoa-0.4.8.crate 16175 BLAKE2B 5fff15e66c2edeb9eb9da89c66389b3a9bbb891d75afc3bb7da4dcbe9cad9e50af318cc8cc01cc7e56730763e8ea8ceb33b9447d1a7fa52a8d0f0d2060a97522 SHA512 fe1701ba2c40988b92f5f4ef78a8c81718b140ff8ca2d04023b09a89440e6ddb53ef36d1ebd9dd3e948428b361ed6611bd24ec1a31b5010c220c555e1f0bf6b8
+DIST fragile-0.3.0.crate 10203 BLAKE2B 3b04d4acc57f5a76a0d2625db8b0d643f2199e175110b47ee40fc82afd3d1d01c75d92e0d1ec798340a93afb939f215504a16346730955b475e321246ed8bc09 SHA512 5307919178a440abf932857162b66b7a1a769513820c55c6827e8031894029f2d84920773899e6ae39ba1d8a8c0da2816ce9af7007416ab4e0e2c115090d8a1c
+DIST gdk-0.11.0.crate 83537 BLAKE2B d616ec093a3ab852d068760f55ed5b39c90389d2a2c320d6a041cda12f98d99e873a0d26803335c3bfadb8289f32f06b2d5a961c16cd18c0baf6e4d91138f607 SHA512 483bbc99f06b9cf23ea3aabd540138711868bbd95bafbac20fdcf56e8e445fb3c44b79ef5f3c43015a21288e19adf399f446f971cf3413498c7d80ac500a98e0
+DIST gdk-pixbuf-0.7.0.crate 15011 BLAKE2B ee46401bd80b5b5f865d7bac2b1ec28e01db657e4e0716b585bc72faebc6bb0ca694811e487a4dcc67d2572fc1e49775382e79abbccc3d8f8caa2f5b5848e9cb SHA512 a413656b7c18acc030225b14134b1481902d19e1845ec73cf430921020dee7c99dd5e5469f60780aed2d3552d83792c6a193ddeba686324284eff2d78cc0b813
+DIST gdk-pixbuf-sys-0.9.1.crate 8641 BLAKE2B 8cbeffd4acbdd38ba43b5b39a84e0d20d9ea0230115f09f8b0c0e95b405027fee1a65e452e2abd2485097036c9f5dca8e01069f51a5651199db9be50aef6087a SHA512 22ca779b0065289da0bbc024bbc23cabc5e2fc81f8ea781107a83e41504edcf42d3dcde7079b091f1070596566df1f2180d226dcab21d8c388d7505d0fb171a7
+DIST gdk-sys-0.9.1.crate 59958 BLAKE2B 9e0c30d138b908ff56dfe9db5b0ed75a1ed14c9f3158df3b595346888cc40c08d8df8d204ab59fff8391a87396cf6c29a9881c8dfb5fdeb3e8d82bff76869961 SHA512 9064f3a0f9e1512ca1eeb5a0ca27234d908948f53b0c4d7d38aeb184ca83846812187fa485a35bb311f778e4d14e25ac0353cd3c4b8d5002fd03e9bce2f82dcd
+DIST gio-0.7.0.crate 123602 BLAKE2B 6f1d4e5f1bcba83495c5c5181d7ac39b437c33ff016d26292763266a49aca4320e2db9ae8dd5c2a1036739a10c709133575e411bcc24f80eda7f294b3df2a61b SHA512 2d46776fc64b9d63fd8dbd485ea3fc80a49bb86ff945628c81f33f877243c747fadae3bbb6ce228ca3e96870655a57c4d2881ee1454da2e310a7ad83d4a0e952
+DIST gio-sys-0.9.1.crate 70278 BLAKE2B 58e92398a7df7faf06c5f6ab0bdd1d5fa5e31dca2c578b3b0156dd710a9ad1e65a896441ac68e81aae245bcc98e6d8c964ad5cfd83efeea17594e8aca3e18124 SHA512 d254e9fc43d7e173491e8f39afb6314f9dc357576f1d278669dac9d95c487d4cc91a31a248ae11ca1800c397dc528f55844ef909d8da474c09ae69c291b75a02
+DIST glib-0.8.2.crate 121579 BLAKE2B 34de3fc241b2dc40f5c57fb0474fba70b838babc7acbb57391dc5182f3f29f27be4585a2856f0ff99a9cebb7521689e094f8e7e494abbe78c863ce63c4fd3f39 SHA512 7b86a1581c30cd9de24d9f1bd915dc020679237b62cef34ef85e07a0aa9151e26b0356536281fc769aeb4788265310f5d6becd63ed503e0662a284f17228a0fd
+DIST glib-sys-0.9.1.crate 49213 BLAKE2B b3e44c85bcb5ea059bc1c67ffd02cd1893f11a1b40401a224383a5e824580bc5a3fc3700b507aa00fa04d249c00ff15d4f529add549cc791ce7c364c96180077 SHA512 03a2f045399e7605830d5a8616380a55854aec25c9f97b2d9f994e94ba1d0eee3026022f2b7980b84f81bc5a617efa71ffe6b6f63fcb19ae117b39432cb6f5d9
+DIST gobject-sys-0.9.1.crate 17741 BLAKE2B 1fcfd31fd63f03a80ed4656b8eab30deecb469f622da1da36448df1f9d4b7908d8627c52c1fd4a879a3e92ca1faf13c9e209df13084f97874fa0a0319f126d0c SHA512 4ba8006daa38f9311341bc1fe9a2fd0ccc6fbc69321fd615186f81d73e388e7368f994a4be0d82fd4c2c4761973ce4fdec978571fb8ac2bc268748dccb6a0522
+DIST gtk-0.7.0.crate 499790 BLAKE2B ce5459f73c2ef5e9189e002bb9cbf659eaa1f10dcd8b7bb97613d9f30f6cf0736c712bb1ac1ad0205ab15aad97e3c368932dc47a9d16743dd8fc1f3cc024965c SHA512 e018b6f6807b5c06691f11cd942f665cb754c1cb7863498c1bd4f4bd539525349f1672e1dccb116a464134ff72641f8109d430d2a83898afbfa207442b840a46
+DIST gtk-sys-0.9.2.crate 125577 BLAKE2B fb1ac82f8e6f49cdee5e49666b85d5b3ed578a526d2e74f0c0913d57b7fac113fb9f35a5ff840ca6a29c0b0d4549e5ce0dd84d54b9adb8ecaeea73ed3ff07738 SHA512 4e3c61289dfed69743332f7b7986a8a1a63ba0b62bfc6e673a8ca44c9b25db485aeb5a28bd69cb3f6984dae1f2de06035f3441b2d212296b13df742f13bae1c1
+DIST lazy_static-1.4.0.crate 10443 BLAKE2B 25b2e61bbac48f0dcbc79c81d7bf01f2403d8269ecb6be3ea6147bd00f7a588df15a91f44dfc18ada19b21faa71de4637c7d493a8628cbecd0e547d74e616a23 SHA512 e124c0521ec7c950f3c4a066821918da7a9c6e711115d98009ae7c351928fdddead852e7596fea5937a9c30e4e4ce8eee7099b20248b5d6e3b2494b6a6d88cb8
+DIST libc-0.2.97.crate 517712 BLAKE2B ad769579a8e89e9e0ea6a08b8fd82b69a3a299721d63b63efcb436b333021c097933565e86f4b66ffcce6a589718bed2aacb36b80a936dd3dda763b9c0c240d7 SHA512 9b94a43d7da1e419900f7a016d5eb958bc42a006e1bb621ab8e2be2167e91f05cee81144c25e81a85c1b1ea2a26ff88980a4cc292fd42db8b09c5c49bf5531ed
+DIST linked-hash-map-0.5.4.crate 16166 BLAKE2B d6bfa091265355ae124885f76212c968f2a87af80f3d306c13223ab7fa1d6a449ffda8d042bdb887501d2ffd8adbc638f18cdfeefc16c39a1eb9f57b7c658bf0 SHA512 2938883357ec0e7d9c9fc5746063ae419c97250ddceeb8de3480c89e97e0a29d175cc9199bdb3ddf81cd5d6a2a1e319ee1644a7309eea96058221074cf87c0b6
+DIST maplit-1.0.2.crate 8871 BLAKE2B 3cf975d35de2d2fbd50227a6d2c5e72227e99197b620c8f29be97bd3666ec162deeef0d9e6bd327a063f175201beeb73c4ed27272449b1df0b78238b2d36ca22 SHA512 917b5cf665e12b687035c895b60b2ae05622963f495f5693515fd24d56f49e95a06ffced68606d061bd20822c655100035930673fd4b0d4790168763b6961a9f
+DIST memmap-0.7.0.crate 15214 BLAKE2B 44a5bde9b85b2c378fd4c6ebfaa322ef8d0076472d6c7322f7aa95b8aba3514fd5212b4429eb369d30d0327377e36c626de474ea5e1f764bd4fae595680a04f8 SHA512 3a7c7f963111c2afeaa0381aaa6a57f0f57600392693ee1807d54771bc058ea0f86ac6e8afbe858e45f9f17b685430bf256dba1126b8074ace3aafc07bc14bfa
+DIST pango-0.7.0.crate 41066 BLAKE2B 5bb58db5a2221925784993eb110fe9e55db5f31b90a6c174d560266dafabe9e7115f3e482f3bd1fe173309889e0617003b11ed65866411412b7f2066306e324c SHA512 6bccd8f21b467877a36473220da34fa2f67657b3ae24577f03d77fdac0cbc69d68624809697645e16742f1a3a499ec0b36a9a3723ca33fd34fd665290246c27f
+DIST pango-sys-0.9.1.crate 21273 BLAKE2B 62cc1f12c8a30710d3b56eeef89afc00c1c0153526818d3bc82636f1c3e13dfbd49812e54045b6dbf6f80205c036f58050d1bdc6425e165dfa87987bfccf1575 SHA512 4fd2f3f74497f134946b33a2822b054758c390c345ebd4375540a7adcc000fadf562d8e8ecb4fb05b3e5824982dc4156c450ee61f6b8a1315d5dd488124b10ac
+DIST pkg-config-0.3.19.crate 15451 BLAKE2B dc23b5ef12719b4b3d2fc5c93c087399ba954a5e127be91b26619466d5d7422e71684d02905304dca65273d69b66338d94c0642e3810a14df845ef507ddc0bfb SHA512 42bc13c4e39c8f71690db527d815884acdfd2ccf5fbfea700c6ed60257e852cdcb1c443e7774409e51da53612b0ff0aa165554b99fd0cba973f94a8df52982d9
+DIST proc-macro2-1.0.27.crate 38625 BLAKE2B a55e2404e3c7444c6da8aca6c0e7702b865ec56cfd2c20fec319e737fc83b00bbf505c15dadaa8740d5a6d07c089ed4854a173049b1be9872bba132ae7cbc8db SHA512 3227bcaa726e88bfdb1b4d1243a4eb216ad2394a7a3b4b258de342ac76a1ab1a39a07f28f3490e42e2c2034176bf0d84b1c1fcadba2444c0abcc5878b02f93a4
+DIST quote-1.0.9.crate 25042 BLAKE2B 26ef31e89fd2f0cc21ff65f8072f30c7977ac634d2536cf9845a0894d6659f62a96cd0a6ee48f7706036c2c1b898ef8c9167bd62714ad0c9cba4fb02f30922af SHA512 dd6cdaea183b85400531ef01e56657edbec0d8f7c27898c1e591b72dff755fa5875b33ca320bd65be0e9aecfc6a61ec119a4bd1291e9f2057fca642ab5b198c8
+DIST regex-1.3.9.crate 236683 BLAKE2B 29bd39b138a8168015bb7a6b36bb5f7f9918b7c00bca28a720f3dffd5b805d3374a6648a04792585e85922e099faf547e5d02aeb23008b7802424351633ea23a SHA512 425713d3eeb4132d4056e6c1a08bc2fa5032b9971987c531b5707a9b5670ae15f037bd68921f1545580801957d1ea283eff87e533477364c7f76823800202f74
+DIST regex-syntax-0.6.25.crate 293293 BLAKE2B d5ca0dbc26b03c6a1818026f9a69cd226ec934e7c64094d0ebe843052b648617ffae7aa3a074f8da46d03c46996d8b547d8916576342000bd9711089b3e57d73 SHA512 a3d31f82aadc6be1796f76c03152ff24f37fe42d6ce27fb98e2f55ab102f86502bc37ccd563f6e0eba61aab20d002184c618517b678b3b93cb8f0497cc046ca5
+DIST serde-1.0.126.crate 75138 BLAKE2B 51f37473483da8a05670a213f02e119173e4c97a49313cf855ff3e547bb0969fcd84ccb7d1554e7c1761b388ac5cd917cd7e680e3ac23d2504412f75401c0937 SHA512 f22ec92b2eaed0819610ae2c4471eb12aa3a4209f5fbfe829c2329010813837d11ffc02d7809335df6a978cf7944095fae79c7593324dfd49becc7633dd626ed
+DIST serde_derive-1.0.126.crate 54189 BLAKE2B fa3ca8ef2e7d9bd29e682ac7df066bab05301c2b92dc8f12d254a7e8b29e8d8a83d5405def3050db00f7e396fdd14f18cfac7918a5218d4b6822463c7c0f5c5d SHA512 e3c430b82def037d2f1dcc96ff7dc075636c81ab8f12e07ba09d232bc8224204c7b0cddc994c1ec98400e50340e03d6bad0dfa624b4d869e5f29d72b293d30bf
+DIST serde_yaml-0.8.17.crate 40805 BLAKE2B 8f70ed3efa5afa1f8f45b2c107463799269d745705ac2b90e8ce69c090f4f52721d49723dc48967bdbab30efe853c661631063fe16bc3ceaed4d0158f90ffbcb SHA512 3e7a4baa156ca1d9655a76fbaccd2d87b6929165972f6390316c9d4d55fc9815827e3c4bbb8a1c594f048dcc9c3fd6f4c55370df27f6257dbc28e2066274a7c1
+DIST squeekboard-1.14.0.tar.gz 172736 BLAKE2B 91400b87cc4a13a26b2af9a5a7793c72b903f143aeceb22057763bb75062bac759a26abf7a86fc5832457c390043c5fc5cea7ee51a0323b053e66778cdac01b2 SHA512 7caeae42a3870dcd6b4bda438215219f2fc249f33d57a203ed8987107dd327f1559d6ac9e2c4cf86beafb1cb2203101f7540a9d5cad5a5b7f5ef790d3d8f92eb
+DIST syn-1.0.73.crate 232706 BLAKE2B c580f9ab914c54e731c8503c9b9d577d05032edb6bd12d7a183a3c0e3532fcf24196479a9ee40d09cb7e09ba6d94add36e338331affc2625058ce54419621ee4 SHA512 b37beb1b6d483cfdbc44d806af9955cdf52c4b0d5f918782019b089d06e107c7e23ced343a3bece20235a24752783795ebba8e603b61a6302e82ee7027843d8b
+DIST textwrap-0.11.0.crate 17322 BLAKE2B 257428908342774593bbd3528fcdae710712ff54e8a711393a24356d8ba0e16e466a4b20c05f942c48ca76b3b5b5aaa90ec202f782cad892caa8b71ccf124da6 SHA512 f5c0fe4f28ff1a3a0931e8e235b5157a45f67967985bcc752418c5ec3481fca44a8ae4800088889b37e8cd0533f53d3c456d5ffd19b767b3f83a87b49a2e209a
+DIST unicode-width-0.1.8.crate 16732 BLAKE2B 5aa7b87eef1322e4151a3fcf981ade311b8fa030527d7561815950e58d3f15156163dfe34da6a708c37dccc3f7652bf7fc2cd899fe8bb0118b67c4113ff3a2d2 SHA512 0abba6da6981a2451e01d93bbd47652c46eb6fb07cc0214f33259fb29945bfd5ee2b302e883ddca8f68e921635f222701b7310e7da2a5e225f854980d1e474b0
+DIST unicode-xid-0.2.2.crate 14955 BLAKE2B 6c6da49ac08dbd8b3248272224d6bff96b9cd1f36029b1937a58a0b929c3a48326053305ed49e73edd70f572f5abbc4817cedc899c69e3457805ad056669f6af SHA512 92ffd0dd34e3ca235ecf110b38c447d3ec1faa23d76c112457f28d432f92fa6b5f428bc5e1bfd278f361f55426dd96e19ecb0d3eff6cf250892f069c52bd89a8
+DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97
+DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2
+DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513
+DIST xkbcommon-0.4.0.crate 57500 BLAKE2B 16f1dddb82ff216088af9724ed4dc83469625e2c40e1ffed18b10b544f4e1dd8a7cc3570f5650407040adf09fc767e6d6c8474d838a3054ec11fa25d422eb321 SHA512 968dba8b059de25219cab2416aaa696cd937013cdbad33e77007f1ba64ff0d393dc6c6ba9ac9991292837a1e69af99fedbeeb46b8320b1d3906e8cb7a24ec372
+DIST yaml-rust-0.4.5.crate 47783 BLAKE2B 3e888c5cc7afb43eaf3aaab2b6f47b86df164a66eb54d4e166b965cc84b1e06cd17bd992a0d6ee175d9a73a76e2b44a13167246383ed054afcf3cc1710b309cb SHA512 7621dc8dfd5e7d4a7a8805b2a7e8319b63b852367655f2359d4e3e8fec6c4fad52d75c46ce1161e4c674eac0780b757ce9d34e664e304d8d2beec7afa0363ea0

diff --git a/x11-misc/squeekboard/files/448.patch b/x11-misc/squeekboard/files/448.patch
new file mode 100644
index 000000000..07956402e
--- /dev/null
+++ b/x11-misc/squeekboard/files/448.patch
@@ -0,0 +1,470 @@
+From 93e4345e823dbb9d9ee187d1f5b32c6dd7dffdd3 Mon Sep 17 00:00:00 2001
+From: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>
+Date: Mon, 5 Apr 2021 08:17:07 +0000
+Subject: [PATCH 1/2] layout: Take into account text purpose again
+
+---
+ src/data.rs | 17 +++++++++++------
+ 1 file changed, 11 insertions(+), 6 deletions(-)
+
+diff --git a/src/data.rs b/src/data.rs
+index e5aa3910..71711c3f 100644
+--- a/src/data.rs
++++ b/src/data.rs
+@@ -239,13 +239,18 @@ fn load_layout_data_with_fallback(
+         .map(PathBuf::from)
+         .or_else(|| xdg::data_path("squeekboard/keyboards"));
+ 
+-    log_print!(
+-        logging::Level::Debug, 
+-        "load_layout_data_with_fallback() -> name:{}, purpose:{:?}, overlay:{}, layout_name:{}", 
+-        name, purpose, overlay, &name
+-    );
++    let layout_purpose = match overlay {
++        "" => match purpose {
++            ContentPurpose::Number => "number",
++            ContentPurpose::Digits => "number",
++            ContentPurpose::Phone => "number",
++            ContentPurpose::Terminal => "terminal",
++            _ => "",
++        },
++        overlay => overlay,
++    };
+ 
+-    for (kind, source) in list_layout_sources(&name, kind, overlay, path) {
++    for (kind, source) in list_layout_sources(&name, kind, layout_purpose, path) {
+         let layout = load_layout_data(source.clone());
+         match layout {
+             Err(e) => match (e, source) {
+-- 
+GitLab
+
+
+From 190876903281774bf0f304269ad7f047f44482b1 Mon Sep 17 00:00:00 2001
+From: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>
+Date: Mon, 5 Apr 2021 10:36:41 +0000
+Subject: [PATCH 2/2] layouts: Make selection testable
+
+From now on, all the parameters for loading layout are handled inside a single pure function, which makes them possible to test.
+
+As a side benefit, the old preference order function composed of a mess of nested procedures is gone.
+---
+ src/data.rs   | 312 ++++++++++++++++++++++++++++++++++----------------
+ src/layout.rs |   2 +-
+ 2 files changed, 212 insertions(+), 102 deletions(-)
+
+diff --git a/src/data.rs b/src/data.rs
+index 71711c3f..29cd4ba4 100644
+--- a/src/data.rs
++++ b/src/data.rs
+@@ -69,8 +69,12 @@ pub mod c {
+         let overlay_str = as_str(&overlay)
+                 .expect("Bad overlay name")
+                 .expect("Empty overlay name");
++        let overlay_str = match overlay_str {
++            "" => None,
++            other => Some(other),
++        };
+ 
+-        let (kind, layout) = load_layout_data_with_fallback(&name, type_, variant, &overlay_str);
++        let (kind, layout) = load_layout_data_with_fallback(&name, type_, variant, overlay_str);
+         let layout = ::layout::Layout::new(layout, kind);
+         Box::into_raw(Box::new(layout))
+     }
+@@ -113,97 +117,156 @@ impl fmt::Display for DataSource {
+     }
+ }
+ 
+-type LayoutSource = (ArrangementKind, DataSource);
+-
+-/// Lists possible sources, with 0 as the most preferred one
+-/// Trying order: native lang of the right kind, native base,
+-/// fallback lang of the right kind, fallback base
+-/// The `purpose` argument is not ContentPurpose,
+-/// but rather ContentPurpose and overlay in one.
+-fn list_layout_sources(
+-    name: &str,
+-    kind: ArrangementKind,
+-    purpose: &str,
+-    keyboards_path: Option<PathBuf>,
+-) -> Vec<LayoutSource> {
+-    // Just a simplification of often called code.
+-    let add_by_name = |
+-        mut ret: Vec<LayoutSource>,
+-        purpose: &str,
+-        name: &str,
+-        kind: &ArrangementKind,
+-    | -> Vec<LayoutSource> {
+-        let name = if purpose == "" { name.into() }
+-            else { format!("{}/{}", purpose, name) };
+-
+-        if let Some(path) = keyboards_path.clone() {
+-            ret.push((
+-                kind.clone(),
+-                DataSource::File(
+-                    path.join(name.clone())
+-                        .with_extension("yaml")
+-                )
+-            ))
+-        }
+-
+-        ret.push((
+-            kind.clone(),
+-            DataSource::Resource(name)
+-        ));
+-        ret
+-    };
+-
+-    // Another grouping.
+-    let add_by_kind = |ret, purpose: &str, name: &str, kind| {
+-        let ret = match kind {
+-            &ArrangementKind::Base => ret,
+-            kind => add_by_name(
+-                ret,
+-                purpose,
+-                &name_with_arrangement(name.into(), kind),
+-                kind,
+-            ),
+-        };
+-
+-        add_by_name(ret, purpose, name, &ArrangementKind::Base)
++/* All functions in this family carry around ArrangementKind,
++ * because it's not guaranteed to be preserved,
++ * and the resulting layout needs to know which version was loaded.
++ * See `squeek_layout_get_kind`.
++ * Possible TODO: since this is used only in styling,
++ * and makes the below code nastier than needed, maybe it should go.
++ */
++
++/// Returns ordered names treating `name` as the base name,
++/// ignoring any `+` inside.
++fn _get_arrangement_names(name: &str, arrangement: ArrangementKind)
++    -> Vec<(ArrangementKind, String)>
++{
++    let name_with_arrangement = match arrangement {    
++        ArrangementKind::Base => name.into(),
++        ArrangementKind::Wide => format!("{}_wide", name),
+     };
+-
+-    fn name_with_arrangement(
+-        name: String,
+-        kind: &ArrangementKind,
+-    ) -> String {
+-        match kind {    
+-            ArrangementKind::Base => name,
+-            ArrangementKind::Wide => name + "_wide",
+-        }
++    
++    let mut ret = Vec::new();
++    if name_with_arrangement != name {
++        ret.push((arrangement, name_with_arrangement));
+     }
++    ret.push((ArrangementKind::Base, name.into()));
++    ret
++}
+ 
+-    let ret = Vec::new();
+-
+-    // Name as given takes priority.
+-    let ret = add_by_kind(ret, purpose, name, &kind);
+-
+-    // Then try non-alternative name if applicable (`us` for `us+colemak`).
+-    let ret = {
++/// Returns names accounting for any `+` in the `name`,
++/// including the fallback to the default layout.
++fn get_preferred_names(name: &str, kind: ArrangementKind)
++    -> Vec<(ArrangementKind, String)>
++{
++    let mut ret = _get_arrangement_names(name, kind);
++    
++    let base_name_preferences = {
+         let mut parts = name.splitn(2, '+');
+         match parts.next() {
+             Some(base) => {
+-                // The name is already equal to base, so it was already added.
+-                if base == name { ret }
+-                else {
+-                    add_by_kind(ret, purpose, base, &kind)
++                // The name is already equal to base, so nothing to add
++                if base == name {
++                    vec![]
++                } else {
++                    _get_arrangement_names(base, kind)
+                 }
+             },
+             // The layout's base name starts with a "+". Weird but OK.
+             None => {
+                 log_print!(logging::Level::Surprise, "Base layout name is empty: {}", name);
+-                ret
++                vec![]
+             }
+         }
+     };
++    
++    ret.extend(base_name_preferences.into_iter());
++    let fallback_names = _get_arrangement_names(FALLBACK_LAYOUT_NAME, kind);
++    ret.extend(fallback_names.into_iter());
++    ret
++}
++
++/// Includes the subdirectory before the forward slash.
++type LayoutPath = String;
++
++// This is only used inside iter_fallbacks_with_meta.
++// Placed at the top scope
++// because `use LayoutPurpose::*;`
++// complains about "not in scope" otherwise.
++// This seems to be a Rust 2015 edition problem.
++/// Helper for determining where to look up the layout.
++enum LayoutPurpose<'a> {
++    Default,
++    Special(&'a str),
++}
++
++/// Returns the directory string
++/// where the layout should be looked up, including the slash.
++fn get_directory_string(
++    content_purpose: ContentPurpose,
++    overlay: Option<&str>) -> String
++{
++    use self::LayoutPurpose::*;
++
++    let layout_purpose = match overlay {
++        None => match content_purpose {
++            ContentPurpose::Number => Special("number"),
++            ContentPurpose::Digits => Special("number"),
++            ContentPurpose::Phone => Special("number"),
++            ContentPurpose::Terminal => Special("terminal"),
++            _ => Default,
++        },
++        Some(overlay) => Special(overlay),
++    };
++
++    // For intuitiveness,
++    // default purpose layouts are stored in the root directory,
++    // as they correspond to typical text
++    // and are seen the most often.
++    match layout_purpose {
++        Default => "".into(),
++        Special(purpose) => format!("{}/", purpose),
++    }
++}
+ 
+-    add_by_kind(ret, purpose, FALLBACK_LAYOUT_NAME.into(), &kind)
++/// Returns an iterator over all fallback paths.
++fn to_layout_paths(
++    name_fallbacks: Vec<(ArrangementKind, String)>,
++    content_purpose: ContentPurpose,
++    overlay: Option<&str>,
++) -> impl Iterator<Item=(ArrangementKind, LayoutPath)> {
++    let prepend_directory = get_directory_string(content_purpose, overlay);
++
++    name_fallbacks.into_iter()
++        .map(move |(arrangement, name)|
++            (arrangement, format!("{}{}", prepend_directory, name))
++        )
++}
+ 
++type LayoutSource = (ArrangementKind, DataSource);
++
++fn to_layout_sources(
++    layout_paths: impl Iterator<Item=(ArrangementKind, LayoutPath)>,
++    filesystem_path: Option<PathBuf>,
++) -> impl Iterator<Item=LayoutSource> {
++    layout_paths.flat_map(move |(arrangement, layout_path)| {
++        let mut sources = Vec::new();
++        if let Some(path) = &filesystem_path {
++            sources.push((
++                arrangement,
++                DataSource::File(
++                    path.join(&layout_path)
++                        .with_extension("yaml")
++                )
++            ));
++        };
++        sources.push((arrangement, DataSource::Resource(layout_path.clone())));
++        sources.into_iter()
++    })
++}
++
++/// Returns possible sources, with first as the most preferred one.
++/// Trying order: native lang of the right kind, native base,
++/// fallback lang of the right kind, fallback base
++fn iter_layout_sources(
++    name: &str,
++    arrangement: ArrangementKind,
++    purpose: ContentPurpose,
++    ui_overlay: Option<&str>,
++    layout_storage: Option<PathBuf>,
++) -> impl Iterator<Item=LayoutSource> {
++    let names = get_preferred_names(name, arrangement);
++    let paths = to_layout_paths(names, purpose, ui_overlay);
++    to_layout_sources(paths, layout_storage)
+ }
+ 
+ fn load_layout_data(source: DataSource)
+@@ -231,7 +294,7 @@ fn load_layout_data_with_fallback(
+     name: &str,
+     kind: ArrangementKind,
+     purpose: ContentPurpose,
+-    overlay: &str,
++    overlay: Option<&str>,
+ ) -> (ArrangementKind, ::layout::LayoutData) {
+ 
+     // Build the path to the right keyboard layout subdirectory
+@@ -239,18 +302,7 @@ fn load_layout_data_with_fallback(
+         .map(PathBuf::from)
+         .or_else(|| xdg::data_path("squeekboard/keyboards"));
+ 
+-    let layout_purpose = match overlay {
+-        "" => match purpose {
+-            ContentPurpose::Number => "number",
+-            ContentPurpose::Digits => "number",
+-            ContentPurpose::Phone => "number",
+-            ContentPurpose::Terminal => "terminal",
+-            _ => "",
+-        },
+-        overlay => overlay,
+-    };
+-
+-    for (kind, source) in list_layout_sources(&name, kind, layout_purpose, path) {
++    for (kind, source) in iter_layout_sources(&name, kind, purpose, overlay, path) {
+         let layout = load_layout_data(source.clone());
+         match layout {
+             Err(e) => match (e, source) {
+@@ -982,11 +1034,11 @@ mod tests {
+     
+     /// First fallback should be to builtin, not to FALLBACK_LAYOUT_NAME
+     #[test]
+-    fn fallbacks_order() {
+-        let sources = list_layout_sources("nb", ArrangementKind::Base, "", None);
++    fn test_fallback_basic_builtin() {
++        let sources = iter_layout_sources("nb", ArrangementKind::Base, ContentPurpose::Normal, None, None);
+         
+         assert_eq!(
+-            sources,
++            sources.collect::<Vec<_>>(),
+             vec!(
+                 (ArrangementKind::Base, DataSource::Resource("nb".into())),
+                 (
+@@ -996,14 +1048,36 @@ mod tests {
+             )
+         );
+     }
++    
++    /// Prefer loading from file system before builtin.
++    #[test]
++    fn test_preferences_order_path() {
++        let sources = iter_layout_sources("nb", ArrangementKind::Base, ContentPurpose::Normal, None, Some(".".into()));
++        
++        assert_eq!(
++            sources.collect::<Vec<_>>(),
++            vec!(
++                (ArrangementKind::Base, DataSource::File("./nb.yaml".into())),
++                (ArrangementKind::Base, DataSource::Resource("nb".into())),
++                (
++                    ArrangementKind::Base,
++                    DataSource::File("./us.yaml".into())
++                ),
++                (
++                    ArrangementKind::Base,
++                    DataSource::Resource("us".into())
++                ),
++            )
++        );
++    }
+ 
+     /// If layout contains a "+", it should reach for what's in front of it too.
+     #[test]
+-    fn fallbacks_order_base() {
+-        let sources = list_layout_sources("nb+aliens", ArrangementKind::Base, "", None);
++    fn test_preferences_order_base() {
++        let sources = iter_layout_sources("nb+aliens", ArrangementKind::Base, ContentPurpose::Normal, None, None);
+ 
+         assert_eq!(
+-            sources,
++            sources.collect::<Vec<_>>(),
+             vec!(
+                 (ArrangementKind::Base, DataSource::Resource("nb+aliens".into())),
+                 (ArrangementKind::Base, DataSource::Resource("nb".into())),
+@@ -1016,22 +1090,58 @@ mod tests {
+     }
+ 
+     #[test]
+-    fn fallbacks_terminal_order_base() {
+-        let sources = list_layout_sources("nb+aliens", ArrangementKind::Base, "terminal", None);
++    fn test_preferences_order_arrangement() {
++        let sources = iter_layout_sources("nb", ArrangementKind::Wide, ContentPurpose::Normal, None, None);
+ 
+         assert_eq!(
+-            sources,
++            sources.collect::<Vec<_>>(),
++            vec!(
++                (ArrangementKind::Wide, DataSource::Resource("nb_wide".into())),
++                (ArrangementKind::Base, DataSource::Resource("nb".into())),
++                (
++                    ArrangementKind::Wide,
++                    DataSource::Resource("us_wide".into())
++                ),
++                (
++                    ArrangementKind::Base,
++                    DataSource::Resource("us".into())
++                ),
++            )
++        );
++    }
++
++    #[test]
++    fn test_preferences_order_overlay() {
++        let sources = iter_layout_sources("nb", ArrangementKind::Base, ContentPurpose::Normal, Some("terminal"), None);
++
++        assert_eq!(
++            sources.collect::<Vec<_>>(),
+             vec!(
+-                (ArrangementKind::Base, DataSource::Resource("terminal/nb+aliens".into())),
+                 (ArrangementKind::Base, DataSource::Resource("terminal/nb".into())),
+                 (
+                     ArrangementKind::Base,
+-                    DataSource::Resource(format!("terminal/{}", FALLBACK_LAYOUT_NAME))
++                    DataSource::Resource("terminal/us".into())
+                 ),
+             )
+         );
+     }
+-    
++
++    #[test]
++    fn test_preferences_order_hint() {
++        let sources = iter_layout_sources("nb", ArrangementKind::Base, ContentPurpose::Terminal, None, None);
++
++        assert_eq!(
++            sources.collect::<Vec<_>>(),
++            vec!(
++                (ArrangementKind::Base, DataSource::Resource("terminal/nb".into())),
++                (
++                    ArrangementKind::Base,
++                    DataSource::Resource("terminal/us".into())
++                ),
++            )
++        );
++    }
++
+     #[test]
+     fn unicode_keysym() {
+         let keysym = xkb::keysym_from_name(
+diff --git a/src/layout.rs b/src/layout.rs
+index 413795f0..0b8607b0 100644
+--- a/src/layout.rs
++++ b/src/layout.rs
+@@ -600,7 +600,7 @@ impl View {
+ }
+ 
+ /// The physical characteristic of layout for the purpose of styling
+-#[derive(Clone, PartialEq, Debug)]
++#[derive(Clone, Copy, PartialEq, Debug)]
+ pub enum ArrangementKind {
+     Base = 0,
+     Wide = 1,
+-- 
+GitLab
+

diff --git a/x11-misc/squeekboard/files/450.patch b/x11-misc/squeekboard/files/450.patch
new file mode 100644
index 000000000..d50e412a8
--- /dev/null
+++ b/x11-misc/squeekboard/files/450.patch
@@ -0,0 +1,38 @@
+From 4fdce2802ad3ed8705c9629aa5622c89c70eabae Mon Sep 17 00:00:00 2001
+From: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>
+Date: Wed, 7 Apr 2021 15:26:18 +0000
+Subject: [PATCH] layouts: Stop assuming that layout name always changes on
+ switch
+
+Layout type switching outside of overlay was always done with gsettings in the middle, assuming that all clicks on languages in the popover result in a gsettings event. That's a bad assumption if there's only one xkb lang present.
+
+This is a simple work around. A better solution would be to turn the entire system of layout switching into a central object that receives messages about changes that need to be applied, and then applies them.
+---
+ src/popover.rs | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/src/popover.rs b/src/popover.rs
+index 92103869..0d909b82 100644
+--- a/src/popover.rs
++++ b/src/popover.rs
+@@ -213,7 +213,16 @@ fn set_visible_layout(
+     layout_id: LayoutId,
+ ) {
+     match layout_id {
+-        LayoutId::System { kind, name } => set_layout(kind, name),
++        LayoutId::System { kind, name } => {
++            unsafe {
++                use std::ptr;
++                manager::c::eekboard_context_service_set_overlay(
++                    manager,
++                    ptr::null(),
++                );
++            }
++            set_layout(kind, name);
++        }
+         LayoutId::Local(name) => {
+             let name = CString::new(name.as_str()).unwrap();
+             let name_ptr = name.as_ptr();
+-- 
+GitLab
+

diff --git a/x11-misc/squeekboard/files/terminal.yaml b/x11-misc/squeekboard/files/terminal.yaml
new file mode 100644
index 000000000..d3b382a9e
--- /dev/null
+++ b/x11-misc/squeekboard/files/terminal.yaml
@@ -0,0 +1,157 @@
+---
+outlines:
+    default: { width: 50, height: 50 }
+    altline: { width: 70, height: 50 }
+    spaceline: { width: 160, height: 50 }
+    special: { width: 35.33, height: 50 }
+    action: { width: 85, height: 35 }
+    fkey: { width: 41, height: 50 }
+
+views:
+    base:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "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_symbols show_eschars preferences         space        , . Return"
+        - "Ctrl Tab ↑ ↓ ← →"
+    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_symbols show_eschars preferences         space        < > Return"
+        - "Alt Esc PgUp PgDn Home End"
+    symbols:
+        - "~ ` ´ - _ + = ° © ®"
+        - "[ ] { } \\ | ÷ × √"
+        - "; : ' \" · € £ ¥"
+        - "Del / ? § π τ µ ¶ BackSpace"
+        - "show_letters show_eschars preferences         space        < > Return"
+        - "Ctrl Tab ↑ ↓ ← →"
+    eschars:
+        - "F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12"
+        - "ä è é ö ü Ä È É Ö Ü"
+        - "à â ê î ô À Â È Î Ô"
+        - "Del  « » ç Ç æ œ ß  BackSpace"
+        - "show_symbols show_eschars preferences         space        „ “ Return"
+        - "Alt Esc PgUp PgDn Home End"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    Ctrl:
+        modifier: "Control"
+        outline: "action"
+        label: "Ctrl"
+    Alt:
+        modifier: "Alt"
+        outline: "action"
+        label: "Alt"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: "erase"
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "altline"
+        label: "abc"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "[{/"
+    show_eschars:
+        action:
+            locking:
+                lock_view: "eschars"
+                unlock_view: "base"
+        outline: "altline"
+        label: "func"
+    space:
+        outline: "spaceline"
+        label: " "
+        text: " "
+    Return:
+        outline: "altline"
+        icon: "key-enter"
+        keysym: "Return"
+    F1:
+        outline: "fkey"
+        keysym: "F1"
+    F2:
+        outline: "fkey"
+        keysym: "F2"
+    F3:
+        outline: "fkey"
+        keysym: "F3"
+    F4:
+        outline: "fkey"
+        keysym: "F4"
+    F5:
+        outline: "fkey"
+        keysym: "F5"
+    F6:
+        outline: "fkey"
+        keysym: "F6"
+    F7:
+        outline: "fkey"
+        keysym: "F7"
+    F8:
+        outline: "fkey"
+        keysym: "F8"
+    F9:
+        outline: "fkey"
+        keysym: "F9"
+    F10:
+        outline: "fkey"
+        keysym: "F10"
+    F11:
+        outline: "fkey"
+        keysym: "F11"
+    F12:
+        outline: "fkey"
+        keysym: "F12"
+    Esc:
+        outline: "action"
+        keysym: "Escape"
+    Home:
+        outline: "action"
+        keysym: "Home"
+    End:
+        outline: "action"
+        keysym: "End"
+    Del:
+        outline: "altline"
+        keysym: "Delete"
+    PgUp:
+        outline: "action"
+        keysym: "Page_Up"
+    PgDn:
+        outline: "action"
+        keysym: "Page_Down"
+    Tab:
+        outline: "action"
+        keysym: "Tab"
+    "↑":
+        outline: "action"
+        keysym: "Up"
+    "↓":
+        outline: "action"
+        keysym: "Down"
+    "←":
+        outline: "action"
+        keysym: "Left"
+    "→":
+        outline: "action"
+        keysym: "Right"

diff --git a/x11-misc/squeekboard/metadata.xml b/x11-misc/squeekboard/metadata.xml
new file mode 100644
index 000000000..a0b29038e
--- /dev/null
+++ b/x11-misc/squeekboard/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<maintainer type="person">
+		<email>marco@scardovi.com</email>
+		<name>Marco Scardovi</name>
+	</maintainer>
+	<upstream>
+		<remote-id type="github">atom/atom</remote-id>
+	</upstream>
+</pkgmetadata>

diff --git a/x11-misc/squeekboard/squeekboard-1.14.0.ebuild b/x11-misc/squeekboard/squeekboard-1.14.0.ebuild
new file mode 100644
index 000000000..c907141ea
--- /dev/null
+++ b/x11-misc/squeekboard/squeekboard-1.14.0.ebuild
@@ -0,0 +1,98 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CRATES="
+	atk-0.7.0
+	atk-sys-0.9.1
+	bitflags-1.2.1
+	cairo-rs-0.7.1
+	cairo-sys-rs-0.9.2
+	cc-1.0.68
+	clap-2.33.3
+	dtoa-0.4.8
+	fragile-0.3.0
+	gdk-0.11.0
+	gdk-pixbuf-0.7.0
+	gdk-pixbuf-sys-0.9.1
+	gdk-sys-0.9.1
+	gio-0.7.0
+	gio-sys-0.9.1
+	glib-0.8.2
+	glib-sys-0.9.1
+	gobject-sys-0.9.1
+	gtk-0.7.0
+	gtk-sys-0.9.2
+	lazy_static-1.4.0
+	libc-0.2.97
+	linked-hash-map-0.5.4
+	maplit-1.0.2
+	memmap-0.7.0
+	pango-0.7.0
+	pango-sys-0.9.1
+	pkg-config-0.3.19
+	proc-macro2-1.0.27
+	quote-1.0.9
+	regex-1.3.9
+	regex-syntax-0.6.25
+	serde-1.0.126
+	serde_derive-1.0.126
+	serde_yaml-0.8.17
+	syn-1.0.73
+	textwrap-0.11.0
+	unicode-width-0.1.8
+	unicode-xid-0.2.2
+	winapi-0.3.9
+	winapi-i686-pc-windows-gnu-0.4.0
+	winapi-x86_64-pc-windows-gnu-0.4.0
+	xkbcommon-0.4.0
+	yaml-rust-0.4.5
+"
+inherit cargo gnome2-utils meson xdg
+
+MY_COMMIT="19630334b07d6d2949932cf05018925cb3ab9613"
+
+DESCRIPTION="Virtual keyboard supporting Wayland, built primarily for the Librem 5 phone"
+HOMEPAGE="https://source.puri.sm/Librem5/squeekboard"
+SRC_URI="https://source.puri.sm/Librem5/squeekboard/-/archive/${MY_COMMIT}.tar.gz -> ${P}.tar.gz"
+SRC_URI+=" $(cargo_crate_uris ${CRATES})"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+DEPEND="
+	${PYTHON_DEPS}
+	dev-libs/feedbackd
+	gnome-base/gnome-desktop
+	media-fonts/noto-emoji
+	x11-libs/gtk+:3
+"
+RDEPEND="${DEPEND}"
+BDEPEND="
+	virtual/pkgconfig
+	dev-util/intltool
+	virtual/rust
+	dev-util/gtk-doc
+"
+
+S="${WORKDIR}/${PN}-${MY_COMMIT}"
+
+QA_FLAGS_IGNORED="/usr/bin/squeekboard-test-layout"
+
+src_install() {
+	meson_src_install
+	insinto /usr/bin
+	doins "${S}/tools/squeekboard-restyled"
+}
+
+pkg_postinst() {
+	xdg_pkg_postinst
+	gnome2_schemas_update
+}
+
+pkg_postrm() {
+	xdg_pkg_postrm
+	gnome2_schemas_update
+}


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [gentoo-commits] repo/proj/guru:dev commit in: x11-misc/squeekboard/files/, x11-misc/squeekboard/
@ 2021-06-24 12:09 Marco Scardovi
  0 siblings, 0 replies; 2+ messages in thread
From: Marco Scardovi @ 2021-06-24 12:09 UTC (permalink / raw
  To: gentoo-commits

commit:     bfa0e3566c89b4d264de6f71508a4c7e4edb0aaa
Author:     Marco Scardovi <marco <AT> scardovi <DOT> com>
AuthorDate: Thu Jun 24 12:06:44 2021 +0000
Commit:     Marco Scardovi <marco <AT> scardovi <DOT> com>
CommitDate: Thu Jun 24 12:09:05 2021 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=bfa0e356

x11-misc/squeekboard: remove unused files

Package-Manager: Portage-3.0.20, Repoman-3.0.3
Signed-off-by: Marco Scardovi <marco <AT> scardovi.com>

 x11-misc/squeekboard/files/448.patch           | 470 -------------------------
 x11-misc/squeekboard/files/450.patch           |  38 --
 x11-misc/squeekboard/files/terminal.yaml       | 157 ---------
 x11-misc/squeekboard/squeekboard-1.14.0.ebuild |   4 +-
 4 files changed, 2 insertions(+), 667 deletions(-)

diff --git a/x11-misc/squeekboard/files/448.patch b/x11-misc/squeekboard/files/448.patch
deleted file mode 100644
index 07956402e..000000000
--- a/x11-misc/squeekboard/files/448.patch
+++ /dev/null
@@ -1,470 +0,0 @@
-From 93e4345e823dbb9d9ee187d1f5b32c6dd7dffdd3 Mon Sep 17 00:00:00 2001
-From: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>
-Date: Mon, 5 Apr 2021 08:17:07 +0000
-Subject: [PATCH 1/2] layout: Take into account text purpose again
-
----
- src/data.rs | 17 +++++++++++------
- 1 file changed, 11 insertions(+), 6 deletions(-)
-
-diff --git a/src/data.rs b/src/data.rs
-index e5aa3910..71711c3f 100644
---- a/src/data.rs
-+++ b/src/data.rs
-@@ -239,13 +239,18 @@ fn load_layout_data_with_fallback(
-         .map(PathBuf::from)
-         .or_else(|| xdg::data_path("squeekboard/keyboards"));
- 
--    log_print!(
--        logging::Level::Debug, 
--        "load_layout_data_with_fallback() -> name:{}, purpose:{:?}, overlay:{}, layout_name:{}", 
--        name, purpose, overlay, &name
--    );
-+    let layout_purpose = match overlay {
-+        "" => match purpose {
-+            ContentPurpose::Number => "number",
-+            ContentPurpose::Digits => "number",
-+            ContentPurpose::Phone => "number",
-+            ContentPurpose::Terminal => "terminal",
-+            _ => "",
-+        },
-+        overlay => overlay,
-+    };
- 
--    for (kind, source) in list_layout_sources(&name, kind, overlay, path) {
-+    for (kind, source) in list_layout_sources(&name, kind, layout_purpose, path) {
-         let layout = load_layout_data(source.clone());
-         match layout {
-             Err(e) => match (e, source) {
--- 
-GitLab
-
-
-From 190876903281774bf0f304269ad7f047f44482b1 Mon Sep 17 00:00:00 2001
-From: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>
-Date: Mon, 5 Apr 2021 10:36:41 +0000
-Subject: [PATCH 2/2] layouts: Make selection testable
-
-From now on, all the parameters for loading layout are handled inside a single pure function, which makes them possible to test.
-
-As a side benefit, the old preference order function composed of a mess of nested procedures is gone.
----
- src/data.rs   | 312 ++++++++++++++++++++++++++++++++++----------------
- src/layout.rs |   2 +-
- 2 files changed, 212 insertions(+), 102 deletions(-)
-
-diff --git a/src/data.rs b/src/data.rs
-index 71711c3f..29cd4ba4 100644
---- a/src/data.rs
-+++ b/src/data.rs
-@@ -69,8 +69,12 @@ pub mod c {
-         let overlay_str = as_str(&overlay)
-                 .expect("Bad overlay name")
-                 .expect("Empty overlay name");
-+        let overlay_str = match overlay_str {
-+            "" => None,
-+            other => Some(other),
-+        };
- 
--        let (kind, layout) = load_layout_data_with_fallback(&name, type_, variant, &overlay_str);
-+        let (kind, layout) = load_layout_data_with_fallback(&name, type_, variant, overlay_str);
-         let layout = ::layout::Layout::new(layout, kind);
-         Box::into_raw(Box::new(layout))
-     }
-@@ -113,97 +117,156 @@ impl fmt::Display for DataSource {
-     }
- }
- 
--type LayoutSource = (ArrangementKind, DataSource);
--
--/// Lists possible sources, with 0 as the most preferred one
--/// Trying order: native lang of the right kind, native base,
--/// fallback lang of the right kind, fallback base
--/// The `purpose` argument is not ContentPurpose,
--/// but rather ContentPurpose and overlay in one.
--fn list_layout_sources(
--    name: &str,
--    kind: ArrangementKind,
--    purpose: &str,
--    keyboards_path: Option<PathBuf>,
--) -> Vec<LayoutSource> {
--    // Just a simplification of often called code.
--    let add_by_name = |
--        mut ret: Vec<LayoutSource>,
--        purpose: &str,
--        name: &str,
--        kind: &ArrangementKind,
--    | -> Vec<LayoutSource> {
--        let name = if purpose == "" { name.into() }
--            else { format!("{}/{}", purpose, name) };
--
--        if let Some(path) = keyboards_path.clone() {
--            ret.push((
--                kind.clone(),
--                DataSource::File(
--                    path.join(name.clone())
--                        .with_extension("yaml")
--                )
--            ))
--        }
--
--        ret.push((
--            kind.clone(),
--            DataSource::Resource(name)
--        ));
--        ret
--    };
--
--    // Another grouping.
--    let add_by_kind = |ret, purpose: &str, name: &str, kind| {
--        let ret = match kind {
--            &ArrangementKind::Base => ret,
--            kind => add_by_name(
--                ret,
--                purpose,
--                &name_with_arrangement(name.into(), kind),
--                kind,
--            ),
--        };
--
--        add_by_name(ret, purpose, name, &ArrangementKind::Base)
-+/* All functions in this family carry around ArrangementKind,
-+ * because it's not guaranteed to be preserved,
-+ * and the resulting layout needs to know which version was loaded.
-+ * See `squeek_layout_get_kind`.
-+ * Possible TODO: since this is used only in styling,
-+ * and makes the below code nastier than needed, maybe it should go.
-+ */
-+
-+/// Returns ordered names treating `name` as the base name,
-+/// ignoring any `+` inside.
-+fn _get_arrangement_names(name: &str, arrangement: ArrangementKind)
-+    -> Vec<(ArrangementKind, String)>
-+{
-+    let name_with_arrangement = match arrangement {    
-+        ArrangementKind::Base => name.into(),
-+        ArrangementKind::Wide => format!("{}_wide", name),
-     };
--
--    fn name_with_arrangement(
--        name: String,
--        kind: &ArrangementKind,
--    ) -> String {
--        match kind {    
--            ArrangementKind::Base => name,
--            ArrangementKind::Wide => name + "_wide",
--        }
-+    
-+    let mut ret = Vec::new();
-+    if name_with_arrangement != name {
-+        ret.push((arrangement, name_with_arrangement));
-     }
-+    ret.push((ArrangementKind::Base, name.into()));
-+    ret
-+}
- 
--    let ret = Vec::new();
--
--    // Name as given takes priority.
--    let ret = add_by_kind(ret, purpose, name, &kind);
--
--    // Then try non-alternative name if applicable (`us` for `us+colemak`).
--    let ret = {
-+/// Returns names accounting for any `+` in the `name`,
-+/// including the fallback to the default layout.
-+fn get_preferred_names(name: &str, kind: ArrangementKind)
-+    -> Vec<(ArrangementKind, String)>
-+{
-+    let mut ret = _get_arrangement_names(name, kind);
-+    
-+    let base_name_preferences = {
-         let mut parts = name.splitn(2, '+');
-         match parts.next() {
-             Some(base) => {
--                // The name is already equal to base, so it was already added.
--                if base == name { ret }
--                else {
--                    add_by_kind(ret, purpose, base, &kind)
-+                // The name is already equal to base, so nothing to add
-+                if base == name {
-+                    vec![]
-+                } else {
-+                    _get_arrangement_names(base, kind)
-                 }
-             },
-             // The layout's base name starts with a "+". Weird but OK.
-             None => {
-                 log_print!(logging::Level::Surprise, "Base layout name is empty: {}", name);
--                ret
-+                vec![]
-             }
-         }
-     };
-+    
-+    ret.extend(base_name_preferences.into_iter());
-+    let fallback_names = _get_arrangement_names(FALLBACK_LAYOUT_NAME, kind);
-+    ret.extend(fallback_names.into_iter());
-+    ret
-+}
-+
-+/// Includes the subdirectory before the forward slash.
-+type LayoutPath = String;
-+
-+// This is only used inside iter_fallbacks_with_meta.
-+// Placed at the top scope
-+// because `use LayoutPurpose::*;`
-+// complains about "not in scope" otherwise.
-+// This seems to be a Rust 2015 edition problem.
-+/// Helper for determining where to look up the layout.
-+enum LayoutPurpose<'a> {
-+    Default,
-+    Special(&'a str),
-+}
-+
-+/// Returns the directory string
-+/// where the layout should be looked up, including the slash.
-+fn get_directory_string(
-+    content_purpose: ContentPurpose,
-+    overlay: Option<&str>) -> String
-+{
-+    use self::LayoutPurpose::*;
-+
-+    let layout_purpose = match overlay {
-+        None => match content_purpose {
-+            ContentPurpose::Number => Special("number"),
-+            ContentPurpose::Digits => Special("number"),
-+            ContentPurpose::Phone => Special("number"),
-+            ContentPurpose::Terminal => Special("terminal"),
-+            _ => Default,
-+        },
-+        Some(overlay) => Special(overlay),
-+    };
-+
-+    // For intuitiveness,
-+    // default purpose layouts are stored in the root directory,
-+    // as they correspond to typical text
-+    // and are seen the most often.
-+    match layout_purpose {
-+        Default => "".into(),
-+        Special(purpose) => format!("{}/", purpose),
-+    }
-+}
- 
--    add_by_kind(ret, purpose, FALLBACK_LAYOUT_NAME.into(), &kind)
-+/// Returns an iterator over all fallback paths.
-+fn to_layout_paths(
-+    name_fallbacks: Vec<(ArrangementKind, String)>,
-+    content_purpose: ContentPurpose,
-+    overlay: Option<&str>,
-+) -> impl Iterator<Item=(ArrangementKind, LayoutPath)> {
-+    let prepend_directory = get_directory_string(content_purpose, overlay);
-+
-+    name_fallbacks.into_iter()
-+        .map(move |(arrangement, name)|
-+            (arrangement, format!("{}{}", prepend_directory, name))
-+        )
-+}
- 
-+type LayoutSource = (ArrangementKind, DataSource);
-+
-+fn to_layout_sources(
-+    layout_paths: impl Iterator<Item=(ArrangementKind, LayoutPath)>,
-+    filesystem_path: Option<PathBuf>,
-+) -> impl Iterator<Item=LayoutSource> {
-+    layout_paths.flat_map(move |(arrangement, layout_path)| {
-+        let mut sources = Vec::new();
-+        if let Some(path) = &filesystem_path {
-+            sources.push((
-+                arrangement,
-+                DataSource::File(
-+                    path.join(&layout_path)
-+                        .with_extension("yaml")
-+                )
-+            ));
-+        };
-+        sources.push((arrangement, DataSource::Resource(layout_path.clone())));
-+        sources.into_iter()
-+    })
-+}
-+
-+/// Returns possible sources, with first as the most preferred one.
-+/// Trying order: native lang of the right kind, native base,
-+/// fallback lang of the right kind, fallback base
-+fn iter_layout_sources(
-+    name: &str,
-+    arrangement: ArrangementKind,
-+    purpose: ContentPurpose,
-+    ui_overlay: Option<&str>,
-+    layout_storage: Option<PathBuf>,
-+) -> impl Iterator<Item=LayoutSource> {
-+    let names = get_preferred_names(name, arrangement);
-+    let paths = to_layout_paths(names, purpose, ui_overlay);
-+    to_layout_sources(paths, layout_storage)
- }
- 
- fn load_layout_data(source: DataSource)
-@@ -231,7 +294,7 @@ fn load_layout_data_with_fallback(
-     name: &str,
-     kind: ArrangementKind,
-     purpose: ContentPurpose,
--    overlay: &str,
-+    overlay: Option<&str>,
- ) -> (ArrangementKind, ::layout::LayoutData) {
- 
-     // Build the path to the right keyboard layout subdirectory
-@@ -239,18 +302,7 @@ fn load_layout_data_with_fallback(
-         .map(PathBuf::from)
-         .or_else(|| xdg::data_path("squeekboard/keyboards"));
- 
--    let layout_purpose = match overlay {
--        "" => match purpose {
--            ContentPurpose::Number => "number",
--            ContentPurpose::Digits => "number",
--            ContentPurpose::Phone => "number",
--            ContentPurpose::Terminal => "terminal",
--            _ => "",
--        },
--        overlay => overlay,
--    };
--
--    for (kind, source) in list_layout_sources(&name, kind, layout_purpose, path) {
-+    for (kind, source) in iter_layout_sources(&name, kind, purpose, overlay, path) {
-         let layout = load_layout_data(source.clone());
-         match layout {
-             Err(e) => match (e, source) {
-@@ -982,11 +1034,11 @@ mod tests {
-     
-     /// First fallback should be to builtin, not to FALLBACK_LAYOUT_NAME
-     #[test]
--    fn fallbacks_order() {
--        let sources = list_layout_sources("nb", ArrangementKind::Base, "", None);
-+    fn test_fallback_basic_builtin() {
-+        let sources = iter_layout_sources("nb", ArrangementKind::Base, ContentPurpose::Normal, None, None);
-         
-         assert_eq!(
--            sources,
-+            sources.collect::<Vec<_>>(),
-             vec!(
-                 (ArrangementKind::Base, DataSource::Resource("nb".into())),
-                 (
-@@ -996,14 +1048,36 @@ mod tests {
-             )
-         );
-     }
-+    
-+    /// Prefer loading from file system before builtin.
-+    #[test]
-+    fn test_preferences_order_path() {
-+        let sources = iter_layout_sources("nb", ArrangementKind::Base, ContentPurpose::Normal, None, Some(".".into()));
-+        
-+        assert_eq!(
-+            sources.collect::<Vec<_>>(),
-+            vec!(
-+                (ArrangementKind::Base, DataSource::File("./nb.yaml".into())),
-+                (ArrangementKind::Base, DataSource::Resource("nb".into())),
-+                (
-+                    ArrangementKind::Base,
-+                    DataSource::File("./us.yaml".into())
-+                ),
-+                (
-+                    ArrangementKind::Base,
-+                    DataSource::Resource("us".into())
-+                ),
-+            )
-+        );
-+    }
- 
-     /// If layout contains a "+", it should reach for what's in front of it too.
-     #[test]
--    fn fallbacks_order_base() {
--        let sources = list_layout_sources("nb+aliens", ArrangementKind::Base, "", None);
-+    fn test_preferences_order_base() {
-+        let sources = iter_layout_sources("nb+aliens", ArrangementKind::Base, ContentPurpose::Normal, None, None);
- 
-         assert_eq!(
--            sources,
-+            sources.collect::<Vec<_>>(),
-             vec!(
-                 (ArrangementKind::Base, DataSource::Resource("nb+aliens".into())),
-                 (ArrangementKind::Base, DataSource::Resource("nb".into())),
-@@ -1016,22 +1090,58 @@ mod tests {
-     }
- 
-     #[test]
--    fn fallbacks_terminal_order_base() {
--        let sources = list_layout_sources("nb+aliens", ArrangementKind::Base, "terminal", None);
-+    fn test_preferences_order_arrangement() {
-+        let sources = iter_layout_sources("nb", ArrangementKind::Wide, ContentPurpose::Normal, None, None);
- 
-         assert_eq!(
--            sources,
-+            sources.collect::<Vec<_>>(),
-+            vec!(
-+                (ArrangementKind::Wide, DataSource::Resource("nb_wide".into())),
-+                (ArrangementKind::Base, DataSource::Resource("nb".into())),
-+                (
-+                    ArrangementKind::Wide,
-+                    DataSource::Resource("us_wide".into())
-+                ),
-+                (
-+                    ArrangementKind::Base,
-+                    DataSource::Resource("us".into())
-+                ),
-+            )
-+        );
-+    }
-+
-+    #[test]
-+    fn test_preferences_order_overlay() {
-+        let sources = iter_layout_sources("nb", ArrangementKind::Base, ContentPurpose::Normal, Some("terminal"), None);
-+
-+        assert_eq!(
-+            sources.collect::<Vec<_>>(),
-             vec!(
--                (ArrangementKind::Base, DataSource::Resource("terminal/nb+aliens".into())),
-                 (ArrangementKind::Base, DataSource::Resource("terminal/nb".into())),
-                 (
-                     ArrangementKind::Base,
--                    DataSource::Resource(format!("terminal/{}", FALLBACK_LAYOUT_NAME))
-+                    DataSource::Resource("terminal/us".into())
-                 ),
-             )
-         );
-     }
--    
-+
-+    #[test]
-+    fn test_preferences_order_hint() {
-+        let sources = iter_layout_sources("nb", ArrangementKind::Base, ContentPurpose::Terminal, None, None);
-+
-+        assert_eq!(
-+            sources.collect::<Vec<_>>(),
-+            vec!(
-+                (ArrangementKind::Base, DataSource::Resource("terminal/nb".into())),
-+                (
-+                    ArrangementKind::Base,
-+                    DataSource::Resource("terminal/us".into())
-+                ),
-+            )
-+        );
-+    }
-+
-     #[test]
-     fn unicode_keysym() {
-         let keysym = xkb::keysym_from_name(
-diff --git a/src/layout.rs b/src/layout.rs
-index 413795f0..0b8607b0 100644
---- a/src/layout.rs
-+++ b/src/layout.rs
-@@ -600,7 +600,7 @@ impl View {
- }
- 
- /// The physical characteristic of layout for the purpose of styling
--#[derive(Clone, PartialEq, Debug)]
-+#[derive(Clone, Copy, PartialEq, Debug)]
- pub enum ArrangementKind {
-     Base = 0,
-     Wide = 1,
--- 
-GitLab
-

diff --git a/x11-misc/squeekboard/files/450.patch b/x11-misc/squeekboard/files/450.patch
deleted file mode 100644
index d50e412a8..000000000
--- a/x11-misc/squeekboard/files/450.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 4fdce2802ad3ed8705c9629aa5622c89c70eabae Mon Sep 17 00:00:00 2001
-From: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>
-Date: Wed, 7 Apr 2021 15:26:18 +0000
-Subject: [PATCH] layouts: Stop assuming that layout name always changes on
- switch
-
-Layout type switching outside of overlay was always done with gsettings in the middle, assuming that all clicks on languages in the popover result in a gsettings event. That's a bad assumption if there's only one xkb lang present.
-
-This is a simple work around. A better solution would be to turn the entire system of layout switching into a central object that receives messages about changes that need to be applied, and then applies them.
----
- src/popover.rs | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/src/popover.rs b/src/popover.rs
-index 92103869..0d909b82 100644
---- a/src/popover.rs
-+++ b/src/popover.rs
-@@ -213,7 +213,16 @@ fn set_visible_layout(
-     layout_id: LayoutId,
- ) {
-     match layout_id {
--        LayoutId::System { kind, name } => set_layout(kind, name),
-+        LayoutId::System { kind, name } => {
-+            unsafe {
-+                use std::ptr;
-+                manager::c::eekboard_context_service_set_overlay(
-+                    manager,
-+                    ptr::null(),
-+                );
-+            }
-+            set_layout(kind, name);
-+        }
-         LayoutId::Local(name) => {
-             let name = CString::new(name.as_str()).unwrap();
-             let name_ptr = name.as_ptr();
--- 
-GitLab
-

diff --git a/x11-misc/squeekboard/files/terminal.yaml b/x11-misc/squeekboard/files/terminal.yaml
deleted file mode 100644
index d3b382a9e..000000000
--- a/x11-misc/squeekboard/files/terminal.yaml
+++ /dev/null
@@ -1,157 +0,0 @@
----
-outlines:
-    default: { width: 50, height: 50 }
-    altline: { width: 70, height: 50 }
-    spaceline: { width: 160, height: 50 }
-    special: { width: 35.33, height: 50 }
-    action: { width: 85, height: 35 }
-    fkey: { width: 41, height: 50 }
-
-views:
-    base:
-        - "1 2 3 4 5 6 7 8 9 0"
-        - "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_symbols show_eschars preferences         space        , . Return"
-        - "Ctrl Tab ↑ ↓ ← →"
-    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_symbols show_eschars preferences         space        < > Return"
-        - "Alt Esc PgUp PgDn Home End"
-    symbols:
-        - "~ ` ´ - _ + = ° © ®"
-        - "[ ] { } \\ | ÷ × √"
-        - "; : ' \" · € £ ¥"
-        - "Del / ? § π τ µ ¶ BackSpace"
-        - "show_letters show_eschars preferences         space        < > Return"
-        - "Ctrl Tab ↑ ↓ ← →"
-    eschars:
-        - "F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12"
-        - "ä è é ö ü Ä È É Ö Ü"
-        - "à â ê î ô À Â È Î Ô"
-        - "Del  « » ç Ç æ œ ß  BackSpace"
-        - "show_symbols show_eschars preferences         space        „ “ Return"
-        - "Alt Esc PgUp PgDn Home End"
-
-buttons:
-    Shift_L:
-        action:
-            locking:
-                lock_view: "upper"
-                unlock_view: "base"
-        outline: "altline"
-        icon: "key-shift"
-    Ctrl:
-        modifier: "Control"
-        outline: "action"
-        label: "Ctrl"
-    Alt:
-        modifier: "Alt"
-        outline: "action"
-        label: "Alt"
-    BackSpace:
-        outline: "altline"
-        icon: "edit-clear-symbolic"
-        action: "erase"
-    preferences:
-        action: "show_prefs"
-        outline: "special"
-        icon: "keyboard-mode-symbolic"
-    show_letters:
-        action:
-            set_view: "base"
-        outline: "altline"
-        label: "abc"
-    show_symbols:
-        action:
-            set_view: "symbols"
-        outline: "altline"
-        label: "[{/"
-    show_eschars:
-        action:
-            locking:
-                lock_view: "eschars"
-                unlock_view: "base"
-        outline: "altline"
-        label: "func"
-    space:
-        outline: "spaceline"
-        label: " "
-        text: " "
-    Return:
-        outline: "altline"
-        icon: "key-enter"
-        keysym: "Return"
-    F1:
-        outline: "fkey"
-        keysym: "F1"
-    F2:
-        outline: "fkey"
-        keysym: "F2"
-    F3:
-        outline: "fkey"
-        keysym: "F3"
-    F4:
-        outline: "fkey"
-        keysym: "F4"
-    F5:
-        outline: "fkey"
-        keysym: "F5"
-    F6:
-        outline: "fkey"
-        keysym: "F6"
-    F7:
-        outline: "fkey"
-        keysym: "F7"
-    F8:
-        outline: "fkey"
-        keysym: "F8"
-    F9:
-        outline: "fkey"
-        keysym: "F9"
-    F10:
-        outline: "fkey"
-        keysym: "F10"
-    F11:
-        outline: "fkey"
-        keysym: "F11"
-    F12:
-        outline: "fkey"
-        keysym: "F12"
-    Esc:
-        outline: "action"
-        keysym: "Escape"
-    Home:
-        outline: "action"
-        keysym: "Home"
-    End:
-        outline: "action"
-        keysym: "End"
-    Del:
-        outline: "altline"
-        keysym: "Delete"
-    PgUp:
-        outline: "action"
-        keysym: "Page_Up"
-    PgDn:
-        outline: "action"
-        keysym: "Page_Down"
-    Tab:
-        outline: "action"
-        keysym: "Tab"
-    "↑":
-        outline: "action"
-        keysym: "Up"
-    "↓":
-        outline: "action"
-        keysym: "Down"
-    "←":
-        outline: "action"
-        keysym: "Left"
-    "→":
-        outline: "action"
-        keysym: "Right"

diff --git a/x11-misc/squeekboard/squeekboard-1.14.0.ebuild b/x11-misc/squeekboard/squeekboard-1.14.0.ebuild
index c907141ea..2a85f038b 100644
--- a/x11-misc/squeekboard/squeekboard-1.14.0.ebuild
+++ b/x11-misc/squeekboard/squeekboard-1.14.0.ebuild
@@ -71,10 +71,10 @@ DEPEND="
 "
 RDEPEND="${DEPEND}"
 BDEPEND="
-	virtual/pkgconfig
+	dev-util/gtk-doc
 	dev-util/intltool
+	virtual/pkgconfig
 	virtual/rust
-	dev-util/gtk-doc
 "
 
 S="${WORKDIR}/${PN}-${MY_COMMIT}"


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-06-24 12:09 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-06-22 17:58 [gentoo-commits] repo/proj/guru:dev commit in: x11-misc/squeekboard/files/, x11-misc/squeekboard/ Marco Scardovi
  -- strict thread matches above, loose matches on Subject: below --
2021-06-24 12:09 Marco Scardovi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox