mirror of
https://github.com/mintycube/dotfiles.git
synced 2024-10-22 14:05:41 +02:00
Improve fuz script with cache
This commit is contained in:
parent
a3cdb6e102
commit
fc7ace626f
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" },
|
"Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" },
|
||||||
"LuaSnip": { "branch": "master", "commit": "de1a287c9cb525ae52bc846e8f6207e5ef1da5ac" },
|
"LuaSnip": { "branch": "master", "commit": "878ace11983444d865a72e1759dbcc331d1ace4c" },
|
||||||
"alpha-nvim": { "branch": "main", "commit": "41283fb402713fc8b327e60907f74e46166f4cfd" },
|
"alpha-nvim": { "branch": "main", "commit": "41283fb402713fc8b327e60907f74e46166f4cfd" },
|
||||||
"cmp-async-path": { "branch": "main", "commit": "7df7f3721c45aac26b6e0474087538f4681c9c7a" },
|
"cmp-async-path": { "branch": "main", "commit": "7df7f3721c45aac26b6e0474087538f4681c9c7a" },
|
||||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||||
@ -10,56 +10,55 @@
|
|||||||
"cmp-vimtex": { "branch": "master", "commit": "a64b1b5eec0460144c91c4f20a45c74b8ded48ae" },
|
"cmp-vimtex": { "branch": "master", "commit": "a64b1b5eec0460144c91c4f20a45c74b8ded48ae" },
|
||||||
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
||||||
"flit.nvim": { "branch": "main", "commit": "56490317983218b09698f8c960c3669958b12b32" },
|
"flit.nvim": { "branch": "main", "commit": "56490317983218b09698f8c960c3669958b12b32" },
|
||||||
"friendly-snippets": { "branch": "main", "commit": "dd2fd1281d4b22e7b4a5bfafa3e142d958e251f2" },
|
"friendly-snippets": { "branch": "main", "commit": "d0610077b6129cf9f7f78afbe3a1425d60f6e2f1" },
|
||||||
"fzf-lua": { "branch": "main", "commit": "677055fc5793ad6d52dac89957c8b015fc74de55" },
|
"fzf-lua": { "branch": "main", "commit": "b92220ec838c195eb1c711daa69c905b1d7b8d8c" },
|
||||||
"gitsigns.nvim": { "branch": "main", "commit": "805610a9393fa231f2c2b49cb521bfa413fadb3d" },
|
"gitsigns.nvim": { "branch": "main", "commit": "75dc649106827183547d3bedd4602442340d2f7f" },
|
||||||
"harpoon": { "branch": "harpoon2", "commit": "0378a6c428a0bed6a2781d459d7943843f374bce" },
|
"harpoon": { "branch": "harpoon2", "commit": "0378a6c428a0bed6a2781d459d7943843f374bce" },
|
||||||
"indent-blankline.nvim": { "branch": "master", "commit": "ece00d5fb44d196680a81fd2761062d2fa44663b" },
|
"indent-blankline.nvim": { "branch": "master", "commit": "d98f537c3492e87b6dc6c2e3f66ac517528f406f" },
|
||||||
"lazy.nvim": { "branch": "main", "commit": "0de782a6b0ffba599dbd332a4019d852564bf28c" },
|
"lazy.nvim": { "branch": "main", "commit": "24fa2a97085ca8a7220b5b078916f81e316036fd" },
|
||||||
"leap.nvim": { "branch": "main", "commit": "b1ecfb63c0b8babfd0dcd6b5ca6de37bbf3526cd" },
|
"leap.nvim": { "branch": "main", "commit": "f6cfd526ebaf56f005cca6a4a4735a854172982e" },
|
||||||
"lf.nvim": { "branch": "master", "commit": "69ab1efcffee6928bf68ac9bd0c016464d9b2c8b" },
|
"lf.nvim": { "branch": "master", "commit": "69ab1efcffee6928bf68ac9bd0c016464d9b2c8b" },
|
||||||
"lsp-zero.nvim": { "branch": "v3.x", "commit": "f12d50716e8e59ea9f5cf484eac6968c33a95917" },
|
"lsp-zero.nvim": { "branch": "v3.x", "commit": "16de3b18c5f7b6230d89b8e64ce9a4801b6f8d08" },
|
||||||
"lspkind.nvim": { "branch": "master", "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" },
|
"lspkind.nvim": { "branch": "master", "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" },
|
||||||
"luarocks.nvim": { "branch": "main", "commit": "d3dda396d66e484590f253d1ac6d8980e3130807" },
|
"lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" },
|
||||||
"luasnip-latex-snippets.nvim": { "branch": "main", "commit": "4b91f28d91979f61a3e8aef1cee5b7c7f2c7beb8" },
|
"luasnip-latex-snippets.nvim": { "branch": "main", "commit": "4b91f28d91979f61a3e8aef1cee5b7c7f2c7beb8" },
|
||||||
"markdown-preview.nvim": { "branch": "main", "commit": "462ce41af003f5cdadab856f3a42dc27e39b89c8" },
|
"markdown-preview.nvim": { "branch": "main", "commit": "462ce41af003f5cdadab856f3a42dc27e39b89c8" },
|
||||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "a4caa0d083aab56f6cd5acf2d42331b74614a585" },
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "a4caa0d083aab56f6cd5acf2d42331b74614a585" },
|
||||||
"mason-nvim-dap.nvim": { "branch": "main", "commit": "67210c0e775adec55de9826b038e8b62de554afc" },
|
"mason-nvim-dap.nvim": { "branch": "main", "commit": "67210c0e775adec55de9826b038e8b62de554afc" },
|
||||||
"mason.nvim": { "branch": "main", "commit": "49ff59aded1047a773670651cfa40e76e63c6377" },
|
"mason.nvim": { "branch": "main", "commit": "49ff59aded1047a773670651cfa40e76e63c6377" },
|
||||||
"mini.ai": { "branch": "main", "commit": "a0262e61f79dfc7bb940d1719c00b0ede042ddd7" },
|
"mini.ai": { "branch": "main", "commit": "7859b6344f5cee567a94f173859d25e20ba1a77e" },
|
||||||
"mini.statusline": { "branch": "main", "commit": "dfd3d2ba295473930f78f143852b9b53eb54ae2a" },
|
"mini.surround": { "branch": "main", "commit": "27096c1a27324ee8f2044ea2adc77366d8a782de" },
|
||||||
"mini.surround": { "branch": "main", "commit": "c52aa751daf62d4a9e6ee24c4a91882ef6842f99" },
|
"none-ls.nvim": { "branch": "main", "commit": "f5b960a73418249aebcdae3455de320360509253" },
|
||||||
"none-ls.nvim": { "branch": "main", "commit": "37671797d6e5f9bd0ee3ab965ab2e6de251e1930" },
|
|
||||||
"nvim-autopairs": { "branch": "master", "commit": "c15de7e7981f1111642e7e53799e1211d4606cb9" },
|
"nvim-autopairs": { "branch": "master", "commit": "c15de7e7981f1111642e7e53799e1211d4606cb9" },
|
||||||
"nvim-cmp": { "branch": "main", "commit": "5260e5e8ecadaf13e6b82cf867a909f54e15fd07" },
|
"nvim-cmp": { "branch": "main", "commit": "5260e5e8ecadaf13e6b82cf867a909f54e15fd07" },
|
||||||
"nvim-colorizer.lua": { "branch": "master", "commit": "85855b38011114929f4058efc97af1059ab3e41d" },
|
"nvim-colorizer.lua": { "branch": "master", "commit": "85855b38011114929f4058efc97af1059ab3e41d" },
|
||||||
"nvim-dap": { "branch": "master", "commit": "5a2f7121869394502521c52b2bc581ab22c69447" },
|
"nvim-dap": { "branch": "master", "commit": "abb238f631609ea4be496ba7946f4f3aaec86c6a" },
|
||||||
"nvim-dap-ui": { "branch": "master", "commit": "5934302d63d1ede12c0b22b6f23518bb183fc972" },
|
"nvim-dap-ui": { "branch": "master", "commit": "b7267003ba4dd860350be86f75b9d9ea287cedca" },
|
||||||
"nvim-dap-virtual-text": { "branch": "master", "commit": "3e8e207513e6ef520894950acd76b79902714103" },
|
"nvim-dap-virtual-text": { "branch": "master", "commit": "d7c695ea39542f6da94ee4d66176f5d660ab0a77" },
|
||||||
"nvim-html-css": { "branch": "main", "commit": "c514bd27ad560636ed39dea3e370b3103754e244" },
|
"nvim-html-css": { "branch": "main", "commit": "c514bd27ad560636ed39dea3e370b3103754e244" },
|
||||||
"nvim-lspconfig": { "branch": "master", "commit": "9bda20fb967075355f253911bc066a8b5a03c77e" },
|
"nvim-lspconfig": { "branch": "master", "commit": "38de86f82efd9ba0881203767d6a8e1815abca28" },
|
||||||
"nvim-markdown": { "branch": "master", "commit": "75639723c1a3a44366f80cff11383baf0799bcb5" },
|
"nvim-markdown": { "branch": "master", "commit": "75639723c1a3a44366f80cff11383baf0799bcb5" },
|
||||||
"nvim-nio": { "branch": "master", "commit": "8765cbc4d0c629c8158a5341e1b4305fd93c3a90" },
|
"nvim-nio": { "branch": "master", "commit": "632024157d01e8bc48fd7df6a7de8ffe3fdd4f3a" },
|
||||||
"nvim-spectre": { "branch": "master", "commit": "50e96602153f14c913e1969aaf9720e080394eb3" },
|
"nvim-spectre": { "branch": "master", "commit": "366f46fdd4a1593cc237aea13d5ef113739a472c" },
|
||||||
"nvim-treesitter": { "branch": "master", "commit": "7c9c5bed8340031f8a6dad47a58a26eaf15b9a56" },
|
"nvim-treesitter": { "branch": "master", "commit": "b91ae14fc3bb801c7ea69bc283fe860b32b5163d" },
|
||||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "5f9bf4b1ead7707e4e74e5319ee56bdc81fb73db" },
|
"nvim-treesitter-textobjects": { "branch": "master", "commit": "3557e41418b4a6c5b85d5d64abe94c9c50fa9b14" },
|
||||||
"nvim-ts-autotag": { "branch": "main", "commit": "cb57b07803476ee902c89412aeff219a9a58be13" },
|
"nvim-ts-autotag": { "branch": "main", "commit": "bcf3146864262ef2d3c877beba3e222b5c73780d" },
|
||||||
"nvim-ts-context-commentstring": { "branch": "main", "commit": "cbab9ad88036915beebd13b47e100743ff2ed2d5" },
|
"nvim-ts-context-commentstring": { "branch": "main", "commit": "cb064386e667def1d241317deed9fd1b38f0dc2e" },
|
||||||
"nvim-ufo": { "branch": "main", "commit": "4b4077850d1b3af09f4957b67144943cf3da401a" },
|
"nvim-ufo": { "branch": "main", "commit": "65dda6360879f6ffe0278163b9192a573a0d2a08" },
|
||||||
"nvim-web-devicons": { "branch": "master", "commit": "e37bb1feee9e7320c76050a55443fa843b4b6f83" },
|
"nvim-web-devicons": { "branch": "master", "commit": "b77921fdc44833c994fdb389d658ccbce5490c16" },
|
||||||
"outline.nvim": { "branch": "main", "commit": "139e363dd5a44f66a51041264aabe3884df4dd98" },
|
"outline.nvim": { "branch": "main", "commit": "6a91568110684ac056e62e3b2d7409d7c8b2e5e1" },
|
||||||
"oxocarbon.nvim": { "branch": "main", "commit": "c5846d10cbe4131cc5e32c6d00beaf59cb60f6a2" },
|
"oxocarbon.nvim": { "branch": "main", "commit": "c5846d10cbe4131cc5e32c6d00beaf59cb60f6a2" },
|
||||||
"persistence.nvim": { "branch": "main", "commit": "5fe077056c821aab41f87650bd6e1c48cd7dd047" },
|
"persistence.nvim": { "branch": "main", "commit": "5fe077056c821aab41f87650bd6e1c48cd7dd047" },
|
||||||
"plenary.nvim": { "branch": "master", "commit": "b5c8de02a44ffeabff678090edd6a132ff8ab77d" },
|
"plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
|
||||||
"project.nvim": { "branch": "main", "commit": "8c6bad7d22eef1b71144b401c9f74ed01526a4fb" },
|
"project.nvim": { "branch": "main", "commit": "8c6bad7d22eef1b71144b401c9f74ed01526a4fb" },
|
||||||
"promise-async": { "branch": "main", "commit": "93540c168c5ed2b030ec3e6c40ab8bbb85e36355" },
|
"promise-async": { "branch": "main", "commit": "93540c168c5ed2b030ec3e6c40ab8bbb85e36355" },
|
||||||
"qalc.nvim": { "branch": "main", "commit": "1b800b5d8f956c4780f079333cba4d8fb8c335a3" },
|
"qalc.nvim": { "branch": "main", "commit": "1b800b5d8f956c4780f079333cba4d8fb8c335a3" },
|
||||||
"refactoring.nvim": { "branch": "master", "commit": "d2786877c91aa409c824f27b4ce8a9f560dda60a" },
|
"refactoring.nvim": { "branch": "master", "commit": "d2786877c91aa409c824f27b4ce8a9f560dda60a" },
|
||||||
"rose-pine": { "branch": "main", "commit": "b6fe88c3282cf9f117a3e836d761c2d78d02f417" },
|
"rose-pine": { "branch": "main", "commit": "87aa437172357ad8f916942bca249ceadc6c68b1" },
|
||||||
"todo-comments.nvim": { "branch": "main", "commit": "a7e39ae9e74f2c8c6dc4eea6d40c3971ae84752d" },
|
"todo-comments.nvim": { "branch": "main", "commit": "e1549807066947818113a7d7ed48f637e49620d3" },
|
||||||
"toggleterm.nvim": { "branch": "main", "commit": "fee58a0473fd92b28c34f8f724e4918b15ba30a3" },
|
"toggleterm.nvim": { "branch": "main", "commit": "fee58a0473fd92b28c34f8f724e4918b15ba30a3" },
|
||||||
"tokyodark.nvim": { "branch": "master", "commit": "ba538ab69e8a4e3ebac127734b7deff9e7462463" },
|
"tokyodark.nvim": { "branch": "master", "commit": "ba538ab69e8a4e3ebac127734b7deff9e7462463" },
|
||||||
"tokyonight.nvim": { "branch": "main", "commit": "7fc18e82575f5b482b758b6dddfe97b606819a20" },
|
"tokyonight.nvim": { "branch": "main", "commit": "0fae425aaab04a5f97666bd431b96f2f19c36935" },
|
||||||
"trouble.nvim": { "branch": "main", "commit": "a8264a65a0b894832ea642844f5b7c30112c458f" },
|
"trouble.nvim": { "branch": "main", "commit": "a8264a65a0b894832ea642844f5b7c30112c458f" },
|
||||||
"undotree": { "branch": "main", "commit": "eab459ab87dd249617b5f7187bb69e614a083047" },
|
"undotree": { "branch": "main", "commit": "eab459ab87dd249617b5f7187bb69e614a083047" },
|
||||||
"vim-be-good": { "branch": "master", "commit": "4fa57b7957715c91326fcead58c1fa898b9b3625" },
|
"vim-be-good": { "branch": "master", "commit": "4fa57b7957715c91326fcead58c1fa898b9b3625" },
|
||||||
|
@ -73,36 +73,5 @@ return {
|
|||||||
vim.g.vimtex_compiler_method = "tectonic"
|
vim.g.vimtex_compiler_method = "tectonic"
|
||||||
-- vim.cmd("call vimtex#init()")
|
-- vim.cmd("call vimtex#init()")
|
||||||
end,
|
end,
|
||||||
},
|
}
|
||||||
{
|
|
||||||
"vhyrro/luarocks.nvim",
|
|
||||||
priority = 1000,
|
|
||||||
config = true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nvim-neorg/neorg",
|
|
||||||
enabled = false,
|
|
||||||
dependencies = { "luarocks.nvim" },
|
|
||||||
lazy = false, -- Disable lazy loading as some `lazy.nvim` distributions set `lazy = true` by default
|
|
||||||
version = "*", -- Pin Neorg to the latest stable release
|
|
||||||
config = function()
|
|
||||||
require("neorg").setup {
|
|
||||||
load = {
|
|
||||||
["core.defaults"] = {},
|
|
||||||
["core.concealer"] = {},
|
|
||||||
["core.dirman"] = {
|
|
||||||
config = {
|
|
||||||
workspaces = {
|
|
||||||
notes = "~/notes",
|
|
||||||
},
|
|
||||||
default_workspace = "notes",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
vim.wo.foldlevel = 99
|
|
||||||
vim.wo.conceallevel = 2
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ xrdbpid=$! # Uncomment to use Xresources colors/settings on startup
|
|||||||
|
|
||||||
pidof -sx dunst || dunst -config "${XDG_CONFIG_HOME:-$HOME/.config}"/dunst/config &
|
pidof -sx dunst || dunst -config "${XDG_CONFIG_HOME:-$HOME/.config}"/dunst/config &
|
||||||
|
|
||||||
autostart="mpd pipewire unclutter remapd clipmenud"
|
autostart="mpd pipewire unclutter remapd clipmenud fuz-cache"
|
||||||
|
|
||||||
for program in $autostart; do
|
for program in $autostart; do
|
||||||
pidof -sx "$program" || "$program" &
|
pidof -sx "$program" || "$program" &
|
||||||
|
@ -44,6 +44,7 @@ z4h init || return
|
|||||||
# Extend PATH.
|
# Extend PATH.
|
||||||
export PATH="$PATH:${$(find ~/.local/bin -type d -printf %p:)%%:}"
|
export PATH="$PATH:${$(find ~/.local/bin -type d -printf %p:)%%:}"
|
||||||
export PATH=$PATH:~/.local/share/npm/bin
|
export PATH=$PATH:~/.local/share/npm/bin
|
||||||
|
export PATH=$PATH:~/.local/share/nvim/mason/bin
|
||||||
|
|
||||||
# Export environment variables.
|
# Export environment variables.
|
||||||
export GPG_TTY=$TTY
|
export GPG_TTY=$TTY
|
||||||
@ -53,8 +54,7 @@ export TERMINAL_PROG="st"
|
|||||||
export BROWSER="firefox"
|
export BROWSER="firefox"
|
||||||
export MANPAGER="nvim +Man!"
|
export MANPAGER="nvim +Man!"
|
||||||
export XDG_SESSION_TYPE="x11"
|
export XDG_SESSION_TYPE="x11"
|
||||||
export FZF_DEFAULT_OPTS="--height=50% --reverse --info=inline-right \
|
export FZF_DEFAULT_OPTS="--height=50% --reverse --prompt=' ' --pointer=' ' --ellipsis='' --color='16'"
|
||||||
--height=100% --prompt=' ' --pointer=' ' --ellipsis='' --border=horizontal"
|
|
||||||
|
|
||||||
# ~/ Clean-up:
|
# ~/ Clean-up:
|
||||||
export XDG_CONFIG_HOME="$HOME/.config"
|
export XDG_CONFIG_HOME="$HOME/.config"
|
||||||
@ -140,6 +140,8 @@ function lfcd () {
|
|||||||
function md() { [[ $# == 1 ]] && mkdir -p -- "$1" && cd -- "$1" }
|
function md() { [[ $# == 1 ]] && mkdir -p -- "$1" && cd -- "$1" }
|
||||||
compdef _directories md
|
compdef _directories md
|
||||||
|
|
||||||
|
eval "$(navi widget zsh)"
|
||||||
|
|
||||||
# Set shell options: http://zsh.sourceforge.net/Doc/Release/Options.html.
|
# Set shell options: http://zsh.sourceforge.net/Doc/Release/Options.html.
|
||||||
unsetopt PROMPT_SP
|
unsetopt PROMPT_SP
|
||||||
setopt glob_dots
|
setopt glob_dots
|
||||||
|
102
.local/bin/fuz
102
.local/bin/fuz
@ -1,67 +1,49 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
echo -ne '\e[3 q' # Use underline shape cursor on startup.
|
# Populated by fuz-cache script through xprofile at startup
|
||||||
eval "$(dircolors --sh)" # Setup correct colors
|
CACHE_DIR="/tmp/fuz_cache"
|
||||||
|
|
||||||
|
# Define color escape sequences
|
||||||
|
c_blue='[1;34m'
|
||||||
|
c_gray='[1;90m'
|
||||||
|
c_norm='[0m'
|
||||||
|
h_padding=$(printf '%*s' 23 ' ')
|
||||||
|
h_gap=" ${c_gray}::"
|
||||||
|
|
||||||
|
# Define the header using the escape sequences
|
||||||
|
HEADER="${h_padding}\
|
||||||
|
${c_blue}Prefix${c_gray}:${c_norm}Alt${h_gap}\
|
||||||
|
${c_blue}1${c_gray}:${c_norm}All/Folders/Git${h_gap}\
|
||||||
|
${c_blue}2${c_gray}:${c_norm}Documents${h_gap}\
|
||||||
|
${c_blue}3${c_gray}:${c_norm}Images${h_gap}\
|
||||||
|
${c_blue}4${c_gray}:${c_norm}Videos"
|
||||||
|
|
||||||
|
# --bind "alt-1:transform:[[ ! \$FZF_PROMPT =~ All ]] &&
|
||||||
|
# echo 'change-prompt( All )+reload(cat $CACHE_DIR/all)' ||
|
||||||
|
# echo 'change-prompt( Folders )+reload(cat $CACHE_DIR/folders)'" \
|
||||||
|
fzf_main_func() {
|
||||||
|
cat $CACHE_DIR/all | fzf --ansi --prompt " All " \
|
||||||
|
--bind "alt-1:transform:(
|
||||||
|
([[ \$FZF_PROMPT =~ All ]] && echo 'change-prompt( Folders )+reload(cat $CACHE_DIR/folders)') ||
|
||||||
|
([[ \$FZF_PROMPT =~ Folders ]] && echo 'change-prompt( Git )+reload(cat $CACHE_DIR/git)') ||
|
||||||
|
echo 'change-prompt( All )+reload(cat $CACHE_DIR/all)')" \
|
||||||
|
--bind "alt-2:change-prompt( Documents )+reload(cat $CACHE_DIR/documents)" \
|
||||||
|
--bind "alt-3:change-prompt( Images )+reload(cat $CACHE_DIR/images)" \
|
||||||
|
--bind "alt-4:change-prompt( Videos )+reload(cat $CACHE_DIR/videos)" \
|
||||||
|
--header "$HEADER" \
|
||||||
|
--height=100% --pointer=" " --ellipsis= --header-first --scheme=path --algo=v2 --color="16" \
|
||||||
|
--preview-window "bottom,60%,border-top" --border=none --margin=5%,10%,5%,10% --info=inline-right \
|
||||||
|
--preview "fuz-preview {}"
|
||||||
|
}
|
||||||
|
|
||||||
|
echo -ne '\e[3 q' # Use underline shape cursor on startup.
|
||||||
dwmc setlayoutex 2
|
dwmc setlayoutex 2
|
||||||
|
|
||||||
selection=$(fd --hidden --color=always -E .cache -E .git -E \*github\* -E .local/state -E .ssh -E .android -E GIMP -E Thunar -E .config/blender -E .config/mpv/script_modules -E .config/mpv/scripts -E .config/tmux/plugins -E fontforge -E fzf-tab-completion -E .gnupg -E libreoffice -E node_modules -E \*obsidian -E qBittorrent -E subversion -E \*terminfo |
|
selection=$(fzf_main_func)
|
||||||
fzfp --ansi --prompt " All " \
|
|
||||||
--bind "alt-1:transform:[[ ! \$FZF_PROMPT =~ All ]] &&
|
|
||||||
echo 'change-prompt( All )+reload(fd --hidden --color=always -E .cache -E .git -E \*github\* -E .local/state -E .ssh -E .android -E GIMP -E Thunar -E .config/blender -E .config/mpv/script_modules -E .config/mpv/scripts -E .config/tmux/plugins -E fontforge -E fzf-tab-completion -E .gnupg -E libreoffice -E node_modules -E \*obsidian -E qBittorrent -E subversion -E \*terminfo)' ||
|
|
||||||
echo 'change-prompt( Folders )+reload(fd --color=always --hidden --type directory -E .cache -E .git -E \*github\* -E .local/state -E .ssh -E .android -E GIMP -E Thunar -E .config/blender -E .config/mpv/script_modules -E .config/mpv/scripts -E .config/tmux/plugins -E fontforge -E fzf-tab-completion -E .gnupg -E libreoffice -E node_modules -E \*obsidian -E qBittorrent -E subversion -E \*terminfo)'" \
|
|
||||||
--bind "alt-2:change-prompt( Git )+reload( fd --color=always -HI '^.git$' --type d --base-directory ~ -E .cache -E \*github\* -E .local/state -E .ssh -E .android -E GIMP -E Thunar -E .config/blender -E .config/mpv/script_modules -E .config/mpv/scripts -E .config/tmux/plugins -E fontforge -E fzf-tab-completion -E .gnupg -E libreoffice -E node_modules -E \*obsidian -E qBittorrent -E subversion -E \*terminfo | sed 's|\\[1\;34m\.git\\[0m\\[1\;34m\/\\[0m||')" \
|
|
||||||
--bind "alt-3:change-prompt( Documents )+reload(fd --color=always --hidden -e pdf -e epub -e djvu -E .cache -E .git -E \*github\* -E .local/state -E .ssh -E .android -E GIMP -E Thunar -E .config/blender -E .config/mpv/script_modules -E .config/mpv/scripts -E .config/tmux/plugins -E fontforge -E fzf-tab-completion -E .gnupg -E libreoffice -E node_modules -E \*obsidian -E qBittorrent -E subversion -E \*terminfo)" \
|
|
||||||
--bind "alt-4:change-prompt( Images )+reload(fd --color=always --hidden -e jpg -e jpg -e jpeg -e png -e webp -e bmp -e tiff -e tif -e raw -e ico -e exif -e heic -e heif -e gif -e avif -e jxl -e JPG -e PNG -E .cache -E .git -E \*github\* -E .local/state -E .ssh -E .android -E GIMP -E Thunar -E .config/blender -E .config/mpv/script_modules -E .config/mpv/scripts -E .config/tmux/plugins -E fontforge -E fzf-tab-completion -E .gnupg -E libreoffice -E node_modules -E \*obsidian -E qBittorrent -E subversion -E \*terminfo)" \
|
|
||||||
--bind "alt-5:change-prompt( Videos )+reload(fd --color=always --hidden -e mkv -e mp4 -e mkv -e webm -e avi -E .cache -E .git -E \*github\* -E .local/state -E .ssh -E .android -E GIMP -E Thunar -E .config/blender -E .config/mpv/script_modules -E .config/mpv/scripts -E .config/tmux/plugins -E fontforge -E fzf-tab-completion -E .gnupg -E libreoffice -E node_modules -E \*obsidian -E qBittorrent -E subversion -E \*terminfo)" \
|
|
||||||
--header " [1;34m Prefix[1;90m:[0mAlt [1;90m::[0m [1;34m1[1;90m:[0mAll/Folders [1;90m::[0m [1;34m2[1;90m:[0mGit [1;90m::[0m [1;34m3[1;90m:[0mDocuments [1;90m::[0m [1;34m4[1;90m:[0mImages [1;90m::[0m [1;34m5[1;90m:[0mVideos" \
|
|
||||||
--height=100% --pointer=" " --ellipsis= --info=inline-right --header-first --scheme=path --algo=v2 --color="16" \
|
|
||||||
--preview-window "bottom,60%,border-top" --border=none --margin=5%,10%,5%,10% \
|
|
||||||
--preview "fuz-preview {}")
|
|
||||||
|
|
||||||
# --color="fg:#c0caf5,bg:#16161e,hl:#ff9e64" \
|
if [ -n "$selection" ]; then
|
||||||
# --color="fg+:#c0caf5,bg+:#292e42,hl+:#ff9e64" \
|
fuz-opener "$selection"
|
||||||
# --color="info:#7aa2f7,prompt:#7dcfff,pointer:#7dcfff" \
|
fi
|
||||||
# --color="marker:#9ece6a,spinner:#9ece6a,header:#9ece6a,border:#292e42" \
|
|
||||||
|
|
||||||
|
|
||||||
[ -n "$selection" ] &&
|
|
||||||
case $(file --mime-type "$(readlink -f "$selection")" -b) in
|
|
||||||
image/vnd.djvu | application/pdf | application/postscript | application/epub*) zathura "$selection" >/dev/null 2>&1 ;;
|
|
||||||
text/html) nvim "$selection" ;;
|
|
||||||
text/* | application/json | inode/x-empty | application/x-subrip | application/javascript) nvim "$selection" ;;
|
|
||||||
image/x-xcf) gimp "$selection" >/dev/null 2>&1 ;;
|
|
||||||
image/svg+xml) display -- "$selection" ;;
|
|
||||||
image/*)
|
|
||||||
shopt -s nullglob
|
|
||||||
dir="$(dirname "$selection")"
|
|
||||||
selected_file="$selection"
|
|
||||||
images=()
|
|
||||||
for file in "$dir"/*.{jpg,jpeg,png,webp,bmp,tiff,tif,raw,ico,exif,heic,heif,gif,avif,jxl,JPG,PNG}; do
|
|
||||||
[[ -f "$file" ]] && images+=("$file")
|
|
||||||
done
|
|
||||||
sorted_images=()
|
|
||||||
while IFS= read -r line; do
|
|
||||||
sorted_images+=("$line")
|
|
||||||
done < <(printf "%s\n" "${images[@]}" | sort -fV)
|
|
||||||
for ((i = 0; i < ${#sorted_images[@]}; i++)); do
|
|
||||||
[[ "${sorted_images[i]}" = "$selected_file" ]] && {
|
|
||||||
setsid nsxiv -aon "$((i + 1))" "${sorted_images[@]}"
|
|
||||||
break
|
|
||||||
}
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
audio/* | video/x-ms-asf) mpv --loop-file --profile=builtin-pseudo-gui "$selection" ;;
|
|
||||||
video/*) mpv --loop-file "$selection" -quiet >/dev/null 2>&1 ;;
|
|
||||||
application/pgp-encrypted) nvim "$selection" ;;
|
|
||||||
application/vnd.openxmlformats-officedocument.wordprocessingml.document | application/vnd.oasis.opendocument.text | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | application/vnd.oasis.opendocument.spreadsheet | application/vnd.oasis.opendocument.spreadsheet-template | application/vnd.openxmlformats-officedocument.presentationml.presentation | application/vnd.oasis.opendocument.presentation-template | application/vnd.oasis.opendocument.presentation | application/vnd.ms-powerpoint | application/vnd.oasis.opendocument.graphics | application/vnd.oasis.opendocument.graphics-template | application/vnd.oasis.opendocument.formula | application/vnd.oasis.opendocument.database) libreoffice "$selection" >/dev/null 2>&1 ;;
|
|
||||||
application/octet-stream)
|
|
||||||
case ${selection##*.} in
|
|
||||||
doc | docx | xls | xlsx | odt | ppt | pptx) libreoffice "$selection" >/dev/null 2>&1 ;;
|
|
||||||
ts) mpv "$selection" -quiet >/dev/null 2>&1 ;;
|
|
||||||
*) zathura "$selection" >/dev/null 2>&1 ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
*) lf -command "set hidden" "$selection" ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
|
# Reset layout to tile before exiting
|
||||||
dwmc setlayoutex 0
|
dwmc setlayoutex 0
|
||||||
|
45
.local/bin/fuz-cache
Executable file
45
.local/bin/fuz-cache
Executable file
@ -0,0 +1,45 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
eval "$(dircolors --sh)" # Setup correct colors
|
||||||
|
|
||||||
|
# Cache directory
|
||||||
|
CACHE_DIR="/tmp/fuz_cache"
|
||||||
|
mkdir -p "$CACHE_DIR"
|
||||||
|
|
||||||
|
FD_OPTIONS="--hidden --color=always"
|
||||||
|
|
||||||
|
FD_EXCLUDE_ARGS="-E .cache -E .github -E github -E .local/state -E .ssh -E .android -E GIMP -E Thunar -E .config/blender -E .config/mpv/script_modules -E .config/mpv/scripts -E .config/tmux/plugins -E fontforge -E fzf-tab-completion -E .gnupg -E libreoffice -E node_modules -E obsidian -E .obsidian -E qBittorrent -E subversion -E .terminfo -E terminfo"
|
||||||
|
|
||||||
|
# Function to populate the cache
|
||||||
|
populate_cache() {
|
||||||
|
fd $FD_OPTIONS $FD_EXCLUDE_ARGS -E .git >"$CACHE_DIR/all"
|
||||||
|
fd $FD_OPTIONS $FD_EXCLUDE_ARGS -E .git --type directory >"$CACHE_DIR/folders"
|
||||||
|
fd --color=always -HI '^.git$' --type d --base-directory ~ $FD_EXCLUDE_ARGS |
|
||||||
|
sed 's|\\[1\;34m\.git\\[0m\\[1\;34m\/\\[0m||' >"$CACHE_DIR/git"
|
||||||
|
fd $FD_OPTIONS $FD_EXCLUDE_ARGS -E .git -e pdf -e epub -e djvu >"$CACHE_DIR/documents"
|
||||||
|
fd $FD_OPTIONS $FD_EXCLUDE_ARGS -E .git -e jpg -e jpeg -e png -e webp -e bmp -e tiff -e tif -e raw -e ico -e exif -e heic -e heif -e gif -e avif -e jxl >"$CACHE_DIR/images"
|
||||||
|
fd $FD_OPTIONS $FD_EXCLUDE_ARGS -E .git -e mkv -e mp4 -e webm -e avi >"$CACHE_DIR/videos"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Populate the cache initially
|
||||||
|
populate_cache &
|
||||||
|
|
||||||
|
EXCLUDE_DIRS=(
|
||||||
|
"$HOME/.cache"
|
||||||
|
"$HOME/.mozilla"
|
||||||
|
"$HOME/.local/state"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Combine excluded directories into a single regular expression pattern
|
||||||
|
EXCLUDE_PATTERN=$(
|
||||||
|
IFS="|"
|
||||||
|
echo "${EXCLUDE_DIRS[*]}"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Watch for changes in ~ and update the cache
|
||||||
|
inotifywait -m -q -r -e move -e create -e delete --exclude "$EXCLUDE_PATTERN" "$HOME" |
|
||||||
|
while read -r; do
|
||||||
|
# Throttle cache updates by sleeping for 1 second
|
||||||
|
sleep 10
|
||||||
|
populate_cache
|
||||||
|
done
|
42
.local/bin/fuz-opener
Executable file
42
.local/bin/fuz-opener
Executable file
@ -0,0 +1,42 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
openee="$1"
|
||||||
|
|
||||||
|
case $(file --mime-type "$(readlink -f "$openee")" -b) in
|
||||||
|
image/vnd.djvu | application/pdf | application/postscript | application/epub*) zathura "$openee" >/dev/null 2>&1 ;;
|
||||||
|
text/html) nvim "$openee" ;;
|
||||||
|
text/* | application/json | inode/x-empty | application/x-subrip | application/javascript) nvim "$openee" ;;
|
||||||
|
image/x-xcf) gimp "$openee" >/dev/null 2>&1 ;;
|
||||||
|
image/svg+xml) display -- "$openee" ;;
|
||||||
|
image/*)
|
||||||
|
shopt -s nullglob
|
||||||
|
dir="$(dirname "$openee")"
|
||||||
|
selected_file="$openee"
|
||||||
|
images=()
|
||||||
|
for file in "$dir"/*.{jpg,jpeg,png,webp,bmp,tiff,tif,raw,ico,exif,heic,heif,gif,avif,jxl,JPG,PNG}; do
|
||||||
|
[[ -f "$file" ]] && images+=("$file")
|
||||||
|
done
|
||||||
|
sorted_images=()
|
||||||
|
while IFS= read -r line; do
|
||||||
|
sorted_images+=("$line")
|
||||||
|
done < <(printf "%s\n" "${images[@]}" | sort -fV)
|
||||||
|
for ((i = 0; i < ${#sorted_images[@]}; i++)); do
|
||||||
|
[[ "${sorted_images[i]}" = "$selected_file" ]] && {
|
||||||
|
setsid nsxiv -aon "$((i + 1))" "${sorted_images[@]}"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
audio/* | video/x-ms-asf) mpv --loop-file --profile=builtin-pseudo-gui "$openee" ;;
|
||||||
|
video/*) mpv --loop-file "$openee" -quiet >/dev/null 2>&1 ;;
|
||||||
|
application/pgp-encrypted) nvim "$openee" ;;
|
||||||
|
application/vnd.openxmlformats-officedocument.wordprocessingml.document | application/vnd.oasis.opendocument.text | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | application/vnd.oasis.opendocument.spreadsheet | application/vnd.oasis.opendocument.spreadsheet-template | application/vnd.openxmlformats-officedocument.presentationml.presentation | application/vnd.oasis.opendocument.presentation-template | application/vnd.oasis.opendocument.presentation | application/vnd.ms-powerpoint | application/vnd.oasis.opendocument.graphics | application/vnd.oasis.opendocument.graphics-template | application/vnd.oasis.opendocument.formula | application/vnd.oasis.opendocument.database) libreoffice "$openee" >/dev/null 2>&1 ;;
|
||||||
|
application/octet-stream)
|
||||||
|
case ${openee##*.} in
|
||||||
|
doc | docx | xls | xlsx | odt | ppt | pptx) libreoffice "$openee" >/dev/null 2>&1 ;;
|
||||||
|
ts) mpv "$openee" -quiet >/dev/null 2>&1 ;;
|
||||||
|
*) zathura "$openee" >/dev/null 2>&1 ;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*) lf -command "set hidden" "$openee" ;;
|
||||||
|
esac
|
145
.local/bin/fuz-preview
Executable file
145
.local/bin/fuz-preview
Executable file
@ -0,0 +1,145 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# The purpose of this script is to demonstrate how to preview a file or an
|
||||||
|
# image in the preview window of fzf.
|
||||||
|
|
||||||
|
# Dependencies:
|
||||||
|
# - https://github.com/sharkdp/bat
|
||||||
|
# - https://github.com/hpjansson/chafa
|
||||||
|
# - https://iterm2.com/utilities/imgcat
|
||||||
|
# - pdftoppm
|
||||||
|
# - exiftool
|
||||||
|
# - ffmpegthumbnailer
|
||||||
|
# - ImageMagick (convert)
|
||||||
|
|
||||||
|
if [[ $# -ne 1 ]]; then
|
||||||
|
>&2 echo "usage: $0 FILENAME"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
file=${1/#\~\//$HOME/}
|
||||||
|
type=$(file --dereference --brief --mime-type -- "$file")
|
||||||
|
|
||||||
|
# Debug: Print the detected MIME type
|
||||||
|
# echo "Detected MIME type: $type"
|
||||||
|
|
||||||
|
# Array to hold temp files for cleanup
|
||||||
|
temp_files=()
|
||||||
|
|
||||||
|
# Cleanup function to remove temp files
|
||||||
|
cleanup() {
|
||||||
|
for temp_file in "${temp_files[@]}"; do
|
||||||
|
rm -f "$temp_file"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Register the cleanup function to run on script exit
|
||||||
|
trap cleanup EXIT
|
||||||
|
|
||||||
|
# Function to preview text files
|
||||||
|
preview_text() {
|
||||||
|
if command -v batcat >/dev/null; then
|
||||||
|
batname="batcat"
|
||||||
|
elif command -v bat >/dev/null; then
|
||||||
|
batname="bat"
|
||||||
|
else
|
||||||
|
cat "$1"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
${batname} --style="${BAT_STYLE:-numbers,header}" --color=always --pager=never -- "$file"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to preview images
|
||||||
|
preview_image() {
|
||||||
|
local image_file="$1"
|
||||||
|
dim=${FZF_PREVIEW_COLUMNS}x${FZF_PREVIEW_LINES}
|
||||||
|
if [[ $dim = x ]]; then
|
||||||
|
dim=$(stty size </dev/tty | awk '{print $2 "x" $1}')
|
||||||
|
elif ! [[ $KITTY_WINDOW_ID ]] && ((FZF_PREVIEW_TOP + FZF_PREVIEW_LINES == $(stty size </dev/tty | awk '{print $1}'))); then
|
||||||
|
dim=${FZF_PREVIEW_COLUMNS}x$((FZF_PREVIEW_LINES - 1))
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $KITTY_WINDOW_ID ]]; then
|
||||||
|
kitty icat --clear --transfer-mode=memory --unicode-placeholder --stdin=no --place="$dim@0x0" "$image_file" | sed '$d' | sed $'$s/$/\e[m/'
|
||||||
|
elif command -v chafa >/dev/null; then
|
||||||
|
chafa -f sixel -O 9 -w 1 -s "$dim" "$image_file"
|
||||||
|
echo
|
||||||
|
elif command -v imgcat >/dev/null; then
|
||||||
|
imgcat -W "${dim%%x*}" -H "${dim##*x}" "$image_file"
|
||||||
|
else
|
||||||
|
file "$image_file"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to preview PDF files
|
||||||
|
preview_pdf() {
|
||||||
|
temp_image=$(mktemp /tmp/preview.XXXXXX)
|
||||||
|
temp_files+=("$temp_image" "${temp_image}.jpg")
|
||||||
|
if pdftoppm -jpeg -f 1 -singlefile "$file" "$temp_image" >/dev/null 2>&1; then
|
||||||
|
temp_image="${temp_image}.jpg"
|
||||||
|
preview_image "$temp_image"
|
||||||
|
else
|
||||||
|
file "$file"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to preview audio files
|
||||||
|
preview_audio() {
|
||||||
|
if command -v exiftool >/dev/null; then
|
||||||
|
exiftool -FileName -Title -Artist -Album -Genre -ChannelMode -AudioBitrate -FileSize -MIMEType -SampleRate -Duration "$file"
|
||||||
|
else
|
||||||
|
echo "exiftool not found."
|
||||||
|
file "$file"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to preview video files
|
||||||
|
preview_video() {
|
||||||
|
temp_image=$(mktemp /tmp/preview.XXXXXX.jpg)
|
||||||
|
temp_files+=("$temp_image")
|
||||||
|
if ffmpegthumbnailer -i "$file" -o "$temp_image" -s 0 >/dev/null 2>&1; then
|
||||||
|
convert "$temp_image" -resize 25% "$temp_image"
|
||||||
|
preview_image "$temp_image"
|
||||||
|
else
|
||||||
|
file "$file"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to preview archives files
|
||||||
|
preview_zip() {
|
||||||
|
atool --list -- "$file"
|
||||||
|
}
|
||||||
|
|
||||||
|
preview_dir() {
|
||||||
|
echo
|
||||||
|
eza -Ga --group-directories-first --icons=always --color=always "$file"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Dispatch based on MIME type
|
||||||
|
case "$type" in
|
||||||
|
inode/directory)
|
||||||
|
preview_dir "$file"
|
||||||
|
;;
|
||||||
|
text/*)
|
||||||
|
preview_text "$file"
|
||||||
|
;;
|
||||||
|
image/*)
|
||||||
|
preview_image "$file"
|
||||||
|
;;
|
||||||
|
application/pdf)
|
||||||
|
preview_pdf "$file"
|
||||||
|
;;
|
||||||
|
audio/*)
|
||||||
|
preview_audio "$file"
|
||||||
|
;;
|
||||||
|
video/*)
|
||||||
|
preview_video "$file"
|
||||||
|
;;
|
||||||
|
application/*zip)
|
||||||
|
preview_zip "$file"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
exiftool "$file"
|
||||||
|
;;
|
||||||
|
esac
|
@ -6,7 +6,7 @@ rm -f /tmp/rg-fzf-{r,f}
|
|||||||
|
|
||||||
[ -d "$1" ] && SEARCH_DIR="$1" && shift || SEARCH_DIR="."
|
[ -d "$1" ] && SEARCH_DIR="$1" && shift || SEARCH_DIR="."
|
||||||
|
|
||||||
RG_PREFIX="rg --column --line-number --no-heading --color=always --smart-case \
|
RG_PREFIX="rg --column --line-number --no-heading --follow --color=always --smart-case \
|
||||||
--glob '!/.ssh' --glob '!/.android' --glob '!/.gnupg'"
|
--glob '!/.ssh' --glob '!/.android' --glob '!/.gnupg'"
|
||||||
INITIAL_QUERY="${*:-}"
|
INITIAL_QUERY="${*:-}"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user