Repository navigation
Purring may have developed as an evolutionary advantage as a signaling mechanism of reassurance between mother cats and nursing kittens, who are thought to use it as a care-soliciting signal. Although purring is popularly interpreted as indicative of pleasure, it has been recorded in a wide variety of circumstances, most of which involve physical contact between the cat and another, presumably trusted individual.
Changelog
New features
- Koshka now has the
koshconfbuiltin andkosh.conffor shell settings.- Every setting is now stored in
/etc/kosh/kosh.confand~/.config/kosh/kosh.conf.koshconf create koshwrites a fresh configuration file that documents every setting, andkoshconf set mood bash --persistsaves a change. .koshrcis gone. Thekoshmood now sourcesrc.kosh, and thebashmood loads existing Bash startup files untouched. Seekosh-switching(5).
- Every setting is now stored in
set --tab-selector,set -o space-after-completion,set -o mimicry, and related flags have been updated to havekoshconfsettings (completion.menu_style,completion.add_space_after_completed_word, andinterpreter.mimic_shebang).--no-configstarts the shell without loading them.- The line editor has been updated to have a kill ring, transposes,
Ctrl-X Ctrl-E, undo onCtrl-Z, live diagnostics in the hint row,M-xin Emacs mode, and:s,gg, andGin Vi mode. - Prompt rendering now has a right prompt (
RPS1andRPROMPT), a transient prompt (KOSH_TRANSIENT_PS1), andKOSH_PS1_...variables for every prompt escape. - Koshka now has the
slurpbuiltin, a full-screen file editor built on the line editor with Emacs and Vi keys.koshkitalso haskoshkit viandkoshkit emacslinked to it. koshkithas been updated to have new utilities and GNU options.- The utility suite now has
less,more,pwdx, andmeow. - Bundled utilities now have
sed -i,grep -H,grep -L,grep -m,grep -a,cp -a,date -d,diff -q,wc -L, additionalsortorders,cut --complement,xargs -P,realpath --relative-to, NUL-terminated output, and-xor--one-file-systemacross recursive tools.
- The utility suite now has
sourcenow has--moodto run a file in a selected mood.znow has an exact directory check before a frecency match, andcdnow hasinterpreter.cd_is_zto fall back toz.- Koshka moved to fennec-support.
- The build system now has
MODE=tinyrel(up to 40% smaller),NO_KOSHKIT=1(omits bundled utilities), andHARDENED=1(traps on an out-of-bounds index). - The release installers have been updated to have PowerShell 5 support and now install all three manual pages.
Fixes
- Windows process substitution now has a private pipe implementation, and
/dev/nulland/tmpmap to their Windows equivalents.compatibility.dev_nullandcompatibility.slash_tmpturn the mappings off. - The parser and utilities have been updated to have fixes for data loss, crashes, and wrong results on hostile input.
- Extended regular expressions now have back-reference support on Linux and Windows, and an invalid
=~regular expression returns2like Bash. - Restricted shells now refuse mood,
koshconf, and Koshkit changes, and history files are no longer written to restricted paths.
Performance
- Execution now has 2x the speed of Dash and 6x the speed of Bash, and static analysis checks 400,000 lines of shell in under a second.
- Release binaries now have context-sensitive profile-guided optimization.
- Regular expressions in
[[ =~ ]],grep,sed, andexprnow have 2x to 3x the speed on Linux and Windows.
Downloads
The recommended way to install is to run:
# on Linux, macOS, or any system with a POSIX shell:
curl -fsSL "https://fennec.support/kosh/install" | sh
# on Windows, Powershell:
irm "https://fennec.support/kosh/install" | iex
# on Linux or macOS, with Homebrew:
brew tap fennec-support/kosh
brew install fennec-support/kosh/kosh
# with Docker, as an Alpine image:
docker run --rm -it "ghcr.io/fennec-support/kosh"These commands do everything for you automatically, invoked install.sh/ps1 from the scripts/ on the master branch, based on your system.
Please check the editor integrations:
| VS Code | Zed | Neovim |
|---|---|---|
| kosh-vscode | kosh-zed | kosh.nvim |
Below are the attached assets:
| Download | OS | Arch | Size |
|---|---|---|---|
kosh-linux-amd64-0.4.0 |
Linux | x86-64 | 7.5 MiB |
kosh-win32-amd64-0.4.0.exe |
Windows | x86-64 | 9.9 MiB |
kosh-linux-aarch64-0.4.0 |
Linux | AARCH64 | 7.0 MiB |
kosh-darwin-aarch64-0.4.0 |
macOS | Apple Silicon | 5.2 MiB |
Extras
| File | Contents | Size |
|---|---|---|
kosh.1.zst |
The kosh(1) manpage |
65.9 KiB |
kosh.5.zst |
The kosh(5) manpage |
12.2 KiB |
kosh-switching.5.zst |
The kosh-switching(5) manpage |
2.7 KiB |
kosh.bash |
The bash-completion script | 25.7 KiB |
Read README.md or the manpages for usage information. Contact the author if you have any questions, or need help.
New Contributors
- @ilyhalight made their first contribution in #12
Full Changelog: 0.3.0...0.4.0
