# ![presence.nvim](https://gist.githubusercontent.com/andweeb/df3216345530234289b87cf5080c2c60/raw/8de399cfed82c137f793e9f580027b5246bc4379/presence.nvim.png) This repository uses [![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits&logoColor=white)](https://conventionalcommits.org) **[Features](#features)** | **[Installation](#installation)** | **[Configuration](#configuration)** | **[Troubleshooting](#troubleshooting)** | **[Development](#development)** | **[Contributing](#contributing)** > Discord [Rich Presence](https://discord.com/rich-presence) plugin for [Neovim](https://neovim.io) ![Presence demo](https://gist.githubusercontent.com/andweeb/df3216345530234289b87cf5080c2c60/raw/ad916fec8de921d0021801a0af877a5349621e7e/presence-demo-a.gif) ## Features - Light and unobtrusive - No Python/Node providers (or CoC) required - Cross-platform support: macOS, nixOS, Linux[\*](#notes), Windows, WSL - Startup time is fast(er than other Rich Presence plugins, by [kind of a lot](https://github.com/jiriks74/presence.nvim/wiki/Plugin-Comparisons)) - Written in Lua and [highly configurable](#configuration) in Lua (but also configurable in VimL if you want) - Manages Rich Presence across multiple Neovim instances in various environments (tmux panes/windows, ssh sessions, terminal tabs/windows, etc.) - Now with Flatpak support! ## Installation > [!Note] > > Requires [Neovim 0.5](https://github.com/neovim/neovim/releases/tag/v0.5.0) > or higher Use your favorite plugin manager - [vim-plug](https://github.com/junegunn/vim-plug): `Plug 'jiriks74/presence.nvim'` - [packer.nvim](https://github.com/wbthomason/packer.nvim): `use 'jiriks74/presence.nvim'` - [lazy.nvim](https://github.com/folke/lazy.nvim): ```lua { "jiriks74/presence.nvim", event = "UIEnter", }, ``` Rich Presence should work automatically after installation > [!Important] > > If you're using WSL1 there's additional setup needed. > WSL2 **is not supported** but ***may*** work. > [**See Wiki**](https://github.com/jiriks74/presence.nvim/wiki/Rich-Presence-in-WSL)) ## Configuration Configuration is not necesary unless you want to override the default config. If you want to change the default config here are your options in Lua and VimL: ### Lua Require the plugin and call `setup` with a config table with one or more of the following keys: ```lua -- The setup config table shows all available config options with their default values: require("presence").setup({ -- General options auto_update = true, -- Update activity based on autocmd events (if `false`, map or manually execute `:lua package.loaded.presence:update()`) neovim_image_text = "The One True Text Editor", -- Text displayed when hovered over the Neovim image main_image = "neovim", -- Main image display (either "neovim" or "file") client_id = "1172122807501594644", -- Use your own Discord application client id (not recommended) log_level = nil, -- Log messages at or above this level (one of the following: "debug", "info", "warn", "error") debounce_timeout = 10, -- Number of seconds to debounce events (or calls to `:lua package.loaded.presence:update(, true)`) enable_line_number = false, -- Displays the current line number instead of the current project blacklist = {}, -- A list of strings or Lua patterns that disable Rich Presence if the current file name, path, or workspace matches buttons = true, -- Configure Rich Presence button(s), either a boolean to enable/disable, a static table (`{{ label = "