Xah Fly Keys News

By Xah Lee. Date: . Last updated: .

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

sevaral trivial updates.

• xah-run-current-file now make output the active windows. (was trying to fix the situation when output has more lines than fits buffer height the lines at top are not within visible window.)

• xah-reformat-lines now default to width 60. was 70.

• some xah-unicode-list change. you should customize your own.

• xah-select-text-in-quote now hard code list of brackets. not rely on var xah-brackets. behavior is the same.

• other minor updates. xah-cut-text-in-quote. xah-brackets xah-left-brackets xah-right-brackets xah-backward-left-bracket xah-right-brackets

now key t (dvorak y) is back to set-mark-command, because seems a simple key for that basic command is commonly wanted. (was xah-fly-cancel). experimental. thanks to spiderbit #194

New commands xah-goto-line and xah-goto-char replacing emacs goto-line and goto-char. They allow you goto the number under cursor, and in next pane. Useful in error output.

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.