• Stars
    star
    266
  • Rank 154,103 (Top 4 %)
  • Language
    R
  • License
    MIT License
  • Created almost 5 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An interactive tool for comparing layouts of different split mechanical keyboards

License: MIT

Copyright (c) 2020 John Helveston

Overview

This app is an interactive tool for comparing layouts of different split mechanical keyboards built for the community of ergonomic keyboard users. Split keyboards offer an ergonomic solution to many issues that make regular keyboards painful or uncomfortable to use, but finding which keyboard is right for you can be costly and difficult. Most split keyboards come as DIY kits, making it difficult (if not impossible) to compare different keyboard layouts prior to building them. This app offers one solution to this problem.

More comprehensive lists of ergonomic keyboards are available here:

Features

Click one of the "print" buttons to download a printable PDF of the true-to-scale keyboard layouts (8.5" x 11" or A4 sizes).

Filter the keyboard list:

  • Maximum number of keys.
  • Has a number row at the top.
  • Degree of stagger across the key columns.
  • Supports rotary encoders.
  • Wireless.
  • One-piece board or two halves.
  • Availability: DIY and/or pre-built.

Run locally

The app is hosted for free online, but you can also run the app locally on your computer by following these steps:

  1. Install R
  2. Run this code in an R terminal (run 'R', e.g. '/usr/bin/R' or 'Rgui.exe') to install the necessary package dependencies:
install.packages(c(
    "shiny", "DT", "dplyr", "shinythemes", "shinyWidgets", "magick", "readr",
    "RColorBrewer", "markdown", "rmarkdown"
))
  1. Run this in R to launch the app:
shiny::runGitHub('jhelvy/splitKbCompare')

Under the hood

This app was built using the R shiny package. Shiny apps are typically used to display data and create interactive dashboards. This app has a different purpose: to help the community of ergonomic keyboard users and hobbyists compare different keyboards.

The app uses the magick library to overlay images of different keyboard layouts of the user's choosing. The app dynamically changes the colors of each keyboard image in real time to help identify the contours of each different keyboard. To print the image to scale, the overlay image is inserted into a RMarkdown document and converted into a true-to-scale PDF. The app is hosted for free on shinyapps.io, and the open source code is hosted on Github.

Contributing

If you would like to contribute to this package, feel free to fork this repo and send a PR. You can also file an issue and I'll try and get to it when I have time.

Added new keyboards

I am no longer going to keep adding new keyboards to this app. It is a manual process and time-consuming, and I just don't have the time to maintain it. Apologies to the keyboard developers out there. If you want to add a keyboard yourself, the process I have used is to hand-edit the images/overlays.ai file to add the switch plate svg and label, and then re-export all the layers as png files (one for each keyboard). If you have access to Adobe Illustrator and want to do that process, send me a PR and I'll add it.

More Repositories

1

renderthis

An R package for building xaringan slides into multiple outputs, including html, pdf, png, gif, pptx, and mp4.
HTML
173
star
2

wireless-corne

Build log and photo gallery for my Wireless Corne keyboard
56
star
3

distillery

A distill blog and showcase about building distill websites and blogs!
HTML
42
star
4

logitr

Fast estimation of multinomial (MNL) and mixed logit (MXL) models in R with "Preference" space or "Willingness-to-pay" (WTP) space utility parameterizations in R
R
42
star
5

stanTuneR

This code uses the algebra solver in Stan (https://mc-stan.org/) to find the parameters of a distribution that produce a desired tail behavior.
R
29
star
6

kyria_3d_cases

20
star
7

qmkJsonConverter

R code to convert the .json file from the QMK configurator into a keymap.c file
C
15
star
8

surveydown

An attempt to build a markdown-based survey platform using Quarto & Shiny
HTML
15
star
9

jKeyboard

Files for creating my custom keyboard, including my Karabiner-Elements settings and WASD Keyboard layout files
13
star
10

formr4conjoint

A simple demo of using formr.org to create a choice-based conjoint survey
HTML
10
star
11

lexis

A theme for xaringan slides
HTML
10
star
12

jhelvy_distill

Source files for my personal website, built using the {distill} R package and deployed with netlify
HTML
10
star
13

mlogitCars

An example of estimating choice models in R using the mlogit package
R
8
star
14

jph

A bunch of useful functions for working in R
R
8
star
15

iris-rev2

Build log of my Iris keyboard (a.k.a. the "Altoids Can")
C
7
star
16

solar-learning-2021

This repository contains the data and code to reproduce results from our study titled "Quantifying the cost savings of global solar photovoltaic supply chains". The link below is to an app to assess the sensitivity of our study outcomes to different modeling assumptions.
HTML
7
star
17

jhelvy_quarto

Source files for my personal website, built using Quarto and deployed with Netlify
R
6
star
18

renderthistemp

Render slides and other media into different formats
HTML
5
star
19

cbcTools

An R package with tools for designing choice based conjoint (cbc) survey experiments and conducting power analyses
R
5
star
20

maddTools

An R package of functions for the GWU course EMSE 6035: Marketing Analytics for Design Decisions
R
3
star
21

charts

A repo of reproducible charts
HTML
3
star
22

coding-with-ai

2
star
23

conjointTools

An R package with tools for designing choice based conjoint (cbc) survey experiments and conduction power analyses
R
2
star
24

surveys-with-formr

Files for my rstudio::conf 2021 lightning talk: "Using formr to create R-powered surveys with individualized feedback"
HTML
2
star
25

tra2015

Raw data and replication of results from our 2015 publication in Transportation Research Part A
R
1
star
26

zmk-config-corne

1
star
27

slides

Slides for talks I've given
HTML
1
star
28

factorlock

Set factors levels based on row order
R
1
star
29

cv

My CV, generated using R, Quarto, and a Googlesheet
R
1
star
30

2023-qux-conf-conjoint

Content for my workshop at the 2023 Quant UX Conference on Open Source Conjoint in R
JavaScript
1
star
31

smartcharging

HTML
1
star
32

gglabelr

Interactive shiny app to create labels on ggplot
R
1
star
33

p4a

Source code for my book "Programming for Analytics in R"
R
1
star
34

scraperToolkit

Toolkit for webscraping in R and Python
R
1
star
35

jhelvy.github.io

HTML
1
star
36

stories-with-data

Workshop on telling stories with data
JavaScript
1
star
37

carsheet

Webscraping of the data at carsheet.io
R
1
star