feat: add presence.nvim config options

This commit is contained in:
NotAShelf 2023-02-18 15:32:43 +03:00
parent 94412c6d6c
commit 31e7645ce1
No known key found for this signature in database
GPG key ID: 5B5C8895F28445F1
5 changed files with 131 additions and 33 deletions

View file

@ -163,7 +163,20 @@ inputs: let
vim.comments = { vim.comments = {
comment-nvim.enable = true; comment-nvim.enable = true;
kommentary = builtins.trace "WARNING: kommentary is deprecated and will be removed in the future, use comment-nvim instead" {enable = false;}; kommentary. enable = false;
};
vim.presence = {
presence-nvim = {
enable = true;
auto_update = true;
image_text = "The One True Text Editor";
client_id = "793271441293967371";
main_image = "neovim";
rich_presence = {
editing_text = "Editing %s";
};
};
}; };
}; };
}; };

View file

@ -289,22 +289,6 @@
"type": "github" "type": "github"
} }
}, },
"discord-nvim": {
"flake": false,
"locked": {
"lastModified": 1674984077,
"narHash": "sha256-ZpsunLsn//zYgUtmAm5FqKVueVd/Pa1r55ZDqxCimBk=",
"owner": "andweeb",
"repo": "presence.nvim",
"rev": "87c857a56b7703f976d3a5ef15967d80508df6e6",
"type": "github"
},
"original": {
"owner": "andweeb",
"repo": "presence.nvim",
"type": "github"
}
},
"dressing-nvim": { "dressing-nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -1026,6 +1010,22 @@
"type": "github" "type": "github"
} }
}, },
"presence-nvim": {
"flake": false,
"locked": {
"lastModified": 1674984077,
"narHash": "sha256-ZpsunLsn//zYgUtmAm5FqKVueVd/Pa1r55ZDqxCimBk=",
"owner": "andweeb",
"repo": "presence.nvim",
"rev": "87c857a56b7703f976d3a5ef15967d80508df6e6",
"type": "github"
},
"original": {
"owner": "andweeb",
"repo": "presence.nvim",
"type": "github"
}
},
"registers": { "registers": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -1081,7 +1081,6 @@
"copilot-lua": "copilot-lua", "copilot-lua": "copilot-lua",
"crates-nvim": "crates-nvim", "crates-nvim": "crates-nvim",
"dashboard-nvim": "dashboard-nvim", "dashboard-nvim": "dashboard-nvim",
"discord-nvim": "discord-nvim",
"dressing-nvim": "dressing-nvim", "dressing-nvim": "dressing-nvim",
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
@ -1122,6 +1121,7 @@
"onedark": "onedark", "onedark": "onedark",
"orgmode-nvim": "orgmode-nvim", "orgmode-nvim": "orgmode-nvim",
"plenary-nvim": "plenary-nvim", "plenary-nvim": "plenary-nvim",
"presence-nvim": "presence-nvim",
"registers": "registers", "registers": "registers",
"rnix-lsp": "rnix-lsp", "rnix-lsp": "rnix-lsp",
"rust-tools": "rust-tools", "rust-tools": "rust-tools",

View file

@ -181,7 +181,7 @@
}; };
# Presence # Presence
discord-nvim = { presence-nvim = {
url = "github:andweeb/presence.nvim"; url = "github:andweeb/presence.nvim";
flake = false; flake = false;
}; };

View file

@ -1,5 +1,5 @@
_: { _: {
imports = [ imports = [
./discord-nvim.nix ./presence-nvim.nix
]; ];
} }

View file

@ -10,6 +10,91 @@ with builtins; let
in { in {
options.vim.presence.presence-nvim = { options.vim.presence.presence-nvim = {
enable = mkEnableOption "Enable presence.nvim plugin"; enable = mkEnableOption "Enable presence.nvim plugin";
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";
};
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@ -20,25 +105,25 @@ in {
require("presence").setup({ require("presence").setup({
-- General options -- General options
auto_update = true, auto_update = true,
neovim_image_text = "The One True Text Editor", neovim_image_text = ${cfg.image_text},
main_image = "neovim", main_image = ${cfg.main_image},
client_id = "793271441293967371", client_id = ${cfg.client_id},
log_level = nil, log_level = nil,
debounce_timeout = 10, debounce_timeout = 10,
enable_line_number = false, enable_line_number = ${boolToString cfg.enable_line_number},
blacklist = {}, blacklist = {},
buttons = true, buttons = ${boolToString cfg.buttons},
file_assets = {}, file_assets = {},
show_time = true, show_time = ${boolToString cfg.show_time},
-- Rich Presence text options -- Rich Presence text options
editing_text = "Editing %s", editing_text = ${cfg.rich_presence.editing_text},
file_explorer_text = "Browsing %s", file_explorer_text = ${cfg.rich_presence.file_explorer_text},
git_commit_text = "Committing changes", git_commit_text = ${cfg.rich_presence.git_commit_text},
plugin_manager_text = "Managing plugins", plugin_manager_text = ${cfg.rich_presence.plugin_manager_text},
reading_text = "Reading %s", reading_text = ${cfg.rich_presence.reading_text},
workspace_text = "Working on %s", workspace_text = ${cfg.rich_presence.workspace_text},
line_number_text = "Line %s out of %s", line_number_text = ${cfg.rich_presence.line_number_text},
}) })
''; '';
}; };