Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

HyperIJKL = Capslock + ijkl Navigation

License

NotificationsYou must be signed in to change notification settings

RomanYuldashev/HyperIJKL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

enru

Yet another one productivity-oriented keyboard keys remapper for macOS.
It is largely based onVonng'sCapsLock Enhancement, but with a twist:WASD-style navigation instead of Vim-style.
For those who are more accustomed to arrow keys or FPS controls ᗜωᗜ

This set up is tailored specifically to my workflow and has no aim to cover all possible use cases,though it is easily customizable to your preferences if you like the general idea.

Overview

TurnCapslock into a new modifier –Hyper*.Do stuff without moving your hands away from the keyboard's home row:

  • Navigate and edit text quickly

  • Delete words and lines with a single key press

  • Navigate macOS: desktops, apps and tabs

  • Start and switch active apps

  • Control the mouse pointer, buttons and wheels with a keyboard

  • ... and other workflow enhancements

Contents

Expand

Prerequisites

Installation

  1. Install Karabiner-Elements:

    brew install --cask karabiner-elements
  2. Download the configuration and allow Karabiner to load it;

  3. Enable HyperIJKL in Karabiner-Elements:

    Karabiner-Elements → Complex Modifications → Add rule → Enable all

  4. Enjoy!

Several non-essential HyperIJKL features (marked inDescription section) require additionalinstallation steps. SeeAdvanced Installation for instructions.

Description

General

HoldCapslock to activateHyper* mode.
PressCapslock once to sendesc.
Capslock + esc to toggle Capslock mode.

Legend

*
Hyperoptionshiftcommandspace

Text Navigation

button / layer** ⌘* ⌥* ⌥ ⌘
iupselect line upparagraph up*select paragraph up*
jleftselect character leftword leftselect word left
kdownselect line downparagraph down*select paragraph down*
lrightselect character rightword rightselect word right
uhomehome with selectionline startselect line, cursor home
oendend with selectionline endselect line, cursor end
ypage upselect previous pagedocument start*select up to document start*
hpage downselect next pagedocument end*select up to document end*
ndelete left (backspace)delete line leftdelete word left-
mdelete current lineselect current linemove line down-
,delete current word*select current word*move line up-
.delete right (delete)delete line rightdelete word right-
[(undo--
])redo--
esccapslock---

* additional set up required. SeeAdvanced Installation.

OS Navigation

Navigate macOS: desktops, windows, tabs, Mission Control and Launchpad.

button / layer* ⇧
iMission Control
jLaunchpad
kprevious tab
lnext tab
uprevious desktop
onext desktop
yfullscreen
hhide current window

Mouse Navigation

Use keyboard keys to control the mouse pointer, buttons and wheels.

button / layer* ⇧* ⌥ ⇧
ipointer upwheel up
jpointer leftwheel left
kpointer downwheel down
lpointer rightwheel right
uleft mouse buttonleft mouse button
oright mouse buttonright mouse button
hmiddle mouse buttonmiddle mouse button

Left Hand Window Navigation

These shortcuts duplicate some shortcuts fromOS Navigation. Their aim is to grant the abilityto navigate windows and desktops while using a mouse with your right hand at the same time.

button / layer** ⌘
wnext tabprevious tab
snext desktopprevious desktop
xforward-
zback-

Applications

These shortcuts launch applications or switch to a desktop with the said application if it is already running.
* § starts multiple apps that are configured inhyperijkl.yml.
§ is placed on top of atab on ISO (EU) keyboards,replace it with` to get similar results on ANSI (US) keyboards (seeModifying HyperIJKL).

button / layer** ⌘* ⌥
eOutlookNotesThunderbird
rIDEAVSCodeDBeaver
tiTermActivity MonitorSettings
dPostmanDockerLens
fFinderForkliftPreview
gKeepassXCSpotifyIINA
cTelegramRocket.ChatSignal
vZoomMicrosoft TeamsSkype
bChromeFirefoxSafari
§start work env--

Display Selection

Press* 1 to center the mouse pointer on Display 1. Works with digits from 1 to 4.

button / layer*
1display 1
2display 2
3display 3
4display 4

Input Source (Language) Selection

button / layer** ⌘
;EN-
pinput source (language) 2-
/input source (language) 3-
previous input source (language)next input source (language) in menu

Press* ; to select EN input source.
* p to select the second input source.
* / to select the third input source.
* ␣ to select the previous input source (like the default⌥ ␣ in macOS).
* ⌘ ␣ to select the next source in the input menu(iterates through the full list of input sources like the default⌥ ⌘ ␣).

Requires manual set up of additional input sources to work.You will have to edithyperijkl.yml by replacing predefined input language codes to desired ones.Those input languages should also be configured in macOS.Reinstall the script (seeModifying HyperIJKL)after those steps and check if LANG2 and LANG3 shortcuts work.

General Key Scheme

Zones

Legend

Keyboard Zones Legend

Key Mappings by Layer

* additional set up required. SeeAdvanced Installation.

Normal

Select

Word

Word Select

OS Navigation

Mouse Pointer

Mouse Wheel

Making HyperIJKL Work on Login Screen

You can make HyperIJKL work on Login Screen.

  1. Go to:

    Karabiner-Elements → Misc

  2. PressCopy the current configuration to the system default configuration. You will be prompted for admin password.

Modifying HyperIJKL

You can edit HyperIJKL's shortcuts with the following steps:

  1. Open HyperIJKL/mac/hyperijkl.yml;

  2. Edit shortcuts (seeKarabiner docs for reference);

  3. Run inmac directory:

    make all
  4. Go to:

    Karabiner-Elements → Complex Modifications

  5. Delete all the old HyperIJKL's modifications;

  6. Press:

    Add rule → Enable all

    on newly edited modifications.

Advanced Installation

Advanced Installation of HyperIJKL allows you to use several additional shortcuts,but requires more complex configuration that involves modifying key bindings in macOS and in IntelliJ IDEA.

  1. Install Karabiner-Elements:

    brew install --cask karabiner-elements
  2. Clone HyperIJKL:

    git clone https://github.com/RomanYuldashev/HyperIJKL.git
  3. Run installation script in HyperIJKL'smac directory:

    make all

    This step automatically sets upDefaultKeyBindings.dict in macOS. SeeSetting Up DefaultKeyBindings.dict for details.

  4. Enable HyperIJKL in Karabiner-Elements:

    Karabiner-Elements → Complex Modifications → Add rule → Enable all

  5. Set up additional IDEA shortcuts (seeSetting Up Additional IDEA Shortcuts).

Setting Up DefaultKeyBindings.dict

HyperIJKL requires modification of DefaultKeyBindings.dict for advanced shortcuts to work.If you have no custom key bindings in your macOS — you are good!Otherwise, you will have to manually merge HyperIJKL's key bindings into existing ones.In this case HyperIJKL's advanced installation script will notify you about key bindings conflict.

Setting Up Additional IDEA Shortcuts

HyperIJKL utilizes a couple of text navigation actions that are supported by macOS but are rarely recognized by apps.To enable these actions in IntelliJ IDEA you will have to add shortcuts for them either through in-app Settingsor by directly modifying configuration files.

Modifying Key Mapping Configuration Directly (Faster Way)

  1. Perform previous steps of HyperIJKL's Advanced Installation;

  2. Go to IDEA configuration directory (directory name may vary between app versions):

    cd~/Library/Application\Support/JetBrains/[IntelliJIdea]
  3. If directory[IdeaConfigBasePath]/keymaps doesn't exist, copy it from HyperIJKL'smac/idea directory and paste here;

    Else go tokeymaps, openmacOS.xml with a text editor and paste all the<action> blocks from HyperIJKL'smac/idea/keymaps/macOS.xml into it;

  4. Go to[IdeaConfigBasePath]/options/mac and openkeymap.xml. Make sure thatactive_keymap name is aligned with an .xml fromkeymaps directory:

    <active_keymap name="macOS" />

  5. Restart IDEA;

  6. Check if these shortcuts work in IDEA:

    * ⌥ i → move to beginning of paragraph

    * ⌥ ⌘ i → select previous paragraph

    * ⌥ k → move to end of paragraph

    * ⌥ ⌘ k → select next paragraph

Alternative: Adding Shortcuts through Settings Panel (More Obvious Way)

  1. Perform previous steps of HyperIJKL'sAdvanced Installation;

  2. Open IntelliJ IDEA;

  3. Go to:

    Settings → Keymap → Find

  4. Add these shortcuts:

    Move Caret Backward a Paragraph →* ⌥ i

    Move Caret Backward a Paragraph with Selection →* ⌥ ⌘ i

    Move Caret Forward a Paragraph →* ⌥ k

    Move Caret Forward a Paragraph with Selection →* ⌥ ⌘ k

About

Author: Roman Yuldashev (RomanYuldashev@proton.me)

License:Apache 2.0 License

ᗜˬᗜ


[8]ページ先頭

©2009-2025 Movatter.jp