Xah Fly Keys News

By Xah Lee. Date: . Last updated: .

major changes are logged here. but sometimes minor change also here.

removed redundant commands.

unused: xah-unfill-paragraph, xah-unfill-region, xah-change-newline-chars-to-one

merged xah-reformat-whitespaces-to-one-space, xah-reformat-to-multi-lines to xah-reformat-lines

minor key changes.

major key change, left hand key for selection

Reason, key i is much more ergonomic than y. Because you can move hand, instead finger. So, moved y for text selection to i. As for y, after many experiment, it is set to xah-fly-cancel, a new command, that can be used to cancel selection and otherwise behave like Ctrl+g.

And now make all leader keys of 【space y】 and 【space i】 be consistent.

current, in command mode,

current, leader keys,

other minor key change:

experimental. using capital letter key (Shift) in command mode

  • now removed all experimental keys with shift. now there is no command that requires shift key.
  • xah-extend-selection now can repeat by xah-repeat-key.

following is all dvorak notation.

  • removed, in command mode:
  • ("H" . xah-extend-selection)
  • ("T" . xah-select-text-in-quote)
  • ("D" . xah-select-block)
  • ("U" . delete-char)
  • ("E" . delete-backward-char)
  • new, leader key sequence:
  • ("y h" . xah-extend-selection)
  • ("y t" . xah-select-text-in-quote)
  • ("y i" . xah-select-block)

swapped back the keys for save-buffer and end-of-buffer. (now, dvorak s and b.) Reason: last week we swapped the keys. the reason was to be more consistent with the dvorak s (qwerty ;) for end command the xah-end-of-line-or-block. but turn out, this is not too ergonomic. in other words, we gained little consistency at the expensive of little inefficiency. so, swapping them back now.

  • Removed the key qwerty colon 【:】 (dvorak S) for xah-select-line. Reason: keybinding requiring shift is not very good. 【shift+;】 is not much more efficient than the alternative 【d t ;】 This was just added few weeks ago for experiment. Possible removing the 3 or so other commands with shift key.
  • changed keys. xah-pop-local-mark-ring was dvorak Y (qwerty T) in command mode. now dvorak space y y (qwerty space t t). press RET to repeat.
  • xah-show-kill-ring had dvorak space y (qwerty space t), now is dvorak space y y (qwerty space t t)

swapped the keys for end-of-buffer (new key 【space ;】) and save-buffer (new key 【space n】). (both qwerty notation) reason: this is to be consistent with the command mode key for xah-end-of-line-or-block. the reason it was not before is because i was just picking the dvorak s for save-buffer.

  • 2025-07-08
  • continue previous key change. reverted change of key for dvorak i (qwerty g). now it is xah-delete-current-text-block again. (not xah-select-block)
  • because, otherwise, the only way to delete AND copy selection is via key dvorak q (qwerty x), which is harder than index finger on dvorak i.
  • 2025-07-07
  • major key change. experimental.
  • removed all number keys
  • 【3】 delete-other-windows
  • 【4】 split-window-below
  • 【5】 delete-char
  • 【6】 xah-select-block
  • 【7】 xah-select-line
  • 【8】 xah-extend-selection
  • 【9】 xah-select-text-in-quote
  • 【0】 xah-pop-local-mark-ring

new is

  • 【H】 xah-extend-selection
  • 【T】 xah-select-text-in-quote
  • 【S】 xah-select-line
  • 【U】 delete-char
  • 【E】 delete-backward-char
  • 【Y】 xah-pop-local-mark-ring
  • and
  • ("i" . xah-delete-current-text-block)
  • changed to
  • ("i" . xah-select-block)
  • xah-pop-local-mark-ring now can repeat by xah-repeat-key.
  • reason:
  • the number keys are on top row, hard to type, especially for touch typist.
  • personally, they been causing permanent hand injury for me, e.g. the keys 1 2 3 in 2010 and 2016.
  • see Xah Lee, Typing Experience and Repetitive Strain Injury
  • also, in past decade, many ergonomic keyboards don't have direct number keys.
  • new is introducing shift key combo.
  • the disadvantage is now require 2 key strokes, but now easier positions.
  • recommended is to turn on sticky keys in operating system.
  • also, all these commands are extra convenience, not core necessary ones.
  • now the number row keys are free, you can press them directly to insert number when in command mode.

new variable xah-fly-command-mode-hl-line. If true, highlight current line when in command mode. by default it is on.



2024-04-22 Major rewrite the keyboard layout code.

Before, to define a new layout, you have to create a alist of key mappings:

Xah Fly Keys layout 2024-04-23 jNs
Xah Fly Keys layout 2024-04-23 jNs

now, you just draw a text diagram:

Xah Fly Keys layout 2024-04-23 TY2
Xah Fly Keys layout 2024-04-23 TY2

Lots new layouts, some esoteric removed.