Skip to content

Latest commit

 

History

History
321 lines (222 loc) · 22.1 KB

README.md

File metadata and controls

321 lines (222 loc) · 22.1 KB

"FullKeys" emphasizing efficiency in using keystrokes over mouse or menu-driven commands. This README introduces the project, lists the tools used, and gives a brief overview of each.

image-20240617194734562

Gif :

Gif showcase St0kO.gif

FullKeys

Welcome to FullKeys, the ultimate guide to boosting your productivity by harnessing the power of keystrokes for everyday editing operations. In the world of software development, staying in the flow is crucial. FullKeys is inspired by principles from "The Pragmatic Programmer," advocating for efficiency and effectiveness in coding and editing tasks.

Glove 80

img

Engram keyboard layout: Layout of Ergohaven Remnant

Introduction

Using only keystrokes for common editing operations can significantly enhance your efficiency. The FullKeys approach eliminates the need to switch between the keyboard and mouse, keeping your workflow smooth and uninterrupted. This method is not just about speed; it's about creating a more intuitive interaction with your tools, allowing you to stay focused on your task.

Tools Covered

FullKeys encompasses a suite of tools designed to make your editing operations seamless and keyboard-centric. Here's a brief overview:

Karabiner

Karabiner is a powerful and flexible key mapping software for macOS. It allows customization of almost any aspect of your keyboard's behavior, making it easier to create a setup that keeps your fingers on the home row. Vonng/Capslock: Make Capslock Great Again!

Basic

Key MapsTo Comment
Press Escape Click Capslock to emit Escape
Hold Hyper Hold Capslock to enable Hyper modifier.
Capslock Press to switch Capslock status
Switch input source, + to emoji

Note that is implemented as combination of ALL RIGHT MODIFIERS: .

Hold Hyper to enable hyper functionalities. We will assume and omit that in subsequent document.

Navigation

  • H, J, K, L, U, I, O, P are used as Navigators. Maps to by default. (pink area).
  • 9 control planes has already been allocated for navigators.
  • Hold additional Command for selection. (like holding shift in normal), additional Option for word/para selection.
  • Hold additional Shift for app/win/tab switching. Hold additional Control for desktop management .
  • Hold additional Option for 🖱️ mouse move. Add shift to ⏫ accelerate. (U, I, O, P maps to mouse buttons) .
  • turns navigator to 🖲️ mouse wheel, and is the ⏫ accelerated version . HJKL for wheel, wihle UIOP for reversed wheel move.
Feature Move Select WordSel Window Desktop 🖱️ 🖱️⏫ 🖲️ 🖲️⏫
Key\Mod
H Left word left word left prev tab prev desk ⬅️ ⬅️⏫ ⬅️ ⬅️⏫
J Down line down 3 line down next app focus ⬇️ ⬇️⏫ ⬇️ ⬇️⏫
K Up line up 3 line up prev app expose all ⬆️ ⬆️⏫ ⬆️ ⬆️⏫
L Right word right word right next tab next desk ➡️ ➡️⏫ ➡️ ➡️⏫
U PgUp prev page prev page zoom- fullscreen 🖱️L 🖱️L ➡️ ➡️⏫
I Home line head end2head prev win hide 🖱️R 🖱️R ⬆️ ⬆️⏫
O End line end head2end next win hide all 🖱️B 🖱️B ⬇️ ⬇️⏫
P PgDn next page next page zoom+ Launchpad 🖱️F 🖱️F ⬅️ ⬅️⏫

Arrow Navigation

  • Arrows → to 🖱️ mouse actions too. Hold Option to ⏬ slow down, hold Command to ⏫ speed up.
  • Hold Shift turns to 🖲️ wheel move. Extra Option to ⏬ slow down, extra Command to ⏫ speed up.
  • Return maps to left click. And additional turns into right click, middle click, backward, forward.
Feature 🖱️ 🖱️⏬ 🖱️⏫ 🖲️ 🖲️⏬ 🖲️⏫
Key\Mod
speed = 1600 speed ÷ 2 speed × 2 speed = 32 speed ÷ 2 speed × 2
🖱️L 🖱️M 🖱️R 🖱️L 🖱️B 🖱️F

Deletion

N M , . are used as Deletor keys. Right below the navigators for fast access (brown area).

Key\Mod
N del a word ahead del till line head del the whole line
M del a char ahead del a word ahead move line below
, del a char after del a word after move line above
. del a word after del till line end del the whole line
del file purge file

MouseKey

  • Turn Keypad into a fully funcional 🖱️ mouse.
  • Numbers maps to 8 direction 🖱️ mouse move. Hold Option to ⏬ slow down, hold Command to ⏫ speed up.
  • Hold additional Shift turns to 🖲️ wheel move. Extra Option to ⏬ slow down, and extra Command to ⏫ speed up.
  • First line maps to wheel move and 0, ., , +, - maps to five mouse buttons.
🖲️⬅️ = 🖲️⬇️ / 🖲️⬆️ * 🖲️➡️
7🖱️ ↖️ 8 🖱️⬆️ 9 🖱️↗️ - 🖱️B
4🖱️ ⬅️ 5🖱️ 6 🖱️➡️ + 🖱️F
1🖱️↙️ 2 🖱️⬇️ 3 🖱️↘️
0 🖱️L . 🖱️M 🖱️R

Window Control

  • Tab, Q, W, A, s used as window control keys. Focuing on close/switch applications / windows / tabs / desktops. (azure area)
  • Windows management (resize, layout) leaves to external application such as Moom, Magnet, and Slate. Bind A manually.
Key\Mod
next app prev app switch desktop switch tab
Q close app close app Lock Screen Logout
W close tab close all win Display Sleep Sleep
A win app expose all show desktop LaunchPad
S next tab prev tab next win prev win

App Shortcuts

  • E R T Y F G are used as application shortcuts. (yellow area)
  • Popular apps and dev tools are registed to 3 default planes: //. Assign these shortcuts according to your own needs.
Key\Mod
E Safari Finder Mail
R iTerm2 Preview Terminal
T Visual Studio Code Typora Note
Y Siri Karabiner Amphetamine
F Alfred 4 Dash Dictionary
G Intellij IDEA Chrome Calender

Terminal Control

D, Z, X, C, V, B are used as terminal control keys. Sending singals and IDE commands. (green area)

Key\Mod
D D Ctrl+D (Send EOF) Define (Force touch)
Z Z Ctrl+Z (SIGTSTP) F5 (VS Code Debug)
X R Ctrl+R (IDE Run) F5 (VS Code Run)
C C Ctrl+C (SIGINT) >F5(VS Code Stop)
V VCtrl+V (Vim Prefix)
B BCtrl+B (Tmux Prefix)

Clipboard

Number keys 1, 2, …, 9, 0 are used as (text) clipboard. Hold to copy, and press to paste. (purple area)

Key\Mod
1 Paste from clip 1 Copy to clip 1
2 Paste from clip 2 Copy to clip 2
…… …… ……
0 Paste from clip 0 Copy to clip 10

Shifter

  • Trivial transformation for misc characters. (orange area)
  • Some special tricks for developers. Such as ;' maps to := or != ()
Key\Mod
- _ Zoom Out
= + Zoom In
[ ( { <
] ) } >
; ! :
' = =
/ /
\ /

Functional

  • Use F1,…F12 as standard functional keys, while hold Hyper to turn them back. (cyan area)

  • Command + F1 / F2 / F3 are used as desktop switcher. Enable shortcuts in system preference first:

    PreferenceKeyboardShortcutsMissionControl → Switch to Desktop 1/2/3

  • If you are using RMBP with Bar, consider changing your bar back to function keys with:

    Karabiner-ElementsFunction KeysUse all F1, F2, etc. keys as standard function keys

Key\Mod Comment
` 4 4 Area selection screenshot( to file)
F1 display_brightness_decrement | 1 1 Brightness Down / Desktop 1
F2 display_brightness_increment | 2 2 Brightness Up / Desktop 2
F3 | 3 3 Expose All / Desktop 3
F4 Launchpad Launchpad
F5 illumination_decrement Keyboard Light Down
F6 illumination_increment Keyboard Light Up
F7 rewind Music Prev
F8 play_or_pause Play / Pause
F9 fastforward Music Next
F10 mute Mute
F11 volume_decrement Volume Down
F12 volume_increment Volume Up
F13 3 3 Full Screentshot ( to file)
F14 5 6 Screenshot menu ( touchbar snap)
F15 play_or_pause Play / Pause
Insert display_brightness_increment Fine-Grained Brightness Up
Delete display_brightness_decrement Fine-Grained Brightness Down
Home illumination_increment Fine-GrainedKeyboard Light Up
End illumination_decrement Fine-Grained Keyboard Light Down
PgUp volume_increment Fine-Grained Volume Up
PgDn volume_decrement Fine-Grained Volume Down

References

Symbols

Glyph Name Glyph Name
Capslock Hyper
Escape Space
Command (Mac) Alter (Win)
Option (Mac) Win (Win)
Control Shift
Return Enter
Arrow Cursor Home/End
Tab Delete / ForwardDelete
Numlock ⏫⏬ Fast / Slow
🖱️L Mouse Left Click (Button1) 🖱️B Mouse Backward (Button4)
🖱️R Mouse Right Click (Button2) 🖱️F Mouse Forward (Button5)
🖱️M Mouse Middle Click (Button3) 🖲️ Mouse Wheel

Control Planes

Plane Modifiers Plane Modifiers Plane Modifiers
0 3 7
1 5 11
2 6 13
4 9 14
8 10 15
12

LF

LF (List Files) is a terminal file manager that emphasizes speed and efficiency. Navigating, previewing, and managing files with LF is entirely keyboard-driven, streamlining file operations in your project workflow. image-20240617195214282

Neovim

Neovim (NVim) extends Vim, providing a modern take on the classic text editor. With its powerful plugin system and improved GUI capabilities, NVim makes writing code and editing text fully controllable with customizable keystrokes.

  • Using Obsidian.nvim to take notes

    image-20240617195308798

Script

Created Brazingly fast script to translate Simpiified chinese into traditional chinese rename all the filename Simpiified chinese into traditional chinese tranlate all the markdown filew into traditional chenese export epubs into pdfs

Sioyek

Sioyek is a PDF viewer optimized for reading research papers and technical documentation. Its keyboard-centric design allows users to navigate documents, jump between sections, and annotate with minimal reliance on the mouse.image-20240617195502756

image-20240617195530061

Tmux

Tmux is a terminal multiplexer that enables you to run and switch between several terminal sessions from a single window. It is designed to be controlled entirely with the keyboard, making it a perfect tool for managing multiple tasks without leaving the terminal.

Getting Started

To start integrating the FullKeys workflow into your daily routine, begin by installing each of the tools mentioned above. Further documentation and setup instructions can be found on their respective websites or GitHub repositories.

Our setup scripts and configuration files are available to help you jumpstart your journey towards a more efficient, keyboard-driven workflow. Explore the different directories in this repository to find setups tailored to various development environments.

Yabai (Window tilling management)

  • options key as main control key

Nvim

lua script Obsidian.nvm

  • better than Neoorg
  • Blazzly fast
  • Fune integrating with wiki and markdown links
  • Become my daily drive on note taking

MPV (Vidow player )

  • youtube-like shortcut
  • fzf pickup Fuction
  • ui

Contribution

We welcome contributions! If you have suggestions, configurations, or tools that fit the FullKeys philosophy, please feel free to submit a pull request or open an issue.

Together, let's redefine efficiency in software development by embracing the power of keystrokes.

2024-06-17


This README template aims to provide a starting point for your project. Feel free to customize it further to fit the specifics of FullKeys, including adding installation instructions, usage examples, or any additional information that would be beneficial to users.