44
55# yayfzf
66
7- > * AUR package ** [ fzf ] [ fzf -url] ** finder to search, install, remove, and manage packages using ** [ yay ] [ yay -url] ***
7+ > * Fullscreen interactive AUR / repo package manager using ** [ yay ] [ yay -url] ** and ** [ fzf ] [ fzf -url] ***
88
99[ ![ Shellcheck] [ shellcheck-badge ]] [ shellcheck-workflow ]
1010[ ![ GitHub last commit] [ github-last-commit-badge ]] [ github-commits ]
2525
2626# Description
2727
28- AUR package [ fzf ] [ fzf-url ] finder to search, install, remove, and manage packages using ** [ yay ] [ yay-url ] **
28+ ` yayfzf ` is a fullscreen interactive package manager for Arch Linux systems.
2929
30+ It uses ** [ yay] [ yay-url ] ** for package operations and ** [ fzf] [ fzf-url ] ** for searching, selecting, installing, removing, and updating packages.
3031
3132<img width =" 100% " src =" https://raw.githubusercontent.com/ConnerWill/Project-Template/main/assets/lines/rainbow.png " >
3233
@@ -44,6 +45,7 @@ AUR package [fzf][fzf-url] finder to search, install, remove, and manage package
4445 - [ Git] ( #git )
4546 - [ Usage] ( #usage )
4647 - [ Command Line Options] ( #command-line-options )
48+ - [ Examples] ( #examples )
4749 - [ Keybindings] ( #keybindings )
4850 - [ Configuration] ( #configuration )
4951 - [ Configuration Files] ( #configuration-files )
@@ -54,34 +56,42 @@ AUR package [fzf][fzf-url] finder to search, install, remove, and manage package
5456 - [ Donate] ( #donate )
5557<!-- toc:end-->
5658
57-
5859<img width =" 100% " src =" https://raw.githubusercontent.com/ConnerWill/Project-Template/main/assets/lines/rainbow.png " >
5960
6061# Screenshots
6162
62- <div align =" center " >
63+ <div align =" center " >
6364
6465| ![ demo screenshot] ( /docs/images/demo-screenshot.png ) | ![ demo screenshot 2] ( /docs/images/demo-screenshot-2.png ) |
6566| ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
6667| ![ demo screenshot 3] ( /docs/images/demo-screenshot-3.png ) | ![ demo screenshot 4] ( /docs/images/demo-screenshot-4.png ) |
6768
6869</div >
6970
70-
7171## Features
7272
73- - Interactive menu for Arch Linux package manager
73+ - Interactive menu for Arch Linux package management
74+ - Package search using ` yay `
75+ - Package selection using ` fzf `
76+ - Install, remove, and update packages
7477- Inline package information preview
75- - Multi-select support via fzf
76- - Toggleable preview window
77- - Multiple built-in color themes
78- - Configurable layout, borders, and keybindings
78+ - Multi-select support
79+ - Toggleable package preview window
80+ - Built-in color themes
81+ - Interactive theme selector
82+ - Configurable layout, border, prompt, preview window, and sort order
7983- XDG-compliant configuration file support
84+ - Bash and Zsh completion support
8085
8186## Requirements
8287
88+ - ` bash `
8389- ` yay `
8490- ` fzf `
91+ - ` awk `
92+ - ` sed `
93+ - ` tr `
94+ - ` tput `
8595
8696## Installation
8797
@@ -101,15 +111,15 @@ cd yayfzf
101111chmod +x bin/yayfzf
102112```
103113
104- Optionally, move it to a directory in your PATH :
114+ Optionally, install the executable, documentation, man page, license, and shell completions :
105115
106116``` bash
107- sudo install -Dm755 " bin/yayfzf" " /usr/local/bin/yayfzf" # Main executable
108- sudo install -Dm644 " docs/README.md" " /usr/share/doc/yayfzf/README.md" # Documentation
109- sudo install -Dm644 " docs/yayfzf.1" " /usr/share/man/man1/yayfzf.1" # Man page
110- sudo install -Dm644 " LICENSE" " /usr/share/licenses/yayfzf/LICENSE" # License
111- sudo install -Dm644 " completion/_yayfzf" " /usr/share/zsh/site-functions/_yayfzf" # ZSH completion
112- sudo install -Dm644 " completion/yayfzf_completion.sh" " /usr/share/bash-completion/completions/yayfzf" # Bash completion
117+ sudo install -Dm755 " bin/yayfzf" " /usr/local/bin/yayfzf"
118+ sudo install -Dm644 " docs/README.md" " /usr/share/doc/yayfzf/README.md"
119+ sudo install -Dm644 " docs/yayfzf.1" " /usr/share/man/man1/yayfzf.1"
120+ sudo install -Dm644 " LICENSE" " /usr/share/licenses/yayfzf/LICENSE"
121+ sudo install -Dm644 " completion/_yayfzf" " /usr/share/zsh/site-functions/_yayfzf"
122+ sudo install -Dm644 " completion/yayfzf_completion.sh" " /usr/share/bash-completion/completions/yayfzf"
113123```
114124
115125## Usage
@@ -120,23 +130,86 @@ Launch the interactive interface:
120130yayfzf
121131```
122132
133+ Start with an initial package search query:
134+
135+ ``` bash
136+ yayfzf fzf
137+ ```
138+
123139### Command Line Options
124140
125141| Option | Description |
126- | ------ | ------------ |
127- | ` -t ` , ` --theme ` | Set built-in theme |
142+ | ------ | ----------- |
143+ | ` --sort-by [sort option] ` | Set package search sort order |
144+ | ` --no-preview ` | Disable package preview window |
145+ | ` -t ` , ` --theme [theme] ` | Set built-in theme |
128146| ` -l ` , ` --list-themes ` | Show list of built-in themes |
129- | ` -k ` , ` --keybindings ` | Show keybindings and exit |
147+ | ` --preview-themes ` | Interactively preview and select a built-in theme |
130148| ` -i ` , ` --init-config ` | Install example configuration file |
131149| ` -s ` , ` --show-config ` | Show example configuration file content |
132- | ` --sort-order ` | Set package sort order |
133- | ` --no-preview ` | Disable preview window |
150+ | ` -k ` , ` --keybindings ` | Show keybindings and exit |
134151| ` -v ` , ` --verbose ` | Show verbose output |
135152| ` -h ` | Show short help |
136153| ` --help ` | Show full help |
137- | ` --help-man ` | Show manpage help |
154+ | ` --help-man ` | Show man page help |
138155| ` -V ` , ` --version ` | Show version |
139156
157+ ### Examples
158+
159+ Run ` yayfzf ` with no search query:
160+
161+ ``` bash
162+ yayfzf
163+ ```
164+
165+ Search for ` fzf ` :
166+
167+ ``` bash
168+ yayfzf fzf
169+ ```
170+
171+ Search packages sorted by votes:
172+
173+ ``` bash
174+ yayfzf --sort-by votes
175+ ```
176+
177+ Start with the ` dracula ` theme:
178+
179+ ``` bash
180+ yayfzf --theme dracula
181+ ```
182+
183+ Show all built-in themes:
184+
185+ ``` bash
186+ yayfzf --list-themes
187+ ```
188+
189+ Open the interactive theme selector:
190+
191+ ``` bash
192+ yayfzf --preview-themes
193+ ```
194+
195+ Start with the package preview window disabled:
196+
197+ ``` bash
198+ yayfzf --no-preview
199+ ```
200+
201+ Install an example configuration file:
202+
203+ ``` bash
204+ yayfzf --init-config
205+ ```
206+
207+ Show the short help menu:
208+
209+ ``` bash
210+ yayfzf -h
211+ ```
212+
140213### Keybindings
141214
142215| Key | Action |
@@ -153,12 +226,12 @@ yayfzf
153226| <kbd >CTRL</kbd >+<kbd >a</kbd > | Select all items |
154227| <kbd >CTRL</kbd >+<kbd >d</kbd > | Deselect all items |
155228| <kbd >CTRL</kbd >+<kbd >i</kbd > | Install selected packages |
156- | <kbd >CTRL</kbd >+<kbd >r</kbd > | Uninstall package |
229+ | <kbd >CTRL</kbd >+<kbd >r</kbd > | Remove selected package |
157230| <kbd >CTRL</kbd >+<kbd >u</kbd > | Update all packages |
158- | <kbd >CTRL</kbd >+<kbd >l</kbd > | Clear search query |
159- | <kbd >CTRL</kbd >+<kbd >Backspace</kbd > | Clear search query |
160- | <kbd >CTRL</kbd >+<kbd >/</kbd > | Change layout |
161- | <kbd >CTRL</kbd >+<kbd >v</kbd > | Toggle preview window |
231+ | <kbd >CTRL</kbd >+<kbd >l</kbd > | Clear query, screen, and selection |
232+ | <kbd >CTRL</kbd >+<kbd >Backspace</kbd > | Clear query |
233+ | <kbd >CTRL</kbd >+<kbd >/</kbd > | Cycle preview window position and size |
234+ | <kbd >CTRL</kbd >+<kbd >v</kbd > | Toggle package preview window |
162235| <kbd >?</kbd > | Show keybindings |
163236| <kbd >CTRL</kbd >+<kbd >c</kbd > | Exit yayfzf |
164237| <kbd >CTRL</kbd >+<kbd >w</kbd > | Exit yayfzf |
@@ -168,26 +241,78 @@ yayfzf
168241
169242### Configuration Files
170243
171- ` yayfzf ` looks for configuration files in this order ( uses the first file found) :
244+ ` yayfzf ` looks for configuration files in this order and uses the first file found:
172245
173246- ` $XDG_CONFIG_HOME/yayfzf/yayfzf.conf `
174247- ` $HOME/.config/yayfzf/yayfzf.conf `
175248- ` $HOME/.yayfzf.conf `
176249
250+ Install an example configuration file:
251+
252+ ``` bash
253+ yayfzf --init-config
254+ ```
255+
256+ Show the current example configuration:
257+
258+ ``` bash
259+ yayfzf --show-config
260+ ```
261+
177262### Configuration Options
178263
179- | Option | Description | Default | Options |
180- | ------ | ----------- | ------- | ------- |
181- | ` THEME ` | Color theme | ` default ` | ` default ` , ` light ` , ` tokyo-night ` , ` neon ` , ` catppuccin-mocha ` , ` catppuccin-latte ` , ` dracula ` , ` gruvbox-dark ` , ` gruvbox-light ` , ` nord ` , ` solarized-dark ` , ` solarized-light ` , ` rose-pine ` , ` rose-pine-moon ` , ` rose-pine-dawn ` , ` onedark ` , ` kanagawa ` |
182- | ` PREVIEW_WINDOW ` | fzf preview window layout and size | ` right:60%:wrap ` | |
183- | ` ENABLE_PREVIEW ` | Show preview window | ` true ` | ` true ` , ` false ` |
184- | ` SORT_BY ` | Package sort order | ` popularity ` | ` popularity ` , ` votes ` , ` last_updated ` |
264+ | Option | Description | Default | Values |
265+ | ------ | ----------- | ------- | ------ |
266+ | ` THEME ` | Built-in color theme | ` default ` | ` default ` , ` light ` , ` tokyo-night ` , ` neon ` , ` catppuccin-mocha ` , ` catppuccin-latte ` , ` dracula ` , ` gruvbox-dark ` , ` gruvbox-light ` , ` nord ` , ` solarized-dark ` , ` solarized-light ` , ` rose-pine ` , ` rose-pine-moon ` , ` rose-pine-dawn ` , ` onedark ` , ` kanagawa ` |
267+ | ` SORT_BY ` | Package search sort order | ` popularity ` | ` popularity ` , ` votes ` , ` last_updated ` |
268+ | ` PREVIEW_WINDOW ` | fzf package preview window layout and size | ` right:60%:wrap ` | Any valid ` fzf --preview-window ` value |
185269| ` LAYOUT ` | fzf layout | ` reverse ` | ` default ` , ` reverse ` |
186- | ` BORDER ` | fzf border style | ` rounded ` | ` default ` , ` rounded ` |
187- | ` PROMPT ` | Prompt string for fzf | ` "yayfzf> " ` | |
188- | ` VERBOSE ` | Enable verbose logging | ` false ` | ` true ` , ` false ` |
189- | ` YAYFZF_PAGER ` | Pager for help/config/keybindings | ` ${PAGER:-less} ` | |
190- | ` CTRL_C_CLOSE ` | Close yayfzf with Ctrl-C | ` true ` | ` true ` , ` false ` |
270+ | ` BORDER ` | fzf border style | ` rounded ` | Any valid ` fzf --border ` value |
271+ | ` YAYFZF_PROMPT ` | fzf prompt string | ` yayfzf> ` | Any string |
272+ | ` ENABLE_PREVIEW ` | Enable package preview window | ` true ` | ` true ` , ` false ` |
273+ | ` VERBOSE ` | Enable verbose output | ` false ` | ` true ` , ` false ` |
274+ | ` YAYFZF_PAGER ` | Pager used for config/help output | ` ${PAGER:-less} ` | ` less ` , ` bat ` , ` more ` , etc. |
275+ | ` CTRL_C_CLOSE ` | Exit when fzf returns an empty selection | ` true ` | ` true ` , ` false ` |
276+ | ` NO_COLOR ` | Disable ANSI color output | ` false ` | ` true ` , ` false ` |
277+
278+ Example configuration:
279+
280+ ``` bash
281+ # Theme: default, light, tokyo-night, neon, catppuccin-mocha, catppuccin-latte,
282+ # dracula, gruvbox-dark, gruvbox-light, nord, solarized-dark, solarized-light,
283+ # rose-pine, rose-pine-moon, rose-pine-dawn, onedark, kanagawa
284+ THEME=" default"
285+
286+ # Package sort order: popularity, votes, last_updated
287+ SORT_BY=" popularity"
288+
289+ # Preview window options for fzf
290+ PREVIEW_WINDOW=" right:60%:wrap"
291+
292+ # Layout: default, reverse
293+ LAYOUT=" reverse"
294+
295+ # Border style
296+ BORDER=" rounded"
297+
298+ # Prompt for fzf
299+ YAYFZF_PROMPT=" yayfzf> "
300+
301+ # Enable package preview window
302+ ENABLE_PREVIEW=true
303+
304+ # Verbose output
305+ VERBOSE=false
306+
307+ # Pager
308+ YAYFZF_PAGER=" ${PAGER:- less} "
309+
310+ # Close yayfzf with Ctrl-C / empty fzf selection
311+ CTRL_C_CLOSE=true
312+
313+ # Disable color output
314+ NO_COLOR=false
315+ ```
191316
192317## See Also
193318
@@ -205,32 +330,32 @@ yayfzf
205330
206331<br >
207332
208- > Any contributions you make are ** greatly appreciated** .
333+ > Any contributions you make are appreciated.
209334
210- > > If you want to contribute, please fork this repo and create a pull request.
335+ > If you want to contribute, please fork this repo and create a pull request.
211336
212- 1 . Fork the Project
213- 2 . Create your Feature Branch
337+ 1 . Fork the project
338+ 2 . Create your feature branch
214339
215340``` console
216341git checkout -b AmazingNewFeature
217342```
218343
219- 3 . Commit your Changes
344+ 3 . Commit your changes
220345
221346``` console
222347git commit -m 'Description of the amazing feature you added'
223348```
224349
225- 4 . Push to the Branch
350+ 4 . Push to the branch
226351
227352``` console
228353git push origin AmazingNewFeature
229354```
230355
231- 5 . Then open a pull request ` :) `
356+ 5 . Open a pull request.
232357
233- > > If you experience any bugs/issues or have and suggestions, you can simply open an issue ` :) `
358+ If you experience bugs or have suggestions, open an issue.
234359
235360</details >
236361
@@ -242,7 +367,6 @@ git push origin AmazingNewFeature
242367
243368<p align =" right " >(<a href =" #top " >back to top</a >)</p >
244369
245-
246370<img width =" 100% " src =" https://raw.githubusercontent.com/ConnerWill/Project-Template/main/assets/lines/rainbow.png " >
247371
248372<!-- LINKS -->
@@ -273,8 +397,8 @@ git push origin AmazingNewFeature
273397[ wiki-installation-url ] : https://github.com/ConnerWill/yayfzf/wiki/Installation
274398[ wiki-screenshots-url ] : https://github.com/ConnerWill/yayfzf/wiki/Screenshots
275399
276- [ fzf-url ] : httaps ://github.com/junegunn/fzf
400+ [ fzf-url ] : https ://github.com/junegunn/fzf
277401[ yay-url ] : https://github.com/Jguer/yay
278402[ yayfzf-url ] : https://github.com/ConnerWill/yayfzf
279- [ rclonefzf-url ] : https://github.com/ConnerWill/rclonefzf
280403[ yayfzf-source ] : https://github.com/ConnerWill/yayfzf/blob/main/bin/yayfzf
404+ [ rclonefzf-url ] : https://github.com/ConnerWill/rclonefzf
0 commit comments