MCPcopy Create free account
hub / github.com/InkboxSoftware/all-screen-keyboard

github.com/InkboxSoftware/all-screen-keyboard @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
890 symbols 2,045 edges 26 files 218 documented · 24% updated 7mo ago★ 2389 open issues

Browse by type

Functions 680 Types & classes 210
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

The open source all-screen keyboard

The first open source all-screen keyboard. This repository contains all the digital files used to produce the all-screen keyboard created by Inkbox Software.

Material List

  • Raspberry Pi 4 and up. (Program requires use of OpenGL 3 only supported by this generation of Pis onward)
  • 14.1" wide screen touch display
  • Pi Pico
  • Battery (optional)
  • Case and key files found in 3Dmodels folder
  • Magnets
  • Acrylic cores
  • Various wires and cables to put everything together

To enable SPI on Raspberry Pi running Ubuntu

Due to the 3840x1100 wide display resolution, Raspbian cannot be used. Ubutuntu then requires a little more settup to access all the Pi's features. In /boot/firmware/config.txt place the following text

enable_uart=1
dtoverlays=uart0-pi5

Restart, and serial is now accessible via /dev/ttyAMA0 Note this is different from Raspbian's serial file /dev/serial0

To invert touch screeen output

Add the following rule as touchscreen.rules in /etc/udev/rules.d

ACTION=="add|change", KERNEL=="event*", ATTRS{name}=="ILITEK ILITEK-TP", ENV{LIBINPUT_CALIBRATION_MATRIX}="-1 0 1 0 -1 1 0 0 1"

Installing required libraries

To install wiringpi go to the github repo (https://github.com/WiringPi/WiringPi) and under Releases download the latest release wiringpi_X.XX_arm64.deb Install with

sudo apt install wiringpi_x.xx_arm64.deb

The rest of the required libraries can be installed with

sudo apt install build-essential libgles2-mesa-dev libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev libsdl2-ttf-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libavfilter-dev

Starting the main keyboard program

Navigate to the directory To build the program for the first time run

make build

Then run with

make run

or

sudo ./keyboard

The initial profile to load should be written in the startup file.

Designing Plugins

A plugin template has been created and stored in keyboard/src/plugins-dev/ Edit the plugin.cpp program to function as desired then compile your plugin via

make plugin name=myCustomPlugin src=plugin

Keyboard Profile online designer

The latest version of this designer is hosted at https://notin.tokyo/ASK The code for this website is stored in keyboard/profileDesigner

Core symbols most depended-on inside this repo

Shape

Method 367
Function 313
Class 200
Enum 10

Languages

C++87%
TypeScript13%

Modules by API surface

keyboard/src/json.hpp611 symbols
keyboard/profileDesigner/program.js58 symbols
keyboard/src/shaders/graphics.cpp42 symbols
keyboard/src/graphics.cpp42 symbols
keyboard/profileDesigner/jszip.min.js36 symbols
keyboard/src/keyboard.cpp23 symbols
keyboard/profileDesigner/jscolor.js20 symbols
keyboard/src/texture.cpp7 symbols
keyboard/src/serialKeyboard.cpp7 symbols
keyboard/src/text.cpp6 symbols
keyboard/src/key.h6 symbols
keyboard/src/shader.cpp5 symbols

For agents

$ claude mcp add all-screen-keyboard \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page