Skip to content

peterjumper/fullkeys

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

20 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

"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:

    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

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published