Skip to main content

A text-based keyboard layout creator. Change or add keys to your keyboard with ease.

Project description

Build: CircleCI

Ṡymβoarð (Symboard)


Symboard (stylized as «Ṡymβoarð») is a versatile text-based keyboard creator. Symboard has a defined syntax which allows you to create text files which describe the specification for a keyboard layout, and will compile these files to automatically create a fully functional, UNIX compatible keylayout file.

The syntax of Symboard (described below) currently allows for 3 different type of operation:

  • Setting global keyboard variables, such as keyboard type and layout
  • Specifying different keyboard states, such as shift, or alt
  • A concise syntax to create dead keys, such as for accents and diacritics.

Making your own keyboard


Symboard creates keyboards according to a specification (spec) which is provided to it. This spec should be written as a yaml file.

Yaml can be a little technical at times, so here's what you need to know when using symboard.

Yaml is made up of keys (headers) which point to values, like this:

given_name: noam
surname: chomsky
age: 91
    - University of Arizona
      start: 2017
    - Massachusetts Institute of Technology
      start: 1955
    - Institute for Advanced Study
      start: 1958
      end: 1959

Values can be numbers, strings, booleans (true / false), or lists.

Symboard has some required headings, while others are optional. Optional headings, if not included in your specification, will be set to some default value. This default value is usually picked to be the most appropriate for the keyboard layout you're trying to create.

Which headings are available, and which are required, is detailed here in the symboard wiki. All symboard settings are written using lower_camel_case.

Future features

Specifying keyboard states (not yet implemented)

  condition: ...
  state: |


  condition: (shift? & control) | shift & control?)
  state: |

List of modal keys

  • shift
  • alt
  • command
  • control
  • function
  • caps_lock

Creating dead keys (not yet implemented)

  name: ...
  modified_from: ...
  modified_to: ...


  name: acute
  modified_from: abc
  modified_to: áb́ć

Project details

Release history Release notifications

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for symboard, version 0.2.0
Filename, size File type Python version Upload date Hashes
Filename, size symboard-0.2.0-py3-none-any.whl (29.8 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size symboard-0.2.0.tar.gz (19.1 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page