[hackers] [PATCH] Add a configuration option for fullscreen locking
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
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
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
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
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
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
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
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
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 },