presence.nvim​ **[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) demo.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/andweeb/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 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", }, ``` ### Notes - Requires [Neovim 0.5](https://github.com/neovim/neovim/releases/tag/v0.5.0) or higher - Rich Presence should work automatically after installation (unless you're using WSL, in which case [see here](https://github.com/andweeb/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 = "793271441293967371", -- 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 = "