mirror of
https://github.com/junegunn/fzf.git
synced 2025-11-17 07:43:39 -05:00
Add fzfmenu selector which accepts piped arguments in a floating window like dmenu/rofi
54
Examples.md
54
Examples.md
@@ -44,6 +44,7 @@ Table of Contents
|
|||||||
* [dictcc translation](#dictcc-translation)
|
* [dictcc translation](#dictcc-translation)
|
||||||
* [kubectl](#kubectl)
|
* [kubectl](#kubectl)
|
||||||
* Moving from other tools
|
* Moving from other tools
|
||||||
|
* [fzf as selector menu (pipe entries like dmenu/rofi)](#fzf-as-selector-menu)
|
||||||
* [fzf as rofi replacement](#fzf-as-rofi-replacement)
|
* [fzf as rofi replacement](#fzf-as-rofi-replacement)
|
||||||
* [fzf as dmenu replacement](#fzf-as-dmenu-replacement)
|
* [fzf as dmenu replacement](#fzf-as-dmenu-replacement)
|
||||||
* [ctags](#ctags)
|
* [ctags](#ctags)
|
||||||
@@ -1773,6 +1774,59 @@ fbehave() {
|
|||||||
--bind 'tab:execute(echo {} | cut -f1 | awk "{\$1=\$1};1" | pbcopy )'
|
--bind 'tab:execute(echo {} | cut -f1 | awk "{\$1=\$1};1" | pbcopy )'
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
### fzf as selector menu
|
||||||
|
Make a script like this (`~/.local/bin/fzfmenu`):
|
||||||
|
```bash
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
export FZF_DEFAULT_OPTS="--height=100% --layout=reverse --border --no-sort --prompt=\"~ \" --color=dark,hl:red:regular,fg+:white:regular,hl+:red:regular:reverse,query:white:regular,info:gray:regular,prompt:red:bold,pointer:red:bold"
|
||||||
|
|
||||||
|
exec alacritty --class="fzf-menu" -e bash -c "fzf-tmux -m $* < /proc/$$/fd/0 | awk 'BEGIN {ORS=\" \"} {print}' > /proc/$$/fd/1"
|
||||||
|
# For st instead
|
||||||
|
# st -c fzf-menu -n fzf-menu -e bash -c "fzf-tmux -m $* < /proc/$$/fd/0 | awk 'BEGIN {ORS=\" \"} {print}' > /proc/$$/fd/1"
|
||||||
|
```
|
||||||
|
1. Then to run as app launcher, use [sxhkd](https://github.com/baskerville/sxhkd) and put in `~/.config/sxhkdrc`
|
||||||
|
```
|
||||||
|
# run apps launcher
|
||||||
|
control + alt + s ; r
|
||||||
|
dmenu_path | ~/.local/bin/fzfmenu | bash
|
||||||
|
```
|
||||||
|
( You can use anything other than `dmenu_path` that gets a list of entries in `$PATH` too.)
|
||||||
|
2. To use for `Ctrl-t` for a floating menu from terminal
|
||||||
|
**For bash**
|
||||||
|
```bash
|
||||||
|
__fzfmenu__() {
|
||||||
|
local cmd="fd -tf --max-depth=1"
|
||||||
|
eval "$cmd" | ~/.local/bin/fzfmenu
|
||||||
|
}
|
||||||
|
|
||||||
|
__fzf-menu__() {
|
||||||
|
local selected="$(__fzfmenu__)"
|
||||||
|
READLINE_LINE="${READLINE_LINE:0:$READLINE_POINT}$selected${READLINE_LINE:$READLINE_POINT}"
|
||||||
|
READLINE_POINT=$(( READLINE_POINT + ${#selected} ))
|
||||||
|
}
|
||||||
|
bind -x '"\C-t":"__fzf-menu__"'
|
||||||
|
```
|
||||||
|
**For zsh**
|
||||||
|
```zsh
|
||||||
|
__fzfmenu__(){
|
||||||
|
local cmd="fd -tf --max-depth=1"
|
||||||
|
eval $cmd | ~/.local/bin/fzfmenu
|
||||||
|
}
|
||||||
|
__fzf-menu__() {
|
||||||
|
LBUFFER="${LBUFFER}$(__fzfmenu__)"
|
||||||
|
local ret=$?
|
||||||
|
zle reset-prompt
|
||||||
|
return $ret
|
||||||
|
}
|
||||||
|
|
||||||
|
zle -N __fzf-menu__
|
||||||
|
bindkey -M emacs '^T^G' __fzf-menu__
|
||||||
|
bindkey -M vicmd '^T^G' __fzf-menu__
|
||||||
|
bindkey -M viins '^T^G' __fzf-menu__
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## fzf as rofi replacement
|
## fzf as rofi replacement
|
||||||
https://github.com/gotbletu/shownotes/blob/master/fzf_nova/fzf-nova
|
https://github.com/gotbletu/shownotes/blob/master/fzf_nova/fzf-nova
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user