44 lines
2 KiB
Lua
44 lines
2 KiB
Lua
require("pika.core")
|
|
require("pika.lazy")
|
|
|
|
-- ─< Call the function to set the desired colorscheme >────────────────────────────────
|
|
-- ╭──────────────────────────────────────────────────────╮
|
|
-- │ themes are under ./lua/pika/plugins/colorschemes.lua │
|
|
-- ╰──────────────────────────────────────────────────────╯
|
|
|
|
vim.cmd.colorscheme("oldschool")
|
|
|
|
-- Keybind for saving clipboard screenshot and inserting a Markdown link
|
|
vim.api.nvim_set_keymap("n", "<leader>ps", ":lua SaveScreenshotAndInsertLink()<CR>", { noremap = true, silent = true })
|
|
|
|
function SaveScreenshotAndInsertLink()
|
|
-- Prompt for Hugo base directory if needed
|
|
|
|
-- Define the Hugo base directory and screenshot subfolder path
|
|
local base_dir
|
|
local current_file_dir = vim.fn.expand("%:p:h")
|
|
|
|
-- Detect base dir by looking for the Hugo structure, or prompt if not found
|
|
if current_file_dir:match("/content/") then
|
|
base_dir = current_file_dir:match("(.*)/content/")
|
|
else
|
|
-- Prompt for Hugo base directory if automatic detection fails
|
|
base_dir = vim.fn.input("Enter base directory of your Hugo site: ", "", "file")
|
|
end
|
|
|
|
local img_folder = base_dir .. "/static/images/screenshots/"
|
|
vim.fn.mkdir(img_folder, "p") -- Ensure the directory exists
|
|
|
|
-- Define the image name and full path
|
|
local img_name = os.date("%Y-%m-%d_%H-%M-%S") .. ".png"
|
|
local full_path = img_folder .. img_name
|
|
|
|
-- Save clipboard image as binary PNG file using wl-paste
|
|
os.execute("wl-paste --type image/png > " .. full_path)
|
|
|
|
-- Insert markdown image link at cursor position
|
|
local img_markdown = "\n"
|
|
vim.api.nvim_put({ img_markdown }, "c", true, true)
|
|
|
|
print("Screenshot saved and link added: " .. full_path)
|
|
end
|