mirror of
https://github.com/Theaninova/TheaninovOS.git
synced 2026-10-03 12:11:51 +00:00
feat: auto-session
feat: vim ui2 feat: harpoon feat: nvim changes
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.presets.auto-session;
|
||||
in
|
||||
{
|
||||
options.presets.auto-session = {
|
||||
enable = lib.mkEnableOption "auto session";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
opts.sessionoptions = lib.mkDefault (
|
||||
lib.strings.concatStringsSep "," [
|
||||
"blank"
|
||||
"buffers"
|
||||
"curdir"
|
||||
"folds"
|
||||
"help"
|
||||
"tabpages"
|
||||
"winsize"
|
||||
"winpos"
|
||||
"terminal"
|
||||
"localoptions"
|
||||
]
|
||||
);
|
||||
|
||||
plugins = {
|
||||
auto-session = {
|
||||
enable = lib.mkDefault true;
|
||||
settings = {
|
||||
cwd_change_handling = lib.mkDefault true;
|
||||
lazy_support = false;
|
||||
show_auto_restore_notif = true;
|
||||
bypass_save_filetypes = [ "neo-tree" ];
|
||||
};
|
||||
};
|
||||
lz-n.enable = true;
|
||||
neo-tree.lazyLoad = {
|
||||
enable = true;
|
||||
settings.cmd = "Neotree";
|
||||
};
|
||||
fidget.lazyLoad = {
|
||||
enable = true;
|
||||
settings = {
|
||||
event = [ "LspAttach" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -21,22 +21,13 @@ in
|
||||
neo-tree = {
|
||||
enable = true;
|
||||
settings = {
|
||||
event_handlers = [
|
||||
{
|
||||
event = "neo_tree_buffer_leave";
|
||||
handler.__raw = ''
|
||||
function()
|
||||
require('neo-tree').close_all()
|
||||
end
|
||||
'';
|
||||
}
|
||||
];
|
||||
window.position = "float";
|
||||
filesystem = {
|
||||
use_libuv_file_watcher = true;
|
||||
follow_current_file.enabled = true;
|
||||
filtered_items.visible = true;
|
||||
};
|
||||
popupBorderStyle = "rounded";
|
||||
popup_border_style = "";
|
||||
};
|
||||
};
|
||||
which-key.settings.spec = [
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
./aerial.nix
|
||||
./auto-save.nix
|
||||
./auto-session.nix
|
||||
./auto-format.nix
|
||||
./harpoon.nix
|
||||
./mergetool.nix
|
||||
|
||||
@@ -10,49 +10,60 @@ in
|
||||
config = lib.mkIf cfg.enable {
|
||||
keymaps = [
|
||||
{
|
||||
key = "hh";
|
||||
key = "<leader>m";
|
||||
mode = "n";
|
||||
action = ":Telescope harpoon marks<CR>";
|
||||
action.__raw = ''
|
||||
function() require("harpoon"):list():add() end
|
||||
'';
|
||||
options.desc = "Mark";
|
||||
}
|
||||
{
|
||||
key = "<leader><leader>";
|
||||
mode = "n";
|
||||
action.__raw = ''
|
||||
function()
|
||||
local harpoon = require("harpoon")
|
||||
local conf = require("telescope.config").values
|
||||
|
||||
local harpoon_files = harpoon:list()
|
||||
|
||||
local file_paths = {}
|
||||
for _, item in ipairs(harpoon_files.items) do
|
||||
table.insert(file_paths, item.value)
|
||||
end
|
||||
|
||||
require("telescope.pickers").new({}, {
|
||||
prompt_title = "Harpoon",
|
||||
finder = require("telescope.finders").new_table({
|
||||
results = file_paths,
|
||||
}),
|
||||
previewer = conf.file_previewer({}),
|
||||
sorter = conf.generic_sorter({}),
|
||||
}):find()
|
||||
end
|
||||
'';
|
||||
options.desc = "Harpoon List";
|
||||
}
|
||||
{
|
||||
key = "<C-n>";
|
||||
mode = "n";
|
||||
action.__raw = ''
|
||||
function() require("harpoon"):list():next() end
|
||||
'';
|
||||
options.desc = "Harpoon Next";
|
||||
}
|
||||
{
|
||||
key = "<C-p>";
|
||||
mode = "n";
|
||||
action.__raw = ''
|
||||
function() require("harpoon"):list():prev() end
|
||||
'';
|
||||
options.desc = "Harpoon Prev";
|
||||
}
|
||||
];
|
||||
plugins = {
|
||||
telescope.enable = true;
|
||||
harpoon = {
|
||||
enable = true;
|
||||
enableTelescope = true;
|
||||
keymaps = {
|
||||
addFile = "hm";
|
||||
navNext = "hn";
|
||||
navPrev = "hp";
|
||||
};
|
||||
};
|
||||
which-key.settings.spec = [
|
||||
{
|
||||
__unkeyed-1 = "h";
|
||||
group = "Harpoon";
|
||||
icon = "";
|
||||
}
|
||||
{
|
||||
__unkeyed-1 = "hh";
|
||||
desc = "Marks";
|
||||
icon = "";
|
||||
}
|
||||
{
|
||||
__unkeyed-1 = "hm";
|
||||
desc = "Add File";
|
||||
icon = "";
|
||||
}
|
||||
{
|
||||
__unkeyed-1 = "hn";
|
||||
desc = "Next";
|
||||
icon = "";
|
||||
}
|
||||
{
|
||||
__unkeyed-1 = "hp";
|
||||
desc = "Prev";
|
||||
icon = "";
|
||||
}
|
||||
];
|
||||
plugins.harpoon = {
|
||||
enable = true;
|
||||
enableTelescope = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -64,6 +64,7 @@ in
|
||||
settings = {
|
||||
direction = lib.mkDefault "vertical";
|
||||
size = lib.mkDefault 60;
|
||||
float_opts.border = config.opts.winborder;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -6,10 +6,16 @@
|
||||
vimAlias = true;
|
||||
nixpkgs.useGlobalPackages = true;
|
||||
|
||||
extraConfigLuaPre = ''
|
||||
require('vim._core.ui2').enable()
|
||||
'';
|
||||
|
||||
opts = {
|
||||
number = true;
|
||||
relativenumber = true;
|
||||
|
||||
cmdheight = 0;
|
||||
|
||||
tabstop = 2;
|
||||
softtabstop = 2;
|
||||
shiftwidth = 2;
|
||||
@@ -28,6 +34,9 @@
|
||||
updatetime = 50;
|
||||
|
||||
fillchars.eob = " ";
|
||||
|
||||
winborder = "solid";
|
||||
pumborder = "solid";
|
||||
};
|
||||
clipboard = {
|
||||
register = "unnamedplus";
|
||||
@@ -37,11 +46,13 @@
|
||||
|
||||
presets = {
|
||||
auto-save.enable = true;
|
||||
auto-session.enable = true;
|
||||
auto-format.enable = true;
|
||||
lazygit.enable = true;
|
||||
mergetool.enable = true;
|
||||
undotree.enable = true;
|
||||
aerial.enable = true;
|
||||
harpoon.enable = true;
|
||||
base = {
|
||||
completion = {
|
||||
enable = true;
|
||||
@@ -55,7 +66,7 @@
|
||||
enable = true;
|
||||
prettier = true;
|
||||
};
|
||||
leap.enable = false;
|
||||
leap.enable = true;
|
||||
spellcheck.enable = true;
|
||||
status-line.enable = true;
|
||||
syntax.enable = true;
|
||||
@@ -103,13 +114,6 @@
|
||||
enable = false; # TODO: looks weird with Neovide
|
||||
settings.line_numbers = false;
|
||||
};
|
||||
auto-session = {
|
||||
enable = true;
|
||||
settings = {
|
||||
cwd_change_handling = true;
|
||||
use_git_branch = true;
|
||||
};
|
||||
};
|
||||
|
||||
lsp.servers = {
|
||||
html.enable = true;
|
||||
|
||||
@@ -90,7 +90,7 @@ in
|
||||
services = {
|
||||
kmscon = {
|
||||
enable = true;
|
||||
hwaccel = true;
|
||||
config.hwaccel = true;
|
||||
};
|
||||
greetd = {
|
||||
enable = true;
|
||||
|
||||
@@ -137,7 +137,7 @@ in
|
||||
services = {
|
||||
kmscon = {
|
||||
enable = true;
|
||||
hwaccel = true;
|
||||
config.hwaccel = true;
|
||||
};
|
||||
greetd = {
|
||||
enable = true;
|
||||
|
||||
Reference in New Issue
Block a user