U+0061 LATIN SMALL LETTER A
UTF-8: 61 UTF-16BE: 0061 Decimal: a Octal: \0141
a (A)
Uppercase: 0041
Category: Ll (Letter, Lowercase); East Asian width: Na (narrow)
Unicode block: 0000..007F; Basic Latin
Bidi: L (Left-to-Right)
Age: Assigned as of Unicode 1.1.0 (June, 1993)
…
U+2192 RIGHTWARDS ARROW
…
U+007A LATIN SMALL LETTER Z
¹ https://github.com/garabik/unicode (( $+commands[vim] )) && alias vi=vim
(( $+commands[nvim] )) && alias vi{,m}=nvim [editor]
# No remapping, just use vim instead of mcedit
Given that you can specify the bindings config to use at startup with --keymap you can even configure task specific sets of bindings. This combined with extfs and custom menus makes it a great way to make a personal interface to non-file data sources too. f() { fs=($1/*(.)); jo $1=$#fs }
zargs -P 32 -n1 -- **/*(/) -- f
That should recursively list directories, counting only the files within each, and output² jsonl that can be further mangled within the shell². You could just as easily populate an associative array for further work, or $whatever. Unlike bash, zsh has reasonable behaviour around quoting and whitespace too.
For example, it has pluggable layouts where instead of pulling in a lua module(such as awful.layout) in awesome you'll run an external process which handles events. You can even run multiple managers and switch between them with bindings, or write a custom one to scratch that itch. If you're happy with just awful's .suit.tile.right and .suit.max then basically any backend will do.
This is why it feels like a reasonable path off awesomewm to me. I always considered awesomewm to be the WMConstructionKit, and while river changes how you interact there is still a nice route to extensibility. The newer direction even more so than the -classic offshoot.
¹ https://codeberg.org/river/river-classic