2023-02-05 21:56:40 +01:00
|
|
|
{
|
|
|
|
pkgs,
|
|
|
|
config,
|
|
|
|
lib,
|
|
|
|
...
|
|
|
|
}:
|
|
|
|
with lib;
|
|
|
|
with builtins; let
|
|
|
|
cfg = config.vim.presence.presence-nvim;
|
|
|
|
in {
|
|
|
|
options.vim.presence.presence-nvim = {
|
|
|
|
enable = mkEnableOption "Enable presence.nvim plugin";
|
2023-02-18 13:32:43 +01:00
|
|
|
|
|
|
|
image_text = mkOption {
|
|
|
|
type = types.str;
|
|
|
|
default = "The One True Text Editor";
|
|
|
|
description = "Text displayed when hovering over the Neovim image";
|
|
|
|
};
|
|
|
|
|
|
|
|
main_image = mkOption {
|
|
|
|
type = types.str;
|
|
|
|
default = "neovim";
|
|
|
|
description = "Main image to be displayed";
|
|
|
|
};
|
|
|
|
|
|
|
|
client_id = mkOption {
|
|
|
|
type = types.str;
|
|
|
|
default = "859194972255989790";
|
|
|
|
description = "Client ID of the application";
|
|
|
|
};
|
|
|
|
auto_update = mkOption {
|
|
|
|
type = types.bool;
|
|
|
|
default = true;
|
|
|
|
description = "Automatically update the presence";
|
|
|
|
};
|
|
|
|
|
|
|
|
enable_line_number = mkOption {
|
|
|
|
type = types.bool;
|
|
|
|
default = false;
|
|
|
|
description = "Show line number on the RPC item";
|
|
|
|
};
|
|
|
|
|
|
|
|
buttons = mkOption {
|
|
|
|
type = types.bool;
|
|
|
|
default = true;
|
|
|
|
description = "Show buttons on the RPC item";
|
|
|
|
};
|
|
|
|
|
|
|
|
show_time = mkOption {
|
|
|
|
type = types.bool;
|
|
|
|
default = true;
|
|
|
|
description = "Show time on the RPC item";
|
|
|
|
};
|
|
|
|
|
|
|
|
rich_presence = {
|
|
|
|
editing_text = mkOption {
|
|
|
|
type = types.str;
|
|
|
|
default = "Editing %s";
|
|
|
|
description = "Text displayed when editing a file";
|
|
|
|
};
|
|
|
|
|
|
|
|
file_explorer_text = mkOption {
|
|
|
|
type = types.str;
|
|
|
|
default = "Browsing %s";
|
|
|
|
description = "Text displayed when browsing files";
|
|
|
|
};
|
|
|
|
|
|
|
|
git_commit_text = mkOption {
|
|
|
|
type = types.str;
|
|
|
|
default = "Committing changes";
|
|
|
|
description = "Text displayed when committing changes";
|
|
|
|
};
|
|
|
|
|
|
|
|
plugin_manager_text = mkOption {
|
|
|
|
type = types.str;
|
|
|
|
default = "Managing plugins";
|
|
|
|
description = "Text displayed when managing plugins";
|
|
|
|
};
|
|
|
|
|
|
|
|
reading_text = mkOption {
|
|
|
|
type = types.str;
|
|
|
|
default = "Reading %s";
|
|
|
|
description = "Text displayed when reading a file";
|
|
|
|
};
|
|
|
|
|
|
|
|
workspace_text = mkOption {
|
|
|
|
type = types.str;
|
|
|
|
default = "Working on %s";
|
|
|
|
description = "Text displayed when working on a project";
|
|
|
|
};
|
|
|
|
|
|
|
|
line_number_text = mkOption {
|
|
|
|
type = types.str;
|
|
|
|
default = "Line %s out of %s";
|
|
|
|
description = "Text displayed when showing line number";
|
|
|
|
};
|
|
|
|
};
|
2023-02-05 21:56:40 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
config = mkIf cfg.enable {
|
|
|
|
vim.startPlugins = ["presence-nvim"];
|
|
|
|
|
|
|
|
vim.luaConfigRC.presence-nvim = nvim.dag.entryAnywhere ''
|
2023-02-16 21:33:04 +01:00
|
|
|
-- Description of each option can be found in https://github.com/andweeb/presence.nvim
|
2023-02-05 21:56:40 +01:00
|
|
|
require("presence").setup({
|
|
|
|
-- General options
|
|
|
|
auto_update = true,
|
2023-02-18 13:32:43 +01:00
|
|
|
neovim_image_text = ${cfg.image_text},
|
|
|
|
main_image = ${cfg.main_image},
|
|
|
|
client_id = ${cfg.client_id},
|
2023-02-05 21:56:40 +01:00
|
|
|
log_level = nil,
|
|
|
|
debounce_timeout = 10,
|
2023-02-18 13:32:43 +01:00
|
|
|
enable_line_number = ${boolToString cfg.enable_line_number},
|
2023-02-05 21:56:40 +01:00
|
|
|
blacklist = {},
|
2023-02-18 13:32:43 +01:00
|
|
|
buttons = ${boolToString cfg.buttons},
|
2023-02-05 21:56:40 +01:00
|
|
|
file_assets = {},
|
2023-02-18 13:32:43 +01:00
|
|
|
show_time = ${boolToString cfg.show_time},
|
2023-02-05 21:56:40 +01:00
|
|
|
|
|
|
|
-- Rich Presence text options
|
2023-02-18 13:32:43 +01:00
|
|
|
editing_text = ${cfg.rich_presence.editing_text},
|
|
|
|
file_explorer_text = ${cfg.rich_presence.file_explorer_text},
|
|
|
|
git_commit_text = ${cfg.rich_presence.git_commit_text},
|
|
|
|
plugin_manager_text = ${cfg.rich_presence.plugin_manager_text},
|
|
|
|
reading_text = ${cfg.rich_presence.reading_text},
|
|
|
|
workspace_text = ${cfg.rich_presence.workspace_text},
|
|
|
|
line_number_text = ${cfg.rich_presence.line_number_text},
|
2023-02-05 21:56:40 +01:00
|
|
|
})
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
}
|