added images, wrote on good out of the box experiences.
This commit is contained in:
parent
7c5dbba18b
commit
18c969f56a
BIN
content/posts/clirenaissance/bash_prompt.png
Normal file
BIN
content/posts/clirenaissance/bash_prompt.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
BIN
content/posts/clirenaissance/editors.png
Normal file
BIN
content/posts/clirenaissance/editors.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 255 KiB |
BIN
content/posts/clirenaissance/fish_prompt.png
Normal file
BIN
content/posts/clirenaissance/fish_prompt.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
|
@ -17,11 +17,16 @@ sed,,1974,c
|
||||||
bc,,1975,c
|
bc,,1975,c
|
||||||
make,,1976,c
|
make,,1976,c
|
||||||
vi,,1976,c
|
vi,,1976,c
|
||||||
|
bourne shell,,1979,c
|
||||||
awk,,1985,c
|
awk,,1985,c
|
||||||
screen,,1987,c
|
screen,,1987,c
|
||||||
|
bash,https://www.gnu.org/software/bash/,1989,c
|
||||||
|
zsh,https://www.zsh.org/,1990,c
|
||||||
vim,https://www.vim.org/,1991,c
|
vim,https://www.vim.org/,1991,c
|
||||||
midnight commander,,1994,c
|
midnight commander,,1994,c
|
||||||
ssh,,1995,c
|
ssh,,1995,c
|
||||||
|
curl,https://github.com/curl/curl,1996,c
|
||||||
|
fish,https://fishshell.com/,2005,c/rust
|
||||||
fossil,https://fossil-scm.org/home/doc/trunk/www/index.wiki,2006,c
|
fossil,https://fossil-scm.org/home/doc/trunk/www/index.wiki,2006,c
|
||||||
tmux,https://github.com/tmux/tmux,2007,c
|
tmux,https://github.com/tmux/tmux,2007,c
|
||||||
git,https://git-scm.com/,2008,c
|
git,https://git-scm.com/,2008,c
|
||||||
|
@ -115,6 +120,8 @@ led to a resurgence in development of command line utilities.
|
||||||
Instead of just developing completely new tools,
|
Instead of just developing completely new tools,
|
||||||
Ive noticed that people are rethinking and reinventing tools that have existed since the early days of Unix.
|
Ive noticed that people are rethinking and reinventing tools that have existed since the early days of Unix.
|
||||||
|
|
||||||
|
<!--TODO: add more here-->
|
||||||
|
|
||||||
## The lessons learned from the past
|
## The lessons learned from the past
|
||||||
|
|
||||||
A large amount of the innovation in the area, I think, can be attributed to
|
A large amount of the innovation in the area, I think, can be attributed to
|
||||||
|
@ -144,15 +151,66 @@ better than bash. When starting fish for the first time, however, its powerful
|
||||||
autocompletion and information rich prompt are front and center with no
|
autocompletion and information rich prompt are front and center with no
|
||||||
configuration required. Of course, fish still has the same level of
|
configuration required. Of course, fish still has the same level of
|
||||||
configurability as zsh, it just also has sensible defaults.
|
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-->
|
To demonstrate my point, this is the default prompt for zsh with no
|
||||||
|
configuration. It *only* shows the hostname, none of the advanced featurs you
|
||||||
|
can get out of a zsh prompt even without plugins.
|
||||||
|
![zsh prompt, only shows hostname](zsh_prompt.png)
|
||||||
|
Here is bash's prompt. It actually gives more info than zsh's, even though zsh
|
||||||
|
can do more when properly configured.
|
||||||
|
![bash prompt, shows hostname and current directory](bash_prompt.png)
|
||||||
|
And here is fish's default prompt. It has a few colours, shows everything the
|
||||||
|
bash prompt does, and additionally shows the git branch we are on.
|
||||||
|
![fish prompt, has colours, shows hostname, current directory, and git
|
||||||
|
info](fish_prompt.png)
|
||||||
|
|
||||||
|
Text editors are another great example of the evolution of out of the box
|
||||||
|
defaults. Vim and Neovim both improved on their predecessors, but so much of
|
||||||
|
that improvement is locked behind extremely complex configuration experiences
|
||||||
|
and plugins. Heres four different terminal text editors with no configuration
|
||||||
|
applied:
|
||||||
|
|
||||||
|
![vi, vim, neovim, and helix editors in their default
|
||||||
|
configuration](editors.png)
|
||||||
|
|
||||||
|
Vi, (top left) is our baseline, and, as far as I can tell, doesnt actually
|
||||||
|
support much for configuration. What you see out of the box is more or less
|
||||||
|
whats there.
|
||||||
|
|
||||||
|
Vim (top right) greatly improved on Vi, adding things such as syntax highlighting, line
|
||||||
|
numbers, spellchecking, split windows, folding, and even basic autocompletion.
|
||||||
|
However, everything but syntax highligting is either extremely clunky or
|
||||||
|
outright disabled without configuration. (for example, the earliest things I did
|
||||||
|
when I first made a `.vimrc` was to enable indent folding, make some better
|
||||||
|
keybinds for navigating windows, and adding a line number ruler to the side)
|
||||||
|
|
||||||
|
Neovim (bottom left) further improved on Vim, adding support for Treesitter and the Language
|
||||||
|
Server Protocoll, but the out of the box experience is the *exact* same as vim!
|
||||||
|
In order to take advantage of the LSP and Treesitter support, you have to
|
||||||
|
install plugins, which means learning a Nvim package manager, learning how to
|
||||||
|
configure LSPs, and configuring a new LSP for every language you want to use it
|
||||||
|
with. (Or finding out about Mason and being OK with having multiple levels of
|
||||||
|
package management in your Nvim install alone). Dont get me wrong, Neovim is a
|
||||||
|
great editor once you get over the hump, I still use it as my daily driver, but
|
||||||
|
so much of its functionality is simply hidden.
|
||||||
|
|
||||||
|
Then we have the Helix (bottom right) editor. Colour scheme aside, everything is
|
||||||
|
just there. Helix doesnt have plugin support
|
||||||
|
[yet](https://github.com/helix-editor/helix/discussions/3806), but it has so
|
||||||
|
much stuff in core that, looking through my neovim plugins, pretty much all of
|
||||||
|
my neovim plugins are in the core editor! (ironically, the one feature that
|
||||||
|
helix is missing, [folding](https://github.com/helix-editor/helix/issues/1840),
|
||||||
|
is a core part of neovim, albiet one that requires some configuration to get
|
||||||
|
good use out of). Helix has a config file where you can change a huge amount of
|
||||||
|
settings, but its an extremely usable IDE out of the box, thanks to having all
|
||||||
|
of its features enabled by default.
|
||||||
|
|
||||||
### Friendly error messages
|
### Friendly error messages
|
||||||
|
|
||||||
<!-- look at nushells error messages-->
|
<!-- look at nushells error messages-->
|
||||||
|
|
||||||
|
[earlier](../nushell)
|
||||||
|
|
||||||
### Concise and discoverable documentation
|
### Concise and discoverable documentation
|
||||||
|
|
||||||
<!-- look at zellij and helix and their built in keymap cheatsheets-->
|
<!-- look at zellij and helix and their built in keymap cheatsheets-->
|
||||||
|
@ -173,7 +231,7 @@ config.-->
|
||||||
|
|
||||||
<!-- most of the new tools are written in rust and go.-->
|
<!-- most of the new tools are written in rust and go.-->
|
||||||
|
|
||||||
<!-- rusts clap and gos cobra-->
|
<!-- rusts clap and gos cobra, CLI argument parsing libraries, help with this.-->
|
||||||
|
|
||||||
## Appendix: the tools
|
## Appendix: the tools
|
||||||
|
|
||||||
|
@ -196,11 +254,16 @@ available, wikipedia otherwise, and sorting is by year first, then alphabetical.
|
||||||
|bc|1975|c|
|
|bc|1975|c|
|
||||||
|make|1976|c|
|
|make|1976|c|
|
||||||
|vi|1976|c|
|
|vi|1976|c|
|
||||||
|
|bourne shell|1979|c|
|
||||||
|awk|1985|c|
|
|awk|1985|c|
|
||||||
|screen|1987|c|
|
|screen|1987|c|
|
||||||
|
|[bash](https://www.gnu.org/software/bash/)|1989|c|
|
||||||
|
|[zsh](https://www.zsh.org/)|1990|c|
|
||||||
|[vim](https://www.vim.org/)|1991|c|
|
|[vim](https://www.vim.org/)|1991|c|
|
||||||
|midnight commander|1994|c|
|
|midnight commander|1994|c|
|
||||||
|ssh|1995|c|
|
|ssh|1995|c|
|
||||||
|
|[curl](https://github.com/curl/curl)|1996|c|
|
||||||
|
|[fish](https://fishshell.com/)|2005|c/rust|
|
||||||
|[fossil](https://fossil-scm.org/home/doc/trunk/www/index.wiki)|2006|c|
|
|[fossil](https://fossil-scm.org/home/doc/trunk/www/index.wiki)|2006|c|
|
||||||
|[tmux](https://github.com/tmux/tmux)|2007|c|
|
|[tmux](https://github.com/tmux/tmux)|2007|c|
|
||||||
|[git](https://git-scm.com/)|2008|c|
|
|[git](https://git-scm.com/)|2008|c|
|
||||||
|
|
BIN
content/posts/clirenaissance/zsh_prompt.png
Normal file
BIN
content/posts/clirenaissance/zsh_prompt.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.7 KiB |
BIN
content/posts/ferrisSweepKeyboard/finished_keyboard.jpg
Normal file
BIN
content/posts/ferrisSweepKeyboard/finished_keyboard.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.9 MiB |
|
@ -3,7 +3,7 @@ title = "Building My New Keyboard."
|
||||||
date = 2024-02-06T15:01:28-06:00
|
date = 2024-02-06T15:01:28-06:00
|
||||||
draft = false
|
draft = false
|
||||||
[cover]
|
[cover]
|
||||||
image = "layers/layer0"
|
image = "keyboard_with_case"
|
||||||
+++
|
+++
|
||||||
|
|
||||||
Ive been using a split keyboard at home now for several years,
|
Ive been using a split keyboard at home now for several years,
|
||||||
|
@ -17,8 +17,6 @@ Eventually, though, I stumbled upon the github page for the [Ferris Sweep](https
|
||||||
|
|
||||||
## The Basic Build
|
## The Basic Build
|
||||||
|
|
||||||
<!--TODO: insert pic of completed keyboard-->
|
|
||||||
|
|
||||||
The Sweep seemed simple enough that I could assemble it,
|
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.
|
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 [Keebio](https://keeb.io/) and [Lowprob.ca](https://lowprokb.ca/),
|
I ordered the pcb from JLPCB and the parts from [Keebio](https://keeb.io/) and [Lowprob.ca](https://lowprokb.ca/),
|
||||||
|
@ -33,6 +31,8 @@ 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,
|
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?
|
and desoldering it was unexpectedly difficult, but not every build can be mistake free, right?
|
||||||
|
|
||||||
|
![The finished keyboard](finished_keyboard.jpg)
|
||||||
|
|
||||||
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.
|
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 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.
|
I had to take my micros out of their sockets in order to access the boot buttons.
|
||||||
|
|
BIN
content/posts/ferrisSweepKeyboard/keyboard_with_case.jpg
Normal file
BIN
content/posts/ferrisSweepKeyboard/keyboard_with_case.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 MiB |
Loading…
Reference in a new issue