added a few images to keyboard post.
|
@ -137,9 +137,17 @@ language and dozens or hundreds of options to get a usable piece of software.
|
|||
Configuration should be for customization, not setup.
|
||||
|
||||
One of the earliest examples of this principle may be the fish shell.
|
||||
Both zsh and
|
||||
Both zsh and fish have powerful prompt and autocompletion engines, but zsh
|
||||
requires you to setup a custom prompt and enable completions in order to use the
|
||||
features that set it apart from the competition. With no config file, zsh is no
|
||||
better than bash. When starting fish for the first time, however, its powerful
|
||||
autocompletion and information rich prompt are front and center with no
|
||||
configuration required. Of course, fish still has the same level of
|
||||
configurability as zsh, it just also has sensible defaults.
|
||||
<!--TODO: insert pics of zsh command line without config vs fish command line without
|
||||
config.-->
|
||||
|
||||
<!-- look at helix compared to (neo)vim-->
|
||||
<!-- look at zsh compared to fish?-->
|
||||
|
||||
### Friendly error messages
|
||||
|
|
@ -2,32 +2,29 @@
|
|||
title = "Building My New Keyboard."
|
||||
date = 2024-02-06T15:01:28-06:00
|
||||
draft = false
|
||||
[cover]
|
||||
image = "layers/layer0"
|
||||
+++
|
||||
:caution-caption: pass:[<span style="font-size: 2em">☠</span>]
|
||||
:important-caption: pass:[<span style="font-size: 2em">❗</span>]
|
||||
:note-caption: pass:[<span style="font-size: 2em">✏️</span>]
|
||||
:tip-caption: pass:[<span style="font-size: 2em">💡</span>]
|
||||
:warning-caption: pass:[<span style="font-size: 2em">⚠</span>]
|
||||
:toc:
|
||||
:toclevels: 6
|
||||
|
||||
Ive been using a split keyboard at home now for several years,
|
||||
(specifically, the https://ultimatehackingkeyboard.com/[UHKv2], though nowadays I probably would have gone for something ortholinear)
|
||||
(specifically, the [UHKv2](https://ultimatehackingkeyboard.com/), though nowadays I probably would have gone for something ortholinear)
|
||||
and ive always wanted one for the office.
|
||||
The problem was, if I was going to get a new keyboard,
|
||||
I wanted it to be for both the office and travel,
|
||||
and most prebuilts around are not that portable.
|
||||
I also was not confident enough in my soldering skills to solder the SMT diodes found on many handbuilt designs out there.
|
||||
Eventually, though, I stumbled upon the github page for the https://github.com/davidphilipbarr/Sweep[Ferris Sweep].
|
||||
Eventually, though, I stumbled upon the github page for the [Ferris Sweep](https://github.com/davidphilipbarr/Sweep).
|
||||
|
||||
== The Basic Build
|
||||
## The Basic Build
|
||||
|
||||
<!--TODO: insert pic of completed keyboard-->
|
||||
|
||||
The Sweep seemed simple enough that I could assemble it,
|
||||
and after doing some shopping around, I was able to source all the parts I needed for under $100.
|
||||
I ordered the pcb from JLPCB and the parts from https://keeb.io/[Keebio] and https://lowprokb.ca/[Lowprob.ca],
|
||||
I ordered the pcb from JLPCB and the parts from [Keebio](https://keeb.io/) and [Lowprob.ca](https://lowprokb.ca/),
|
||||
and started the long wait for it all to arrive.
|
||||
|
||||
In the meantime, I researched what how to flash the https://docs.keeb.io/elite-pi-guide[elite-pi]'s I had purchased with QMK.
|
||||
In the meantime, I researched what how to flash the [elite-pi](https://docs.keeb.io/elite-pi-guide)'s I had purchased with QMK.
|
||||
(normal elite-c's were out of stock, and I like the RP2040.)
|
||||
its a little bit different, but as long as you have used QMK before, it wasnt much extra to that.
|
||||
|
||||
|
@ -36,18 +33,18 @@ and finally soldered the switches in. (I used choc purpz, a bit of a leap of fai
|
|||
I did ruin one switch by letting a leg getting hot enough to melt the housing plastic,
|
||||
and desoldering it was unexpectedly difficult, but not every build can be mistake free, right?
|
||||
|
||||
Flashing QMK was uneventful, working exactly as the https://github.com/qmk/qmk_firmware/tree/master/keyboards/ferris/sweep[QMK docs] for the Ferris Sweep suggested.
|
||||
Flashing QMK was uneventful, working exactly as the [QMK docs](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ferris/sweep) for the Ferris Sweep suggested.
|
||||
I would, however, recommend flashing the micros _before_ doing any soldering,
|
||||
I had to take my micros out of their sockets in order to access the boot buttons.
|
||||
(once the keyboard is assembled, there is a dedicated keycombo on most layouts to enter the bootloader,
|
||||
so you dont have to do this every time you reflash your keyboard)
|
||||
|
||||
== Layout
|
||||
## Layout
|
||||
|
||||
I wasnt feeling quite adventurous enough to switch away from qwerty,
|
||||
but, the Sweep being a 34-key board, some layout adjustment would be needed.
|
||||
I took the Sweeps https://github.com/qmk/qmk_firmware/tree/master/keyboards/ferris/keymaps/default[default layout]
|
||||
and used the https://config.qmk.fm/[QMK configurator] to customize it.
|
||||
I took the Sweeps [default layout](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ferris/keymaps/default)
|
||||
and used the [QMK configurator](https://config.qmk.fm/) to customize it.
|
||||
|
||||
First, I moved space to my left thumb, as Im left handed.
|
||||
I put esc on one of the thumb keys for usage in vim.
|
||||
|
@ -61,7 +58,9 @@ Im not quite happy with my modifiers being mod-taps on the bottom row,
|
|||
they can feel slightly awkward to reach,
|
||||
and I may experiment with moving them around, potentially on the top row.
|
||||
|
||||
== Learning
|
||||
{{<image-gallery gallery_dir="layers">}}
|
||||
|
||||
## Learning
|
||||
|
||||
Of course, the board takes some getting used to.
|
||||
Between the physical layout of the keys,
|
||||
|
@ -75,18 +74,18 @@ Perhaps its because I already was used to split keyboards,
|
|||
or because I forced myself to use this instead of my 'normal' keyboard at work,
|
||||
but I am now at the point where it feels natural to type on.
|
||||
|
||||
== Case
|
||||
## Case
|
||||
|
||||
I want this keyboard to be both my work keyboard as well as my travel keyboard,
|
||||
so a case is essential.
|
||||
(I dont want to carelessly set it down on a conductive surface and fry the micros, for example)
|
||||
I asked a friend to print https://www.printables.com/model/513831-ferris-sweep-22-case[this case] for me.
|
||||
I asked a friend to print [this case](https://www.printables.com/model/513831-ferris-sweep-22-case) for me.
|
||||
(I didnt have any TPU on hand.)
|
||||
With the case and some rubber feet to keep it from sliding over the surface,
|
||||
it becomes a very serviceable little travel keyboard,
|
||||
one I can throw in my laptop bag and use in place of the built-in keyboard.
|
||||
|
||||
== Caveats
|
||||
## Caveats
|
||||
|
||||
Of course, nothing is perfect. The microcontrollers are still exposed,
|
||||
meaning they are vulnerable to static shock.
|
||||
|
@ -98,7 +97,7 @@ and have firmly entrenched themselves in the keyboard building community.)
|
|||
Thankfully, both of these issues have a relatively minor chance of happening,
|
||||
and if they do, I did socket the microcontrollers for easy replacement.
|
||||
|
||||
== Conclusion
|
||||
## Conclusion
|
||||
|
||||
It took me all of a week to fall in love with the sweeps form factor,
|
||||
and, 1 month later, Im convinced I will never let myself work on a regular keyboard for a long period of time again,
|
BIN
content/posts/ferrisSweepKeyboard/layers/layer0.png
Normal file
After Width: | Height: | Size: 80 KiB |
BIN
content/posts/ferrisSweepKeyboard/layers/layer1.png
Normal file
After Width: | Height: | Size: 99 KiB |
BIN
content/posts/ferrisSweepKeyboard/layers/layer2.png
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
content/posts/ferrisSweepKeyboard/layers/layer3.png
Normal file
After Width: | Height: | Size: 72 KiB |
BIN
content/posts/ferrisSweepKeyboard/layers/layer4.png
Normal file
After Width: | Height: | Size: 58 KiB |
BIN
content/posts/ferrisSweepKeyboard/layers/layer5.png
Normal file
After Width: | Height: | Size: 69 KiB |
BIN
content/posts/ferrisSweepKeyboard/layers/layer6.png
Normal file
After Width: | Height: | Size: 68 KiB |
BIN
content/posts/ferrisSweepKeyboard/layers/layer7.png
Normal file
After Width: | Height: | Size: 68 KiB |
21
layouts/shortcodes/image-gallery.html
Normal file
|
@ -0,0 +1,21 @@
|
|||
<style>
|
||||
.image-gallery {overflow: auto; margin-left: -1%!important;}
|
||||
.image-gallery li {float: left; display: block; margin: 0 0 1% 1%; width: 19%;}
|
||||
.image-gallery li a {text-align: center; text-decoration: none!important; color: #777;}
|
||||
.image-gallery li a span {display: block; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; padding: 3px 0;}
|
||||
.image-gallery li a img {width: 100%; display: block;}
|
||||
</style>
|
||||
|
||||
{{ $dir := string (.Get "gallery_dir") }}
|
||||
<ul class="image-gallery">
|
||||
{{ range (.Page.Resources.Match (print $dir "/*")) }}
|
||||
{{- $imagetitle := path.BaseName .Name}}
|
||||
<li>
|
||||
<a href="{{ (.Fit "1600x1600 ").Permalink }}" title="{{ $imagetitle }}" class="lightbox-image">
|
||||
<img src="{{ (.Fit "300x300").Permalink }}" alt="{{ $imagetitle }}" title="{{ $imagetitle }}">
|
||||
<span>{{ $imagetitle }}</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
{{ end }}
|
||||
</ul>
|