45 lines
1.9 KiB
Markdown
45 lines
1.9 KiB
Markdown
# Agent Guidelines: Aerc Configuration Repository
|
|
|
|
This repository contains the configuration and customization for `aerc`, a terminal-based email client. It is optimized for a workflow involving `notmuch` for indexing, `mbsync` for synchronization, `abook` for address management, `khal` for calendar, and `taskwarrior` for tasks.
|
|
|
|
## 1. Build, Lint, and Test Commands
|
|
|
|
### Sync and Maintenance
|
|
- **Global Sync**: Run `mailsync` (bound to `u` in `aerc`) to perform:
|
|
1. `mbsync -a` (Mail sync)
|
|
2. `vdirsyncer sync` (Calendar sync)
|
|
3. `caldawarrior sync` (Task sync)
|
|
4. `notmuch new` for all account databases (Indexing)
|
|
5. `notmuch-abook-sync` (Address book population)
|
|
|
|
### Linting
|
|
- **Permissions**: `accounts.conf` must be `0600`.
|
|
- **Dependencies**: `w3m`, `bat`, `yazi`, `notmuch`, `abook`, `pass`, `isync`, `khal`, `vdirsyncer`, `task`, `taskwarrior-tui`, `caldawarrior`.
|
|
|
|
### Testing
|
|
- **Filters**: `cat email.html | w3m -T text/html -dump`
|
|
- **Calendar**: `khal list`
|
|
- **Tasks**: `task list`
|
|
|
|
## 2. Code Style Guidelines
|
|
|
|
### Aerc Configuration
|
|
- **Notmuch URI**: Use absolute triple-slash format: `source = notmuch:///home/liph/Mail/account_name`.
|
|
- **Credentials**: Use `pass` via `outgoing-cred-cmd = pass show mail/account_email`.
|
|
- **Sidebar**: Use separate `notmuch` databases per account directory for isolation.
|
|
|
|
### Keybindings
|
|
- **Leader**: `,` (comma).
|
|
- **Tab switching**: `Alt+n` (next) and `Alt+p` (prev).
|
|
- **Contacts**: `,ab` opens `abook`.
|
|
- **Calendar**: `,ca` opens unified `khal`.
|
|
- **Tasks**: `,ta` opens `taskwarrior-tui`.
|
|
|
|
### Terminal Tabs (Khal/Taskwarrior)
|
|
- **Escape**: Press `Ctrl+x` to release terminal focus and use `aerc` commands.
|
|
- **Tab Passthrough**: `Tab` and `Backtab` are passed to terminal apps for internal navigation.
|
|
|
|
### Neovim integration (`after/ftplugin/mail.lua`)
|
|
- **Completion**: Triggered by `Tab` on header lines using `abook --mutt-query`.
|
|
- **Fzf**: Triggered by `Ctrl+f` for interactive contact selection.
|