mirror of
https://github.com/Theaninova/TheaninovOS.git
synced 2026-10-04 12:41:59 +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 = {
|
neo-tree = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
event_handlers = [
|
window.position = "float";
|
||||||
{
|
|
||||||
event = "neo_tree_buffer_leave";
|
|
||||||
handler.__raw = ''
|
|
||||||
function()
|
|
||||||
require('neo-tree').close_all()
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
];
|
|
||||||
filesystem = {
|
filesystem = {
|
||||||
use_libuv_file_watcher = true;
|
use_libuv_file_watcher = true;
|
||||||
follow_current_file.enabled = true;
|
follow_current_file.enabled = true;
|
||||||
filtered_items.visible = true;
|
filtered_items.visible = true;
|
||||||
};
|
};
|
||||||
popupBorderStyle = "rounded";
|
popup_border_style = "";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
which-key.settings.spec = [
|
which-key.settings.spec = [
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
|
|
||||||
./aerial.nix
|
./aerial.nix
|
||||||
./auto-save.nix
|
./auto-save.nix
|
||||||
|
./auto-session.nix
|
||||||
./auto-format.nix
|
./auto-format.nix
|
||||||
./harpoon.nix
|
./harpoon.nix
|
||||||
./mergetool.nix
|
./mergetool.nix
|
||||||
|
|||||||
@@ -10,49 +10,60 @@ in
|
|||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
keymaps = [
|
keymaps = [
|
||||||
{
|
{
|
||||||
key = "hh";
|
key = "<leader>m";
|
||||||
mode = "n";
|
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 = {
|
plugins.harpoon = {
|
||||||
telescope.enable = true;
|
enable = true;
|
||||||
harpoon = {
|
enableTelescope = true;
|
||||||
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 = "";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ in
|
|||||||
settings = {
|
settings = {
|
||||||
direction = lib.mkDefault "vertical";
|
direction = lib.mkDefault "vertical";
|
||||||
size = lib.mkDefault 60;
|
size = lib.mkDefault 60;
|
||||||
|
float_opts.border = config.opts.winborder;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -6,10 +6,16 @@
|
|||||||
vimAlias = true;
|
vimAlias = true;
|
||||||
nixpkgs.useGlobalPackages = true;
|
nixpkgs.useGlobalPackages = true;
|
||||||
|
|
||||||
|
extraConfigLuaPre = ''
|
||||||
|
require('vim._core.ui2').enable()
|
||||||
|
'';
|
||||||
|
|
||||||
opts = {
|
opts = {
|
||||||
number = true;
|
number = true;
|
||||||
relativenumber = true;
|
relativenumber = true;
|
||||||
|
|
||||||
|
cmdheight = 0;
|
||||||
|
|
||||||
tabstop = 2;
|
tabstop = 2;
|
||||||
softtabstop = 2;
|
softtabstop = 2;
|
||||||
shiftwidth = 2;
|
shiftwidth = 2;
|
||||||
@@ -28,6 +34,9 @@
|
|||||||
updatetime = 50;
|
updatetime = 50;
|
||||||
|
|
||||||
fillchars.eob = " ";
|
fillchars.eob = " ";
|
||||||
|
|
||||||
|
winborder = "solid";
|
||||||
|
pumborder = "solid";
|
||||||
};
|
};
|
||||||
clipboard = {
|
clipboard = {
|
||||||
register = "unnamedplus";
|
register = "unnamedplus";
|
||||||
@@ -37,11 +46,13 @@
|
|||||||
|
|
||||||
presets = {
|
presets = {
|
||||||
auto-save.enable = true;
|
auto-save.enable = true;
|
||||||
|
auto-session.enable = true;
|
||||||
auto-format.enable = true;
|
auto-format.enable = true;
|
||||||
lazygit.enable = true;
|
lazygit.enable = true;
|
||||||
mergetool.enable = true;
|
mergetool.enable = true;
|
||||||
undotree.enable = true;
|
undotree.enable = true;
|
||||||
aerial.enable = true;
|
aerial.enable = true;
|
||||||
|
harpoon.enable = true;
|
||||||
base = {
|
base = {
|
||||||
completion = {
|
completion = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -55,7 +66,7 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
prettier = true;
|
prettier = true;
|
||||||
};
|
};
|
||||||
leap.enable = false;
|
leap.enable = true;
|
||||||
spellcheck.enable = true;
|
spellcheck.enable = true;
|
||||||
status-line.enable = true;
|
status-line.enable = true;
|
||||||
syntax.enable = true;
|
syntax.enable = true;
|
||||||
@@ -103,13 +114,6 @@
|
|||||||
enable = false; # TODO: looks weird with Neovide
|
enable = false; # TODO: looks weird with Neovide
|
||||||
settings.line_numbers = false;
|
settings.line_numbers = false;
|
||||||
};
|
};
|
||||||
auto-session = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
cwd_change_handling = true;
|
|
||||||
use_git_branch = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
lsp.servers = {
|
lsp.servers = {
|
||||||
html.enable = true;
|
html.enable = true;
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ in
|
|||||||
services = {
|
services = {
|
||||||
kmscon = {
|
kmscon = {
|
||||||
enable = true;
|
enable = true;
|
||||||
hwaccel = true;
|
config.hwaccel = true;
|
||||||
};
|
};
|
||||||
greetd = {
|
greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ in
|
|||||||
services = {
|
services = {
|
||||||
kmscon = {
|
kmscon = {
|
||||||
enable = true;
|
enable = true;
|
||||||
hwaccel = true;
|
config.hwaccel = true;
|
||||||
};
|
};
|
||||||
greetd = {
|
greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user