CONTRIBUTING
Contribution guidelines
First of all, thanks for thinking of contributing to this project. :smile:
Before sending a Pull Request, please make sure that you're assigned the task on a GitHub issue.
- If a relevant issue already exists, discuss on the issue and get it assigned to yourself on GitHub.
- If no relevant issue exists, open a new issue and get it assigned to yourself on GitHub.
Please proceed with a Pull Request only after you're assigned. It'd be sad if your Pull Request (and your hardwork) isn't accepted just because it isn't ideologically compatible.
Developing the gem
Install with
shgit clone https://github.com/athityakumar/colorls cd colorls gem install bundler bundle installMake your changes in a different git branch (say,
add-new-flag). These changes can be- adding better icons to YAML files
- adding more flag options to the ruby gem.
(Optional) To test whether
colorlsexecutable is working properly, doshrake installThen install the gem file in the folder
pkg. After that to use the new binary,shcolorls # start using colorls(Required for YAML file changes) These are the specifications for the YAML files -
files.yaml,folders.yaml: The keys are sorted alphabetically.file_aliases.yaml,folder_aliases.yaml: The values are sorted alphabetically. For each set of keys mapping to a value, those set of keys are also sorted alphabetically.
Check before pushing
shbundle exec rubocop bundle exec rspec(Required for new flags) Add command to
.travis.ymlfile.(Required for new flags) Add flags to
tab_complete.shfile.
README
Color LS
A Ruby script that colorizes the ls output with color and icons. Here are the screenshots of working example on an iTerm2 terminal (Mac OS), oh-my-zsh with powerlevel9k theme and powerline nerd-font + awesome-config font with the Solarized Dark color theme.
If you're interested in knowing the powerlevel9k configuration to get this prompt, have a look at this gist.
Table of contents
- Usage
- Flags
-1-a(or)--all-A(or)--almost-all-d(or)--dirs-f(or)--files--help-l(or)--long--report--tree(or)--tree=[DEPTH]--gs(or)--git-status--sd(or)--sort-dirsor--group-directories-first--sf(or)--sort-files-t
- Combination of flags
- Flags
- Installation
- Recommended configurations
- Custom configurations
- Updating
- Uninstallation
- Contributing
- License
Usage
Man pages have been added. Checkout man colorls.
Flags
With
-1: Lists one entry per lineWith
-a(or)--all: Does not ignore entries starting with '.'With
-A(or)--almost-all: Does not ignore entries starting with '.', except./and../With
-d(or)--dirs: Shows only directoriesWith
-f(or)--files: Shows only filesWith
--help: Prints a very helpful help menuWith
-l(or)--long: Shows in long listing formatWith
--report: Shows brief report about number of files and folders shownWith
--tree(or)--tree=[DEPTH]: Shows tree view of the directory with the specified depth (default 3)With
--gs(or)--git-status: Shows git status for each entryWith
--sd(or)--sort-dirsor--group-directories-first: Shows directories first, followed by filesWith
--sf(or)--sort-files: Shows files first, followed by directoriesWith
-t: Sort by modification time, newest first (NEED TO ADD IMAGE)With color options :
--lightor--darkcan be passed as a flag, to choose the appropriate color scheme. By default, the dark color scheme is chosen. In order to tweak any color, read Custom configurations.
Combination of flags
Using
--gswith-t:Using
--gswith-l:Using
--sdwith-land-A:Using
--non-human-readablewith-l:- This will print the file sizes in bytes (non-human readable format)
Installation
Install Ruby (preferably, version >= 2.6 via a version manager like rbenv)
Download and install a Nerd Font so you can see the library icons. Have a look at the Nerd Font README for installation instructions. We're using "Hack Nerd Font" for this guide.
Note for MacOS users using the stock terminal - Please enable Nerd Font at Terminal > Preferences > Profiles > Text > Font. Click
Change..and selectHack Nerd Font- RegularNote for
iTerm2users - Please enable the Nerd Font at iTerm2 > Preferences > Profiles > Text > Non-ASCII font > Hack Regular Nerd Font Complete.Note for
HyperJSusers - Please add"Hack Nerd Font"Font as an option tofontFamilyin your~/.hyper.jsfile.Install the colorls ruby gem with
gem install colorlsNote for
rbenvusers - In case of load error when usinglc, please try the below patch.shrbenv rehash rehashEnable tab completion for flags by entering following line to your shell configuration file (
~/.bashrcor~/.zshrc) :bashsource $(dirname $(gem which colorls))/tab_complete.shDon't forget to restart your terminal
Start using
colorls:tada:Have a look at Recommended configurations and Custom configurations.
If you're having trouble following the installation guide above, here's a video reproducing steps 2 to 6.
Recommended configurations
To add some short command (say,
lc) with some flag options (say,-l,-A,--sd) by default, add this to your shell configuration file (~/.bashrc,~/.zshrc, etc.) :shalias lc='colorls -lA --sd'For changing the icon(s) to other unicode icons of choice (select icons from here), change the YAML files in a text editor of your choice (say,
subl)shsubl $(dirname $(gem which colorls))/yaml
Custom configurations
You can overwrite the existing icons and colors mapping by copying the yaml files from $(dirname $(gem which colorls))/yaml into ~/.config/colorls, and changing them.
To overwrite color mapping :
Please have a look at the list of supported color names. You may also use a color hex code as long as it is quoted within the YAML file and prefaced with a
#symbol.Let's say that you're using the dark color scheme and would like to change the color of untracked file (
??) in the--git-statusflag to yellow. Copy the defautdark_colors.yamland change it.Check if the
~/.config/colorlsdirectory exists. If it doesn't exist, create it using the following command:shmkdir -p ~/.config/colorlsAnd then
shcp $(dirname $(gem which colorls))/yaml/dark_colors.yaml ~/.config/colorls/dark_colors.yamlIn the
~/.config/colorls/dark_colors.yamlfile, change the color set foruntrackedfromdarkorangetoyellow, and save the change.textuntracked: yellowOr, using hex color codes:
textuntracked: '#FFFF00'To overwrite icon mapping :
Please have a look at the list of supported icons. Let's say you want to add an icon for swift files. Copy the default
files.yamland change it.shcp $(dirname $(gem which colorls))/yaml/files.yaml ~/.config/colorls/files.yaml`In the
~/.config/colorls/files.yamlfile, add a new icon / change an existing icon, and save the change.textswift: "\uF179"User contributed alias configurations :
Updating
Want to update to the latest version of colorls?
gem update colorlsUninstallation
Want to uninstall and revert back to the old style? No issues (sob). Please feel free to open an issue regarding how we can enhance colorls.
gem uninstall colorlsContributing
Your contributions are always welcome! Please have a look at the contribution guidelines first. :tada:
License
The MIT License (MIT) 2017 - Athitya Kumar. Please have a look at the LICENSE.md for more details.