89luca89 / distrobox

Use any linux distribution inside your terminal. Enable both backward and forward compatibility with software and freedom to use whatever distribution you’re more comfortable with. Mirror available at: https://gitlab.com/89luca89/distrobox
https://distrobox.it/
GNU General Public License v3.0
9.41k stars 384 forks source link

[Suggestion] Provide fish shell completions / Fix commands format in the man page #1425

Open BuonHobo opened 1 month ago

BuonHobo commented 1 month ago

Is your feature request related to a problem? Please describe. Distrobox man pages specify commands using the following layout:

distrobox create

              --image/-i:     image to use for the container  default: ${container_image_default}
              --name/-n:      name for the distrobox          default: ${container_name_default}
              --hostname:     hostname for the distrobox      default: <container-name>.$(uname -n)
              --pull/-p:      pull the image even if it exists locally (implies --yes)
              --yes/-Y:       non-interactive, pull images without asking

This is fine for a human, but it causes fish shell to have buggy completions:

❯ distrobox-create --absolutely-disable-root-password-i-am-really-positively-sure 
--absolutely-disable-root-password-i-am-really-positively-sure  (COMPATIBILITY for a list of compatible images and container managers, please …)
--additional-flags/-a                                                                                                                           
--additional-packages/-ap                                                                                                                       
--clone/-c                                                                  (this will be useful to either rename an existing distrobox or hav…)
--compatibility/-C                                                                                                                              
--dry-run/-d                                                                                                                                    
--help/-h                                                                                                                                       
--home/-H                                                                                                                                       
--hostname                                                                                                                                      
--image/-i                                                                                                                                      
--init/-I                                                                   (this will make host[aq]s processes not visible from within the co…)
--init-hooks                                                                                                                                    
--name/-n                                                                                                                                       
--no-entry                                                                                                                                      
--nvidia                                                                                                                                        
--pre-init-hooks                                                                                                                                
--pull/-p                                                                                                                                       
--root/-r                                                                   (way over [dq]sudo distrobox[dq] (note: if using a program other t…)

As you can see, the completion are in the format --longcommand/-shortcommand and if you complete your prompt using TAB then the completion will not work. You have to manually go and delete the last part

Describe the solution you'd like I'd like the distrobox man page to list commands in the man page in the classic format, or at least I'd like for it to provide correct fish shell completions which is all I really care about.