Daniel's Personal `kakrc`
This is my personal Kakoune configuration. I use autoyadm to keep the upstream
repository up-to-date. I'll do my best to document everything, but note that
this document may be out-of-date at any given time -- my configuration tends to
evolve quickly.
- [Bindings](#bindings)
- [Plugins](#plugins)
- [Self-Written](#self-written)
- [External](#external)
- [Organization](#organization)
- [Autoload](#autoload)
## Bindings
I type on the Colemak-DH layout. [autoload/colemak.kak](./autoload/colemak.kak)
rebinds many default keys. If the bindings in `kakrc` seem strange, that's why.
## Plugins
I use `kak-bundle` to install some external plugins. Many others, I simply copy
the upstream code directly into my config. Some plugins I've written myself have
been separated into other repositories. Check
[git.sr.ht/~ficd](https://git.sr.ht/~ficd) to find them.
### Self-Written
- List of self-written plugins I use. Will be updated later.
### External
- List of external plugins I use. Will be updated later.
## Organization
- `kakrc` mainly contains mappings, utility commands, and setup that depends on
plugins/modules from `autoload` being present. (_`autoload` doesn't guarantee
any load order_).
- [`scripts`](./scripts) contains scripts written in formats other than Kakoune.
- [`autoload`](#autoload) contains everything that isn't in `kakrc`.
### Autoload
- `stdlib` contains symlinks to the standard RC in `/usr/share/kak/rc`. The
reason I don't symlink then entire directory is to retain control over which
files are actually loaded, in case I want to override any.
- `detection` contains patched versions of standard RC files.
- `filetype` contains custom filetype support.
- `fishr` is a module for writing expansions in `fish` shell.
- `bootstrap.kak` installs external dependencies of my configuration. Untested
and likely out-of-date.
- `byline.kak` is a fork of a plugin adding Helix-like `x` and `X` commands.
- `clipboard.kak` has `wl-clipboard` integration.
- `colemak.kak` rebinds defaults according to my preferences as a Colemak-DH
user.
- `filetype.kak` contains some filetype-specific logic like setting up
formatters.
- `format.kak` is my patch of the standard RC formatter.
- `git-mode.kak` has Git-related commands and bindings.
- `grep.kak` has some convenience functionality built on standard RC `grep`
module.
- `helix-scroll.kak` improves the `` command.
- `hop.kak` setup for the `hop.kak` plugin.
- `hump.kak` modified external plugin.
- `insert-mode.kak` defines convenience mappings for insert mode.
- `lsp.kak` contains my `kakoune-lsp` configuration with some custom logic and
functions.
- `man.kak` is a patched version of standard RC `man` module.
- `notes.kak` is a copy of an external plugin.
- `paragraph.kak` provides a user mode for paragraph-related actions.
- `picker.kak` is a simple file picker.
- `plugins.kak` has setup for all plugins I install with `kak-bundle`.
- `proj.kak` implements a command for starting a documentation client and
project-specific `.kakrc.local` configurations.
- `sh.kak` provides a convenience command for running shell commands from the
prompt.
- `spell.kak` implements convenience mappings and hooks built on standard RC
`spell` module.
- `surround.kak` implements Helix-like surrounding actions.
- `swiper.kak` is an external plugin.
- `title-bar.kak` is a symlink to my plugin.
- `tree-sitter.kak` fixes tree-sitter highlighting for `kakoune-lsp` `*hover*`
buffers.
- `ui-mode.kak` provides a user mode for toggling various UI elements.
- `yazi.kak` provides `yazi` integration.