feat: add yazi integration with fish

This commit is contained in:
DACHXY 2025-01-25 21:09:16 +08:00
parent 24afd66d64
commit 3049173514
12 changed files with 2386 additions and 3 deletions

View file

@ -0,0 +1,7 @@
set -l nix_shell_info (
if test -n "$IN_NIX_SHELL"
echo -n "<nix-shell> "
end
)
echo -n -s "$nix_shell_info ~>"

View file

@ -0,0 +1,71 @@
return {
{
"lewis6991/hover.nvim",
opts = {
init = function()
-- Require providers
require("hover.providers.lsp")
-- require('hover.providers.gh')
-- require('hover.providers.gh_user')
-- require('hover.providers.jira')
-- require('hover.providers.dap')
-- require("hover.providers.fold_preview")
require("hover.providers.diagnostic")
-- require('hover.providers.man')
-- require('hover.providers.dictionary')
end,
preview_opts = {
border = "single",
},
-- Whether the contents of a currently open hover window should be moved
-- to a :h preview-window when pressing the hover keymap.
preview_window = false,
title = true,
mouse_providers = {
"LSP",
},
mouse_delay = 1000,
},
keys = {
{
"K",
mode = { "n" },
function()
require("hover").hover()
end,
desc = "hover.nvim",
},
{
"gK",
mode = { "n" },
function()
require("hover").hover_select()
end,
desc = "hover.nvim (select)",
},
{
"<c-p>",
mode = { "n" },
function()
require("hover").hover_switch("previous")
end,
desc = "hover.nvim (previous source)",
},
{
"<c-n>",
mode = { "n" },
function()
require("hover").hover_switch("next")
end,
desc = "hover.nvim (next source)",
},
{
"<MouseMove>",
function()
require("hover").hover_mouse()
end,
desc = "hover.nvim (mouse)",
},
},
},
}

View file

@ -0,0 +1,173 @@
# vim:fileencoding=utf-8:foldmethod=marker
# : Manager {{{
[manager]
cwd = { fg = "#8bd5ca" }
# Hovered
hovered = { reversed = true }
preview_hovered = { underline = true }
# Find
find_keyword = { fg = "#eed49f", bold = true, italic = true, underline = true }
find_position = { fg = "#f5bde6", bg = "reset", bold = true, italic = true }
# Marker
marker_copied = { fg = "#a6da95", bg = "#a6da95" }
marker_cut = { fg = "#ed8796", bg = "#ed8796" }
marker_marked = { fg = "#8bd5ca", bg = "#8bd5ca" }
marker_selected = { fg = "#eed49f", bg = "#eed49f" }
# Tab
tab_active = { reversed = true }
tab_inactive = {}
tab_width = 1
# Count
count_copied = { fg = "#24273a", bg = "#a6da95" }
count_cut = { fg = "#24273a", bg = "#ed8796" }
count_selected = { fg = "#24273a", bg = "#eed49f" }
# Border
border_symbol = "│"
border_style = { fg = "#8087a2" }
# : }}}
# : Mode {{{
[mode]
normal_main = { fg = "#24273a", bg = "#8aadf4", bold = true }
normal_alt = { fg = "#8aadf4", bg = "#363a4f" }
# Select mode
select_main = { fg = "#24273a", bg = "#8bd5ca", bold = true }
select_alt = { fg = "#8bd5ca", bg = "#363a4f" }
# Unset mode
unset_main = { fg = "#24273a", bg = "#f0c6c6", bold = true }
unset_alt = { fg = "#f0c6c6", bg = "#363a4f" }
# : }}}
# : Status bar {{{
[status]
separator_open = ""
separator_close = ""
# Progress
progress_label = { fg = "#ffffff", bold = true }
progress_normal = { fg = "#8aadf4", bg = "#494d64" }
progress_error = { fg = "#ed8796", bg = "#494d64" }
# Permissions
perm_sep = { fg = "#8087a2" }
perm_type = { fg = "#8aadf4" }
perm_read = { fg = "#eed49f" }
perm_write = { fg = "#ed8796" }
perm_exec = { fg = "#a6da95" }
# : }}}
# : Pick {{{
[pick]
border = { fg = "#8aadf4" }
active = { fg = "#f5bde6", bold = true }
inactive = {}
# : }}}
# : Input {{{
[input]
border = { fg = "#8aadf4" }
title = {}
value = {}
selected = { reversed = true }
# : }}}
# : Completion {{{
[completion]
border = { fg = "#8aadf4" }
# : }}}
# : Tasks {{{
[tasks]
border = { fg = "#8aadf4" }
title = {}
hovered = { fg = "#f5bde6", underline = true }
# : }}}
# : Which {{{
[which]
mask = { bg = "#363a4f" }
cand = { fg = "#8bd5ca" }
rest = { fg = "#939ab7" }
desc = { fg = "#f5bde6" }
separator = "  "
separator_style = { fg = "#5b6078" }
# : }}}
# : Help {{{
[help]
on = { fg = "#8bd5ca" }
run = { fg = "#f5bde6" }
hovered = { reversed = true, bold = true }
footer = { fg = "#363a4f", bg = "#cad3f5" }
# : }}}
# : Notify {{{
[notify]
title_info = { fg = "#a6da95" }
title_warn = { fg = "#eed49f" }
title_error = { fg = "#ed8796" }
# : }}}
# : File-specific styles {{{
[filetype]
rules = [
# Images
{ mime = "image/*", fg = "#8bd5ca" },
# Media
{ mime = "{audio,video}/*", fg = "#eed49f" },
# Archives
{ mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", fg = "#f5bde6" },
# Documents
{ mime = "application/{pdf,doc,rtf}", fg = "#a6da95" },
# Fallback
{ name = "*", fg = "#cad3f5" },
{ name = "*/", fg = "#8aadf4" }
]
# : }}}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,3 @@
[flavor]
dark = "catppuccin-macchiato"
light = "catppuccin-macchiato"

View file

@ -33,6 +33,10 @@ in
source = "${configDir}/ghostty";
};
".face".source = "${configDir}/.face";
".hyprlock_bg.svg".source = "${configDir}/hyprlock_bg.vsg";
".config/fish/functions".source = "${configDir}/fish/functions";
".config/yazi" = {
recursive = true;
source = "${configDir}/yazi";
};
};
}

View file

@ -47,6 +47,7 @@
stylelint-lsp
stylelint
clang-tools
taplo
];
plugins = with pkgs.vimPlugins; [
@ -110,6 +111,7 @@
markdown-preview-nvim
render-markdown-nvim
image-nvim
hover-nvim
# Python
neotest-python
@ -225,6 +227,7 @@
{ import = "lazyvim.plugins.extras.util.dot" },
{ import = "lazyvim.plugins.extras.util.mini-hipatterns" },
{ import = "lazyvim.plugins.extras.editor.telescope" },
{ import = "lazyvim.plugins.extras.editor.refactoring" },
-- uncomment to import/override with your plugins
{ import = "plugins" },

View file

@ -66,6 +66,9 @@ in
cava
papirus-folders
inkscape
# PDF Preview
poppler
])
++ [
vesktopOverride # discord

View file

@ -1,4 +1,9 @@
{ pkgs, inputs, ... }:
{
pkgs,
inputs,
system,
...
}:
let
userChrome = builtins.readFile ../config/firefox/autohide_toolbox.css;
profileSettings = {
@ -25,6 +30,12 @@ in
package = pkgs.vscode;
};
yazi = {
enable = true;
package = inputs.yazi.packages.${system}.default;
enableFishIntegration = true;
};
obs-studio = {
enable = true;
plugins = with pkgs.obs-studio-plugins; [

View file

@ -8,6 +8,16 @@ in
enable = true;
interactiveShellInit = ''
set fish_greeting # Disable greeting
# Yazi
function y
set tmp (mktemp -t "yazi-cwd.XXXXXX")
yazi $argv --cwd-file="$tmp"
if set cwd (command cat -- "$tmp"); and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
builtin cd -- "$cwd"
end
rm -f -- "$tmp"
end
'';
plugins = [
{

View file

@ -3,6 +3,23 @@
{
boot.kernelPackages = pkgs.linuxPackages_latest;
fileSystems."/mnt/ssd" = {
device = "/dev/disk/by-uuid/4E21-0000";
fsType = "exfat";
options = [
"x-systemd.automount"
"noauto"
"x-systemd.idle-timeout=600"
"nofail"
"user"
"x-gvfs-show"
"gid=1000"
"uid=1000"
"dmask=000"
"fmask=000"
];
};
fileSystems."/mnt/storage" = {
device = "router.dn:/mnt/storage";
fsType = "nfs";

View file

@ -47,6 +47,7 @@
gh # Github cli tool
gnumake
lm_sensors
temurin-jre-bin
openssl
openssl.dev
pkg-config # Include Lib
@ -103,6 +104,5 @@
])
++ [
inputs.ghostty.packages.${system}.default
inputs.yazi.packages.${system}.default
];
}