mirror of
https://github.com/junegunn/fzf.git
synced 2025-11-16 15:23:48 -05:00
add flatpak toc
96
Examples.md
96
Examples.md
@@ -23,6 +23,7 @@ Table of Contents
|
||||
* [Homebrew](#homebrew)
|
||||
* [Homebrew Cask](#homebrew-cask)
|
||||
* [DNF](#dnf)
|
||||
* [Flatpak](#flatpak)
|
||||
* Filesystem navigation
|
||||
* [Opening files](#opening-files)
|
||||
* [Changing directory](#changing-directory)
|
||||
@@ -1470,6 +1471,76 @@ else
|
||||
fi
|
||||
```
|
||||
|
||||
### Flatpak
|
||||
#### flatpak-widget (for zsh)
|
||||
|
||||
```sh
|
||||
# CLR=$(for i in {0..7}; do echo "tput setaf $i"; done)
|
||||
BLK=\$(tput setaf 0); RED=\$(tput setaf 1); GRN=\$(tput setaf 2); YLW=\$(tput setaf 3); BLU=\$(tput setaf 4);
|
||||
MGN=\$(tput setaf 5); CYN=\$(tput setaf 6); WHT=\$(tput setaf 7); BLD=\$(tput bold); RST=\$(tput sgr0);
|
||||
|
||||
AWK_VAR="awk -v BLK=${BLK} -v RED=${RED} -v GRN=${GRN} -v YLW=${YLW} -v BLU=${BLU} -v MGN=${MGN} -v CYN=${CYN} -v WHT=${WHT} -v BLD=${BLD} -v RST=${RST}"
|
||||
|
||||
# Searches only from flathub repository
|
||||
fzf-flatpak-install-widget() {
|
||||
flatpak remote-ls flathub --cached --columns=app,name,description \
|
||||
| awk -v cyn=$(tput setaf 6) -v blu=$(tput setaf 4) -v bld=$(tput bold) -v res=$(tput sgr0) \
|
||||
'{
|
||||
app_info="";
|
||||
for(i=2;i<=NF;i++){
|
||||
app_info=cyn app_info" "$i
|
||||
};
|
||||
print blu bld $2" -" res app_info "|" $1
|
||||
}' \
|
||||
| column -t -s "|" -R 3 \
|
||||
| fzf \
|
||||
--ansi \
|
||||
--with-nth=1.. \
|
||||
--prompt="Install > " \
|
||||
--preview-window "nohidden,40%,<50(down,50%,border-rounded)" \
|
||||
--preview "flatpak --system remote-info flathub {-1} | $AWK_VAR -F\":\" '{print YLW BLD \$1 RST WHT \$2}'" \
|
||||
--bind "enter:execute(flatpak install flathub {-1})" # when pressed enter it doesn't showing the key pressed but it is reading the input
|
||||
zle reset-prompt
|
||||
}
|
||||
bindkey '^[f^[i' fzf-flatpak-install-widget #alt-f + alt-i
|
||||
zle -N fzf-flatpak-install-widget
|
||||
|
||||
fzf-flatpak-uninstall-widget() {
|
||||
touch /tmp/uns
|
||||
flatpak list --columns=application,name \
|
||||
| awk -v cyn=$(tput setaf 6) -v blu=$(tput setaf 4) -v bld=$(tput bold) -v res=$(tput sgr0) \
|
||||
'{
|
||||
app_id="";
|
||||
for(i=2;i<=NF;i++){
|
||||
app_id" "$i
|
||||
};
|
||||
print bld cyn $2 " - " res blu $1
|
||||
}' \
|
||||
| column -t \
|
||||
| fzf \
|
||||
--ansi \
|
||||
--with-nth=1.. \
|
||||
--prompt=" Uninstall > " \
|
||||
--header="M-u: Uninstall | M-r: Run" \
|
||||
--header-first \
|
||||
--preview-window "nohidden,50%,<50(up,50%,border-rounded)" \
|
||||
--preview "flatpak info {3} | $AWK_VAR -F\":\" '{print RED BLD \$1 RST \$2}'" \
|
||||
--bind "alt-r:change-prompt(Run > )+execute-silent(touch /tmp/run && rm -r /tmp/uns)" \
|
||||
--bind "alt-u:change-prompt(Uninstall > )+execute-silent(touch /tmp/uns && rm -r /tmp/run)" \
|
||||
--bind "enter:execute(
|
||||
if [ -f /tmp/uns ]; then
|
||||
flatpak uninstall {3};
|
||||
elif [ -f /tmp/run ]; then
|
||||
flatpak run {3};
|
||||
fi
|
||||
)" # same as the install one but when pressed entered the message is something like this
|
||||
# "Proceed with these changes to the system installation? [Y/n]:" but it will uninstall the selected app weird but idk y
|
||||
rm -f /tmp/{uns,run} &> /dev/null
|
||||
zle reset-prompt
|
||||
}
|
||||
bindkey '^[f^[u' fzf-flatpak-uninstall-widget #alt-f + alt-u
|
||||
zle -N fzf-flatpak-uninstall-widget
|
||||
```
|
||||
|
||||
### v
|
||||
|
||||
@@ -2088,28 +2159,25 @@ fman() {
|
||||
# Get the colors in the opened man page itself
|
||||
export MANPAGER="sh -c 'col -bx | bat -l man -p --paging always'"
|
||||
```
|
||||
### fzf-man-pages widget (for zsh)
|
||||
Same functionality as above but better
|
||||
#### fzf-man-pages widget (for zsh)
|
||||
Same functionality as above
|
||||
- with colored and syntax higlighting
|
||||
- doesn't exit fzf when pressed enter
|
||||
- `--tiebreak=begin` for improved search experience (prefers the line with matched substring closer to the beginning)
|
||||
- additional keybinds for changing preview (optional)
|
||||
<kbd>Alt-C</kbd> for [cheat sheet](https://github.com/chubin/cheat.sh)
|
||||
<kbd>Alt-T</kbd> for [tldr](https://github.com/tldr-pages/tldr) (I've used [tealdeer](https://github.com/dbrgn/tealdeer) to customize the colors)
|
||||
- `Ctrl-H` keybinding to launch the widget (works only on zsh, don't know how to do it on bash and fish (additionaly pressing`ctrl-backspace` will trigger the widget to launch too because both share the same keycode)
|
||||
- doesn't exit or close fzf when pressed enter
|
||||
|
||||

|
||||

|
||||
|
||||
```sh
|
||||
|
||||
fzf-man-widget() {
|
||||
batman="man {1} | col -bx | bat -l man -p --color always --theme=\"Monokai Extended\""
|
||||
man -k . | awk -v cyan=$(tput setaf 6) -v blue=$(tput setaf 4) '{$1=cyan $1; $2= blue;} 1' | \
|
||||
fzf +i +x \
|
||||
batman="man {1} | col -bx | bat --language=man --plain --color always --theme=\"Monokai Extended\""
|
||||
man -k . | sort \
|
||||
| awk -v cyan=$(tput setaf 6) -v blue=$(tput setaf 4) -v res=$(tput sgr0) -v bld=$(tput bold) '{ $1=cyan bld $1; $2=res blue;} 1' \
|
||||
| fzf \
|
||||
-q "$1" \
|
||||
--ansi \
|
||||
--tiebreak=begin \
|
||||
--prompt=' Man > ' \
|
||||
--preview-window='up,85%,border-bottom' \
|
||||
--preview-window '50%,rounded,<50(up,85%,border-bottom)' \
|
||||
--preview "${batman}" \
|
||||
--bind "enter:execute(man {1})" \
|
||||
--bind "alt-c:+change-preview(cht.sh {1})+change-prompt(ﯽ Cheat > )" \
|
||||
@@ -2117,8 +2185,10 @@ fzf-man-widget() {
|
||||
--bind "alt-t:+change-preview(tldr --color=always {1})+change-prompt(ﳁ TLDR > )"
|
||||
zle reset-prompt
|
||||
}
|
||||
# `Ctrl-H` keybinding to launch the widget (this widget works only on zsh, don't know how to do it on bash and fish (additionaly pressing`ctrl-backspace` will trigger the widget to be executed too because both share the same keycode)
|
||||
bindkey '^h' fzf-man-widget
|
||||
zle -N fzf-man-widget
|
||||
# Icon used is nerdfont
|
||||
```
|
||||
|
||||
### Python Behave BDD
|
||||
|
||||
Reference in New Issue
Block a user