[hackers] [PATCH] Add a configuration option for fullscreen locking

2021-07-12 Thread Quentin Rameau
Some people are annoyed to have this new behaviour forced for some
application which use fake fullscreen.
---
 config.def.h | 1 +
 dwm.c| 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/config.def.h b/config.def.h
index 1c0b587..a2ac963 100644
--- a/config.def.h
+++ b/config.def.h
@@ -35,6 +35,7 @@ static const Rule rules[] = {
 static const float mfact = 0.55; /* factor of master area size 
[0.05..0.95] */
 static const int nmaster = 1;/* number of clients in master area */
 static const int resizehints = 1;/* 1 means respect size hints in tiled 
resizals */
+static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen 
window */
 
 static const Layout layouts[] = {
/* symbol arrange function */
diff --git a/dwm.c b/dwm.c
index b0b3466..5b41d4c 100644
--- a/dwm.c
+++ b/dwm.c
@@ -835,7 +835,7 @@ focusstack(const Arg *arg)
 {
Client *c = NULL, *i;
 
-   if (!selmon->sel || selmon->sel->isfullscreen)
+   if (!selmon->sel || selmon->sel->isfullscreen && lockfullscreen)
return;
if (arg->i > 0) {
for (c = selmon->sel->next; c && !ISVISIBLE(c); c = c->next);
-- 
2.32.0




[hackers] [svkbd] change comment-style in .c file || Hiltjo Posthuma

2021-07-12 Thread git
commit 6a1431933125e26994554817baf5d5a85402b814
Author: Hiltjo Posthuma 
AuthorDate: Mon Jul 12 12:51:52 2021 +0200
Commit: Hiltjo Posthuma 
CommitDate: Mon Jul 12 12:51:52 2021 +0200

change comment-style in .c file

diff --git a/svkbd.c b/svkbd.c
index 38a549a..c762551 100644
--- a/svkbd.c
+++ b/svkbd.c
@@ -1052,7 +1052,7 @@ showoverlay(int idx)
if (overlay[i].keysym == XK_Cancel) {
break;
}
-   //certain modifier keys and basic keys are excluded from being 
overlayed:
+   /* certain modifier keys and basic keys are excluded from being 
overlayed: */
while (keys[j].keysym == 0 || keys[j].keysym == XK_Shift_L ||
keys[j].keysym == XK_Shift_R || keys[j].keysym 
== XK_Control_L ||
keys[j].keysym == XK_Control_R || 
keys[j].keysym == XK_Alt_L ||



[hackers] [svkbd] code cleanup in overlay definitions (removed empty lines comments) || Maarten van Gompel

2021-07-12 Thread git
commit 3cff4547c5360ccf5424a413c3558ca99e2ce487
Author: Maarten van Gompel 
AuthorDate: Sun Jul 11 17:53:50 2021 +0200
Commit: Hiltjo Posthuma 
CommitDate: Mon Jul 12 12:34:03 2021 +0200

code cleanup in overlay definitions (removed empty lines comments)

diff --git a/layout.mobile-intl.h b/layout.mobile-intl.h
index 8962e7e..97b914e 100644
--- a/layout.mobile-intl.h
+++ b/layout.mobile-intl.h
@@ -113,10 +113,9 @@ static Key keys_minimal[KEYS] = {
{ "↲ Enter", 0, XK_Return, 2 },
 };
 
-#define OVERLAYS 198
+#define OVERLAYS 197
 static Key overlay[OVERLAYS] = {
{ 0, 0, XK_a }, //Overlay for a
-   //---
{ "à", 0, XK_agrave },
{ "á", 0, XK_aacute },
{ "â", 0, XK_acircumflex },
@@ -128,9 +127,7 @@ static Key overlay[OVERLAYS] = {
{ "Ã¥", 0, XK_aring },
{ "æ", 0, XK_ae },
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies  overlay boundary */
-   //--
{ 0, 0, XK_e }, //Overlay for e (first item after boundary defines the 
trigger)
-   //---
{ "è", 0, XK_egrave },
{ "é", 0, XK_eacute },
{ "ê", 0, XK_ecircumflex },
@@ -140,17 +137,13 @@ static Key overlay[OVERLAYS] = {
{ "ė", 0, XK_eabovedot },
{ "ě", 0, XK_ecaron },
{ 0, 0, XK_Cancel },
-   //--
{ 0, 0, XK_y }, //New overlay
-   //---
{ "ỳ", 0, XK_ygrave },
{ "ý", 0, XK_yacute },
{ "Å·", 0, XK_ycircumflex },
{ "ÿ", 0, XK_ydiaeresis },
{ 0, 0, XK_Cancel },
-   //--
{ 0, 0, XK_u }, //New overlay
-   //---
{ "ù", 0, XK_ugrave },
{ "ú", 0, XK_uacute },
{ "û", 0, XK_ucircumflex },
@@ -161,9 +154,7 @@ static Key overlay[OVERLAYS] = {
{ "Å­", 0, XK_ubreve},
{ "ű", 0, XK_udoubleacute },
{ 0, 0, XK_Cancel },
-   //--
{ 0, 0, XK_i }, //New overlay
-   //---
{ "ì", 0, XK_igrave },
{ "í", 0, XK_iacute },
{ "î", 0, XK_icircumflex },
@@ -172,9 +163,7 @@ static Key overlay[OVERLAYS] = {
{ "Ä«", 0, XK_imacron },
{ "ı", 0, XK_idotless },
{ 0, 0, XK_Cancel },
-   //--
{ 0, 0, XK_o }, //New overlay
-   //---
{ "ò", 0, XK_ograve },
{ "ó", 0, XK_oacute },
{ "ô", 0, XK_ocircumflex },
@@ -186,128 +175,86 @@ static Key overlay[OVERLAYS] = {
{ "ő", 0, XK_odoubleacute },
{ "œ", 0, XK_oe },
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies  overlay boundary */
-   //--
{ 0, 0, XK_d }, //New overlay
-   //---
{ "ď", 0, XK_dcaron },
{ "ð", 0, XK_eth },
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies  overlay boundary */
-   //--
{ 0, 0, XK_c }, //New overlay
-   //---
{ "ç", 0, XK_ccedilla },
{ "ĉ", 0, XK_ccircumflex },
{ "č", 0, XK_ccaron },
{ "ć", 0, XK_cacute },
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies  overlay boundary */
-   //--
{ 0, 0, XK_s }, //New overlay
-   //---
{ "ş", 0, XK_scedilla },
{ "ŝ", 0, XK_scircumflex },
{ "Å¡", 0, XK_scaron },
{ "ś", 0, XK_sacute },
{ "ß", 0, XK_ssharp },
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies  overlay boundary */
-   //---
{ 0, 0, XK_z }, //New overlay
-   //---
{ "ž", 0, XK_zcaron },
{ "ż", 0, XK_zabovedot },
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies  overlay boundary */
-   //--
{ 0, 0, XK_n }, //New overlay
-   //---
{ "ñ", 0, XK_ntilde },
{ "ń", 0, XK_nacute },
{ "ň", 0, XK_ncaron },
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies  overlay boundary */
-   //
{ 0, 0, XK_t }, //New overlay
-   //---
{ "ț", 0, XK_tcedilla },
{ "Å¥", 0, XK_tcaron },
{ "þ", 0, XK_thorn },
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies  overlay boundary */
-   //
{ 0, 0, XK_g }, //New overlay
-   //---
{ "ĝ", 0, XK_gcircumflex },
{ "ğ", 0, XK_gbreve },
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies  overlay boundary */
-   //
{ 0, 0, XK_h }, //New overlay
-   //---
{ "Ä¥", 0, XK_hcircumflex },
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies  overlay boundary */
-   //
{ 0, 0, XK_j }, //New overlay
-   //---
{ "ĵ", 0, XK_jcircumflex },
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies  overlay boundary */
-   //--
{ 0, 0, XK_l }, //New overlay
-   //---
{ "ł", 0, XK_lstroke },
{ "ľ", 0, XK_lcaron },
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies  overlay boundary */
-   //--
{ 0, 0, XK_r }, //New overlay
-   //---
{ "ř", 0, XK_rcaron },
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies  overlay boundary */
-   //---
{ 0, 0, XK_Cyrillic_softsign }, //New overlay
-   //---
{ "ъ", 

[hackers] [svkbd] made the Q key double as a trigger for the emoji overlay in the default mobile-intl layout || Maarten van Gompel

2021-07-12 Thread git
commit 378a1c8b308ebe09af1ad87ea00bf142313c6fdd
Author: Maarten van Gompel 
AuthorDate: Sun Jul 11 17:53:52 2021 +0200
Commit: Hiltjo Posthuma 
CommitDate: Mon Jul 12 12:34:10 2021 +0200

made the Q key double as a trigger for the emoji overlay in the default 
mobile-intl layout

This makes the emoji overlay accessible without sacrificing an extra key.
There are (afaik) no languages with diacritics on the Q anyway and it's
the first letter key.

A small emoji will show as 2nd label on the keycap as a hint, the caveat
being that the hint applies to a long press rather than a shift-press as
with most 2nd labels, but better than no hint at all.

diff --git a/README.md b/README.md
index 9d18797..b0a246f 100644
--- a/README.md
+++ b/README.md
@@ -69,10 +69,11 @@ through the ``SVKBD_LAYERS`` environment variable.  They 
both take a comma separ
 your ``layout.*.h``). Use the ``↺`` button in the bottom-left to cycle 
through all the layers in the exact order they
 were specified.
 
-Some layouts come with overlays that will show when certain keys are hold 
pressed for a longer time. For
-example, a long press on the ``a`` key will enable an overview showing all 
kinds of diacritic combinations for ``a``. In
-the ``mobile-intl`` layout, a long press on a punctuation key will show an 
overlay with all further punctuation options
-(the same for all punctuation keys).
+Some layouts come with overlays that will show when certain keys are hold 
pressed for a longer time. For example, a long
+press on the ``a`` key will enable an overview showing all kinds of diacritic 
combinations for ``a``. In the
+``mobile-intl`` layout, a long press on a punctuation key will show an overlay 
with all further punctuation options (the
+same for all punctuation keys). Moreover, a long press on the ``q`` key 
doubles as a trigger for the emoji overlay in
+this layout.
 
 Overlay functionality interferes with the ability to hold a key and have it 
outputted repeatedly.  You can disable
 overlay functionality with the ``-O`` flag or by setting the environment 
variable ``SVKBD_ENABLEOVERLAYS=0``. There is
diff --git a/layout.mobile-intl.h b/layout.mobile-intl.h
index 97b914e..dcc7c6d 100644
--- a/layout.mobile-intl.h
+++ b/layout.mobile-intl.h
@@ -17,7 +17,7 @@ static Key keys_en[KEYS] = {
{ 0 }, /* New row */
 
{ "↹", 0, XK_Tab, 0.75 },
-   { 0, 0, XK_q, 1 },
+   { 0, "🙂", XK_q, 1 },
{ 0, 0, XK_w, 1 },
{ 0, 0, XK_e, 1 },
{ 0, 0, XK_r, 1 },
@@ -68,7 +68,7 @@ static Key keys_en[KEYS] = {
 };
 
 static Key keys_minimal[KEYS] = {
-   { 0, 0, XK_q, 1 },
+   { 0, "🙂", XK_q, 1 },
{ 0, 0, XK_w, 1 },
{ 0, 0, XK_e, 1 },
{ 0, 0, XK_r, 1 },
@@ -113,7 +113,7 @@ static Key keys_minimal[KEYS] = {
{ "↲ Enter", 0, XK_Return, 2 },
 };
 
-#define OVERLAYS 197
+#define OVERLAYS 226
 static Key overlay[OVERLAYS] = {
{ 0, 0, XK_a }, //Overlay for a
{ "à", 0, XK_agrave },
@@ -283,6 +283,35 @@ static Key overlay[OVERLAYS] = {
{ "😳", 0, 0x101f633 },
{ "😴", 0, 0x101f634 },
{ 0, 0, XK_Cancel }, /* XK_Cancel signifies  overlay boundary */
+   { "q", 0, XK_q }, //New overlay -> emoji overlay on Q key (for minimal 
layer)
+   { "😀", 0, 0x101f600 },
+   { "😁", 0, 0x101f601 },
+   { "😂", 0, 0x101f602 },
+   { "😃", 0, 0x101f603 },
+   { "😄", 0, 0x101f604 },
+   { "😅", 0, 0x101f605 },
+   { "😆", 0, 0x101f606 },
+   { "😇", 0, 0x101f607 },
+   { "😈", 0, 0x101f608 },
+   { "😉", 0, 0x101f609 },
+   { "😊", 0, 0x101f60a },
+   { "😋", 0, 0x101f60b },
+   { "😌", 0, 0x101f60c },
+   { "😍", 0, 0x101f60d },
+   { "😎", 0, 0x101f60e },
+   { "😏", 0, 0x101f60f },
+   { "😐", 0, 0x101f610 },
+   { "😒", 0, 0x101f612 },
+   { "😓", 0, 0x101f613 },
+   { "😛", 0, 0x101f61b },
+   { "😮", 0, 0x101f62e },
+   { "😟", 0, 0x101f61f },
+   { "😟", 0, 0x101f620 },
+   { "😢", 0, 0x101f622 },
+   { "😭", 0, 0x101f62d },
+   { "😳", 0, 0x101f633 },
+   { "😴", 0, 0x101f634 },
+   { 0, 0, XK_Cancel }, /* XK_Cancel signifies  overlay boundary */
{ "/?", 0, XK_slash }, //New overlay - punctuation overlay
{ "1", "!", XK_1, 1 },
{ "2", "@", XK_2, 1 },
diff --git a/layout.mobile-simple.h b/layout.mobile-simple.h
index 6b23ff3..c4a85a8 100644
--- a/layout.mobile-simple.h
+++ b/layout.mobile-simple.h
@@ -351,7 +351,7 @@ static Key overlay[OVERLAYS] = {
{ "😒", 0, 0x101f612 },
{ "😓", 0, 0x101f613 },
{ "😛", 0, 0x101f61b },
-   { "😮", 0, 0x101f62e, 2 }, // skip shift
+   { "😮", 0, 0x101f62e },
{ "😟", 0, 0x101f61f },
{ "😟", 0, 0x101f620 },
{ "😢", 0, 0x101f622 },



[hackers] [svkbd] protection against segfault if overlay has more keys than the keyboard itself || Maarten van Gompel

2021-07-12 Thread git
commit 2164466746ef9f02cb90944d20d32b9ffbd86366
Author: Maarten van Gompel 
AuthorDate: Sun Jul 11 17:53:44 2021 +0200
Commit: Hiltjo Posthuma 
CommitDate: Mon Jul 12 12:33:44 2021 +0200

protection against segfault if overlay has more keys than the keyboard 
itself

diff --git a/svkbd.c b/svkbd.c
index be688b5..38a549a 100644
--- a/svkbd.c
+++ b/svkbd.c
@@ -1062,6 +1062,8 @@ showoverlay(int idx)
j++;
if (overlay[i].width > 1)
j += overlay[i].width - 1;
+   if (j >= numkeys)
+   break;
keys[j].label = overlay[i].label;
keys[j].label2 = overlay[i].label2;
keys[j].keysym = overlay[i].keysym;



[hackers] [svkbd] moved backspace key down in dialer layer (mobile-intl and simple layout), for more consistency with other layers || Maarten van Gompel

2021-07-12 Thread git
commit b0534041999d8460683e09aa12b058f96dfb2e08
Author: Maarten van Gompel 
AuthorDate: Sun Jul 11 17:53:48 2021 +0200
Commit: Hiltjo Posthuma 
CommitDate: Mon Jul 12 12:33:55 2021 +0200

moved backspace key down in dialer layer (mobile-intl and simple layout), 
for more consistency with other layers

diff --git a/layout.mobile-intl.h b/layout.mobile-intl.h
index aae7410..8962e7e 100644
--- a/layout.mobile-intl.h
+++ b/layout.mobile-intl.h
@@ -113,7 +113,7 @@ static Key keys_minimal[KEYS] = {
{ "↲ Enter", 0, XK_Return, 2 },
 };
 
-#define OVERLAYS 197
+#define OVERLAYS 198
 static Key overlay[OVERLAYS] = {
{ 0, 0, XK_a }, //Overlay for a
//---
@@ -570,23 +570,23 @@ static Key keys_dialer[KEYS] = {
{ "1", "!" , XK_1, 1 },
{ "2", "@", XK_2, 1 },
{ "3", "#", XK_3, 1 },
-   { "⌫Bksp", 0, XK_BackSpace, 2 },
+   { "-", "_", XK_minus, 1 },
+   { ",", "<", XK_comma, 1 },
{ 0 }, /* New row */
 
{ "Shift", 0, XK_Shift_L, 1 },
{ "4", "$", XK_4, 1 },
{ "5", "%", XK_5, 1 },
{ "6", "^", XK_6, 1 },
-   { "-", "_", XK_minus, 1 },
-   { ",", "<", XK_comma, 1 },
+   { "=", "+", XK_equal, 1 },
+   { "/", "?", XK_slash, 1 },
{ 0 }, /* New row */
 
{ "abc", 0, XK_Mode_switch, 1 },
{ "7", "&", XK_7, 1 },
{ "8", "*", XK_8, 1 },
{ "9", "(", XK_9, 1 },
-   { "=", "+", XK_equal, 1 },
-   { "/", "?", XK_slash, 1 },
+   { "⌫Bksp", 0, XK_BackSpace, 2 },
{ 0 }, /* New row */
 
{ "↺", 0, XK_Cancel, 1},
diff --git a/layout.mobile-simple.h b/layout.mobile-simple.h
index a0d414a..4d26226 100644
--- a/layout.mobile-simple.h
+++ b/layout.mobile-simple.h
@@ -159,7 +159,8 @@ static Key keys_dialer[DIALER_KEYS] = {
{ "1!", 0, XK_1, 1 },
{ "2@", 0, XK_2, 1 },
{ "3#", 0, XK_3, 1 },
-   { "⌫", 0, XK_BackSpace, 2 },
+   { "-_", 0, XK_minus, 1 },
+   { ",<", 0, XK_comma, 1 },
 
{ 0 },
 
@@ -167,8 +168,8 @@ static Key keys_dialer[DIALER_KEYS] = {
{ "4$", 0, XK_4, 1 },
{ "5%", 0, XK_5, 1 },
{ "6^", 0, XK_6, 1 },
-   { "-_", 0, XK_minus, 1 },
-   { ",<", 0, XK_comma, 1 },
+   { "=+", 0, XK_equal, 1 },
+   { "/?", 0, XK_slash, 1 },
 
{ 0 },
 
@@ -176,8 +177,7 @@ static Key keys_dialer[DIALER_KEYS] = {
{ "7&", 0, XK_7, 1 },
{ "8*", 0, XK_8, 1 },
{ "9(", 0, XK_9, 1 },
-   { "=+", 0, XK_equal, 1 },
-   { "/?", 0, XK_slash, 1 },
+   { "⌫", 0, XK_BackSpace, 2 },
 
{ 0 },
 
@@ -188,7 +188,7 @@ static Key keys_dialer[DIALER_KEYS] = {
{ "↲ Enter", 0, XK_Return, 2},
 };
 
-#define OVERLAYS 192
+#define OVERLAYS 198
 
 static Key overlay[OVERLAYS] = {
{ 0, 0, XK_a },



[hackers] [svkbd] minor documentation update || Maarten van Gompel

2021-07-12 Thread git
commit b5775349f6329c822b39ebf6d2b42e9715bf1430
Author: Maarten van Gompel 
AuthorDate: Sun Jul 11 17:53:46 2021 +0200
Commit: Hiltjo Posthuma 
CommitDate: Mon Jul 12 12:33:50 2021 +0200

minor documentation update

diff --git a/README.md b/README.md
index 2eb589c..9d18797 100644
--- a/README.md
+++ b/README.md
@@ -34,6 +34,7 @@ The following layouts are available:
 * a cyrillic layer (ЙЦУКЕН based); the э key is moved to an 
overlay on е
 * a dialer/numeric layer
 * an arrow layer
+* a more minimal qwerty layer (bigger keys) for smaller screens/larger 
fingers.
 * ``mobile-plain`` - This is a plain layout with only a qwerty layer and 
numeric/punctuation layer. It was
 originally made for [sxmo](https://sr.ht/~mil/Sxmo/).
 * ``mobile-simple`` - This is a more minimalistic layout that is more 
similar to what Android and iOS offer.
@@ -60,15 +61,18 @@ some space of the screen being reserved for it.
 
$ svkbd-mobile-intl -g 400x200+1+1
 
-This will start svkbd-intl with a size of 400x200 and at the upper left
+This will start svkbd-mobile-intl with a size of 400x200 and at the upper left
 window corner.
 
 For layouts that consist of multiple layers, you can enable layers on program 
start through either the ``-l`` flag or
 through the ``SVKBD_LAYERS`` environment variable.  They both take a comma 
separated list of layer names (as defined in
-your ``layout.*.h``). Use the ``↺`` button in the bottom-left to cycle 
through all the layers.
+your ``layout.*.h``). Use the ``↺`` button in the bottom-left to cycle 
through all the layers in the exact order they
+were specified.
 
 Some layouts come with overlays that will show when certain keys are hold 
pressed for a longer time. For
-example, a long press on the ``a`` key will enable an overview showing all 
kinds of diacritic combinations for ``a``.
+example, a long press on the ``a`` key will enable an overview showing all 
kinds of diacritic combinations for ``a``. In
+the ``mobile-intl`` layout, a long press on a punctuation key will show an 
overlay with all further punctuation options
+(the same for all punctuation keys).
 
 Overlay functionality interferes with the ability to hold a key and have it 
outputted repeatedly.  You can disable
 overlay functionality with the ``-O`` flag or by setting the environment 
variable ``SVKBD_ENABLEOVERLAYS=0``. There is



[hackers] [svkbd] exclude certain modifier keys and basic keys from being overlayed || Maarten van Gompel

2021-07-12 Thread git
commit b70948b74c19f916bc9e1a610ea1a2a215a54900
Author: Maarten van Gompel 
AuthorDate: Sun Jul 11 17:53:42 2021 +0200
Commit: Hiltjo Posthuma 
CommitDate: Mon Jul 12 12:33:39 2021 +0200

exclude certain modifier keys and basic keys from being overlayed

This ensures that modifiers like shift/ctrl can be correctly used with the 
overlay.

diff --git a/svkbd.c b/svkbd.c
index 875a0b5..be688b5 100644
--- a/svkbd.c
+++ b/svkbd.c
@@ -1052,7 +1052,13 @@ showoverlay(int idx)
if (overlay[i].keysym == XK_Cancel) {
break;
}
-   while (keys[j].keysym == 0)
+   //certain modifier keys and basic keys are excluded from being 
overlayed:
+   while (keys[j].keysym == 0 || keys[j].keysym == XK_Shift_L ||
+   keys[j].keysym == XK_Shift_R || keys[j].keysym 
== XK_Control_L ||
+   keys[j].keysym == XK_Control_R || 
keys[j].keysym == XK_Alt_L ||
+   keys[j].keysym == XK_Alt_R || keys[j].keysym == 
XK_BackSpace ||
+   keys[j].keysym == XK_Return || keys[j].keysym 
== XK_space ||
+   keys[j].keysym == XK_Cancel)
j++;
if (overlay[i].width > 1)
j += overlay[i].width - 1;



[hackers] [svkbd] added missing e caron to overlay in international and simple layouts (e.g. for czech) || Maarten van Gompel

2021-07-12 Thread git
commit e2828d4f7a290ebab671c3bfff162684c7779be0
Author: Maarten van Gompel 
AuthorDate: Sun Jul 11 17:53:40 2021 +0200
Commit: Hiltjo Posthuma 
CommitDate: Mon Jul 12 12:33:32 2021 +0200

added missing e caron to overlay in international and simple layouts (e.g. 
for czech)

diff --git a/layout.mobile-intl.h b/layout.mobile-intl.h
index 5d3e755..aae7410 100644
--- a/layout.mobile-intl.h
+++ b/layout.mobile-intl.h
@@ -138,6 +138,7 @@ static Key overlay[OVERLAYS] = {
{ "ę", 0, XK_eogonek },
{ "ē", 0, XK_emacron },
{ "ė", 0, XK_eabovedot },
+   { "ě", 0, XK_ecaron },
{ 0, 0, XK_Cancel },
//--
{ 0, 0, XK_y }, //New overlay
diff --git a/layout.mobile-simple.h b/layout.mobile-simple.h
index 17c5ba4..a0d414a 100644
--- a/layout.mobile-simple.h
+++ b/layout.mobile-simple.h
@@ -212,6 +212,7 @@ static Key overlay[OVERLAYS] = {
{ "ę", 0, XK_eogonek },
{ "ē", 0, XK_emacron },
{ "ė", 0, XK_eabovedot },
+   { "ě", 0, XK_ecaron },
{ 0, 0, XK_Cancel },
 
{ 0, 0, XK_y },