README.md - svkbd - simple virtual keyboard
 (HTM) git clone git://git.suckless.org/svkbd
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       README.md (5108B)
       ---
            1 SVKBD: Simple Virtual Keyboard
            2 =================================
            3 
            4 This is a simple virtual keyboard, intended to be used in environments,
            5 where no keyboard is available.
            6 
            7 Installation
            8 ------------
            9 
           10         $ make
           11         $ make install
           12 
           13 This will create by default `svkbd-mobile-intl`, which is svkbd using an international
           14 layout with multiple layers and overlays, and optimised for mobile devices.
           15 
           16 You can create svkbd for additional layouts by doing:
           17 
           18         $ make LAYOUT=$layout
           19 
           20 This will take the file `layout.$layout.h` and create `svkbd-$layout`.
           21 `make install` will then pick up the new file and install it accordingly.
           22 
           23 Layouts
           24 ---------
           25 
           26 The following layouts are available:
           27 
           28 * **Mobile Layouts:**
           29     * ``mobile-intl`` - A small international layout optimised for mobile devices. This layout consists of multiple layers which
           30         can be switched on the fly, and overlays that appear on long-press of certain keys, adding input ability for
           31         diacritics and other variants, as well as some emoji. The layers are:
           32         * a basic qwerty layer
           33         * a layer for numeric input, arrows, and punctuation
           34         * a cyrillic layer (ЙЦУКЕН based); the э key is moved to an overlay on е
           35         * a dialer/numeric layer
           36         * an arrow layer
           37         * a more minimal qwerty layer (bigger keys) for smaller screens/larger fingers.
           38     * ``mobile-plain`` - This is a plain layout with only a qwerty layer and numeric/punctuation layer. It was
           39         originally made for [sxmo](https://sr.ht/~mil/Sxmo/).
           40     * ``mobile-simple`` - This is a more minimalistic layout that is more similar to what Android and iOS offer.
           41 * **Traditional layouts**:
           42     * ``en`` - An english layout without layers (QWERTY)
           43     * ``de`` - A german layout (QWERTZ)
           44     * ``ru`` - A russian layout (ЙЦУКЕН)
           45     * ``sh`` - A serbo-croatian layout using latin script (QWERTZ)
           46 
           47 Usage
           48 -----
           49 
           50         $ svkbd-mobile-intl
           51 
           52 This will open svkbd at the bottom of the screen, showing the default
           53 international layout.
           54 
           55         $ svkbd-mobile-intl -d
           56 
           57 This tells svkbd to announce itself being a dock window, which then
           58 is managed differently between different window managers. If using dwm
           59 and the dock patch, then this will make svkbd being managed by dwm and
           60 some space of the screen being reserved for it.
           61 
           62         $ svkbd-mobile-intl -g 400x200+1+1
           63 
           64 This will start svkbd-mobile-intl with a size of 400x200 and at the upper left
           65 window corner.
           66 
           67 For layouts that consist of multiple layers, you can enable layers on program start through either the ``-l`` flag or
           68 through the ``SVKBD_LAYERS`` environment variable.  They both take a comma separated list of layer names (as defined in
           69 your ``layout.*.h``). Use the ``↺`` button in the bottom-left to cycle through all the layers in the exact order they
           70 were specified.
           71 
           72 Some layouts come with overlays that will show when certain keys are hold pressed for a longer time. For example, a long
           73 press on the ``a`` key will enable an overview showing all kinds of diacritic combinations for ``a``. In the
           74 ``mobile-intl`` layout, a long press on a punctuation key will show an overlay with all further punctuation options (the
           75 same for all punctuation keys). Moreover, a long press on the ``q`` key doubles as a trigger for the emoji overlay in
           76 this layout.
           77 
           78 Overlay functionality interferes with the ability to hold a key and have it outputted repeatedly.  You can disable
           79 overlay functionality with the ``-O`` flag or by setting the environment variable ``SVKBD_ENABLEOVERLAYS=0``. There is
           80 also a key on the function layer of the keyboard itself to enable/disable this behaviour on the fly. Its label shows
           81 ``≅`` when the overlay functionality is enabled and ``≇`` when not.
           82 
           83 Svkbd has been optimised for use on mobile devices with a touchscreen and implements press-on-release
           84 behaviour (which can be disabled), it also works fine on normal desktop systems with a regular mouse.
           85 
           86 Advanced Usage
           87 ---------------
           88 
           89 Svkbd has an extra output mode where all keypresses are printed to standard output. Optionally, you can also disable the
           90 default X11 keypress emulation. This gives you the freedom to use svkbd in other contexts and use simple pipes to
           91 connect it to other tools:
           92 
           93 
           94         $ svkbd-mobile-intl -n -o | cowsay
           95 
           96 This becomes especially useful if you want things like haptic feedback or audio feedback upon keypress. This is
           97 deliberately not implemented in svkbd itself (we want to keep things simple after all), but can be accomplished using
           98 the external tool [clickclack](https://git.sr.ht/~proycon/clickclack):
           99 
          100         $ svkbd-mobile-intl -o | clickclack -V -f keypress.wav
          101 
          102 Notes
          103 ---------
          104 
          105 This virtual keyboard does not actually modify the X keyboard layout, the ``mobile-intl``, ``mobile-plain``,
          106 ``mobile-simple`` and ``en`` layouts simply rely on a standard US QWERTY layout (setxkbmap us) being activated, the
          107 other layouts (``de``, ``ru``, ``sh``) require their respective XKB keymaps to be active.
          108 
          109 If you use another XKB layout you will get unpredictable output that does not match the labels on the virtual keycaps!
          110 
          111 Repository
          112 ----------
          113 
          114         git clone https://git.suckless.org/svkbd