"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.
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.
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.
FullKeys encompasses a suite of tools designed to make your editing operations seamless and keyboard-centric. Here's a brief overview:
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!
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.
- 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, wihleUIOP
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 |
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 |
- 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 |
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 |
- 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 | |
R | iTerm2 | Preview | Terminal |
T | Visual Studio Code | Typora | Note |
Y | Siri | Karabiner | Amphetamine |
F | Alfred 4 | Dash | Dictionary |
G | Intellij IDEA | Chrome | Calender |
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) |
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 |
- Trivial transformation for misc characters. (orange area)
- Some special tricks for developers. Such as
;'
maps to:=
or!=
(β)
Key\Mod | β± | β | β₯ |
---|---|---|---|
- | _ | Zoom Out | |
= | + | Zoom In | |
[ | ( | { | < |
] | ) | } | > |
; | ! | : | |
' | = | = | |
/ | β/ | ||
\ | β/ |
-
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:
Preference β Keyboard β Shortcuts β MissionControl β Switch to Desktop 1/2/3
-
If you are using RMBP with Bar, consider changing your bar back to function keys with:
Karabiner-Elements β Function Keys β Use 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 |
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 |
Plane | Modifiers | Plane | Modifiers | Plane | Modifiers |
---|---|---|---|---|---|
0 | β± | 3 | β±ββ₯ | 7 | β±ββ₯β |
1 | β±β | 5 | β±ββ | 11 | β±ββ₯β§ |
2 | β±β₯ | 6 | β±β₯β | 13 | β±βββ§ |
4 | β±β | 9 | β±ββ§ | 14 | β±β₯ββ§ |
8 | β±β§ | 10 | β±β₯β§ | 15 | β±ββ₯ββ§ |
12 | β±ββ§ |
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.
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.
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 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.
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.
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.
- options key as main control key
lua script Obsidian.nvm
- better than Neoorg
- Blazzly fast
- Fune integrating with wiki and markdown links
- Become my daily drive on note taking
- youtube-like shortcut
- fzf pickup Fuction
- ui
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.