Home

Awesome

ls

Overview

Table of Contents

  1. Installation
  2. Building
  3. How it works
  4. Included icons
  5. Screenshots
  6. Integrations
  7. Projects using icons-in-terminal
  8. Todos

Installation

$ git clone https://github.com/sebastiencs/icons-in-terminal.git

To install icons-in-terminal, run:

$ ./install.sh  
$ # Follow the instructions to edit ~/.config/fontconfig/conf.d/30-icons.conf

Or if your terminal is supported (Experimental)

$ ./install-autodetect.sh 

Done ! You can start a new terminal and run print_icons.sh to see the installed gryphs.
You can see names of each icon by giving any parameter to print_icons.sh:

$ ./print_icons.sh
$ ./print_icons.sh --names
$ ./print_icons.sh --names | grep ANY_NAME

To use icons in your terminal, do not copy-paste icons from the output of print_icons.sh but use their variable name: see integrations.
When one of the provided font will be updated and add new icons, some codepoints in icons-in-terminal.ttf will be changed, the variable names won't.

Building

If you want to add new font, follow these instructions:

There are a few dependencies to install:

You can add the name and path of your font to the file config.json.
Each font can take parameters:

Once done, you can run:

$ ./build.sh

How it works

This project is inspired by awesome-terminal-fonts but is different.
I don't modify any existing font, I merge all glyphes from the provided fonts in a new font file and insert them in the private use areas.
The file ~/.config/fontconfig/conf.d/30-icons.conf tells to freetype to search the glyph in icons-in-terminal.ttf if it fails in your default font file. As the codepoints generated are in the private use areas, freetype should always fail and fallback to icons-in-terminal.ttf
The only requirement is that your default font shouldn't be already patched/modified. But why use a patched font with a limited number of glyphes when they are all included here :)
Your terminal emulator should also support fallback font (most of them support it)

Included icons

There are already 3618 glyphes included:

NameVersionNotes
powerline-extra-symbolscommit 4eae6e8
octicons4.4.0
fontawesome4.7
material-design-icons3.0.1
file-icons2.1.4
weather-icons2.0.10
font-linux0.9
devicons1.8.0
Pomiconscommit bb0a579
linea1.0
font-mfizz2.4.1
FiraCode1.200See if your terminal is compatible

Screenshots

Screenshot the included icons Screenshot with fish

Integrations

Fish integration

To use icons-in-terminal with fish, add this line to ~/.config/fish/config.fish:

source ~/.local/share/icons-in-terminal/icons.fish

Restart a terminal, now you can print any icons with its name:

$ echo $oct_location

Bash integration

Add this line to your .bashrc:

source ~/.local/share/icons-in-terminal/icons_bash.sh

Restart a terminal, now you can print any icons with its name:

$ echo -e $oct_location # note the '-e'

Emacs integration

Add this line to your emacs init file:

(add-to-list 'load-path "~/.local/share/icons-in-terminal/")

To use icons-in-terminal in your package:

(require 'icons-in-terminal)
(insert (icons-in-terminal 'oct_flame)) ; C-h f icons-in-terminal[RET] for more info

Projects using icons-in-terminal

ls

https://github.com/sebastiencs/ls-icons

emacs

https://github.com/sebastiencs/sidebar.el

Todos