dotfiles/bin/.bin/fuzzel.lua
2025-04-21 12:10:40 -03:00

53 lines
1.2 KiB
Lua

return {
selector_cmd = function()
return {
command = "rofi",
args = { "-dmenu", "-p", "Project: " },
}
end,
editor_cmd = function(path, class)
local dirName = path:match("([^/]+)$")
-- Sanitize dirName for tmux session name (remove special chars)
local tmuxSession = dirName:gsub("[^a-zA-Z0-9_]", "_")
local tmuxCmd = string.format(
[[ tmux has-session -t %s 2>/dev/null && tmux attach -t %s || tmux new -c %s -s %s 'nvim %s' \; split-window -h -c %s ]],
tmuxSession,
tmuxSession,
path,
tmuxSession,
path,
path
)
return {
command = "kitty",
args = {
"-d",
path,
"-T",
class,
"--class",
class,
"sh",
"-c",
tmuxCmd,
},
}
end,
format_project_title = function(path)
-- Extract project name for better display
-- local projectName = path:match("([^/]+)$") or path
return "📘 " .. path
end,
extract_path_from_title = function(title)
-- Return back the path: 📘 work/project_1 -> work/project_1
return title:gsub("^📘%s*", ""):gsub("\n$", "")
end,
-- Add error handling function
handle_error = function(err)
io.stderr:write("Error: " .. tostring(err) .. "\n")
return false
end,
}