8 releases (4 stable)
new 2.2.0 | Dec 27, 2024 |
---|---|
2.0.5 | Dec 24, 2024 |
0.0.4 | Dec 22, 2024 |
#45 in Command line utilities
563 downloads per month
205KB
5.5K
SLoC
🧩 Cord – Tailor Your Presence Like Never Before
🚀 The most extensible Discord Rich Presence plugin for Neovim, powered by Rust.
📚 Table of Contents
💎 Features
- 🌐 Client-Server Design — Handles multiple Neovim instances with a single connection to Discord.
- ⚡ Performance in Mind — Lightweight, dependency-free, with blazingly-fast startup.
- 🚀 Event-Driven Architecture — Instant presence updates with zero delays.
- 🎨 Customizable Templates — Dynamic string templates with custom variables.
- 🔧 Unmatched Configurability — Function-based configuration for infinite customization possibilities.
- 🧠 Automated State Handling — Automatically manages activities across all instances.
- 💤 Smart Idle Detection — Identifies idle sessions and switches to the most recent non-idle session.
- 🛠️ Built-in Git Integration — Detects repositories and workspaces based on VCS files without relying on command-line tools.
- 🌍 Cross-Platform — Supports Windows, Linux (Flatpak/Snap), macOS, and BSD.
- 🌸 Rich Icon Collection — Features over 70 uniquely designed icons.
📦 Install
Considerations
Expand
Cord requires the server executables to be present. To get it, you can either:
- Fetch from GitHub: By invoking
:Cord fetch
(async, recommended)- Requires
curl
- Requires
- Build and install from crates.io: By invoking
:Cord build
(async)- Requires
Rust
>= 1.85.0 nightly
- Requires
- Build from source: By invoking
cargo b --release
and then manually moving the resulting binary tonvim-data-dir/cord/bin
- Requires
Rust
>= 1.85.0 nightly
- Requires
- Download from GitHub: Get latest release from https://github.com/vyfor/cord.nvim/releases/latest, rename it to cord[.exe] and place it under
nvim-data-dir/cord/bin
Installation
Using lazy.nvim
{
'vyfor/cord.nvim',
branch = 'client-server',
build = ':Cord fetch',
opts = {}, -- calls require('cord').setup()
}
Using packer.nvim
use {
'vyfor/cord.nvim',
branch = 'client-server',
run = ':Cord fetch',
config = function()
require('cord').setup()
end
}
Using Vim packages
Unix:
git clone -b client-server --single-branch https://github.com/vyfor/cord.nvim ~/.local/share/nvim/site/pack/plugins/start/cord.nvim
Windows:
git clone -b client-server --single-branch https://github.com/vyfor/cord.nvim $LOCALAPPDATA/nvim-data/site/pack/plugins/start/cord.nvim
Then call the following function somewhere in your configuration:
require('cord').setup()
Invoke :Cord fetch
to whenever the plugin is updated.
Other
Make sure you call the following function somewhere in your configuration:
require('cord').setup()
Invoke :Cord fetch
to whenever the plugin is updated.
🎨 Themes
Cord features over 70 beautifully designed icons for languages and components with distinct themes, with more to come!
📖 Documentation
- Configuration Guide: Everything you need to customize Cord.
- Examples: Creative ways to customize your Discord presence.
- Migration Guide: Smooth migration from Cord v1.
- Wiki: Examples, best practices, and FAQs. (Coming soon)
🤝 Contributing
We welcome contributions to make Cord even better!
- Check out our Contribution Guidelines.
❓ FAQ
Have questions or issues?
💬 Questions? Reach me out on Discord: vyfor