cocopon / iceberg.vim

:antarctica: Bluish color scheme for Vim and Neovim
https://cocopon.github.io/iceberg.vim/
MIT License
2.22k stars 132 forks source link

How could we create a dircolor theme? #112

Closed AuxiliumEngineer closed 8 months ago

AuxiliumEngineer commented 1 year ago

Environment:

This isn't an issue with the vim theme, but i couldn't find a better place to put this. The README mentions other implementations of iceberg and i hope this issue is appropriate. BTW: Supporting Terminal.app rocks! So thank you for that.

It would be really nice to have one theme that is applied to every color in your terminal. That is why i loved solarized, it is everywhere. Iceberg could be the next solarized. Only missing part for me is a dircolors definition. I can't estimate how difficult that would be (i happily copied a solarized dircolors a long time ago and never touched it again)

Feel free to ignore my request or share a different solution.

cocopon commented 1 year ago

Thank you for using Iceberg. What is dircolors? Can you share related information? e.g. environments, official documents, screenshots, example codes, etc...

AuxiliumEngineer commented 1 year ago

Sure, it is part of GNU Coreutils. A definition looks something like this:

### By file type

# global default
NORMAL 00
# normal file
FILE 00
# directory
DIR 34
# 777 directory
OTHER_WRITABLE 34;40
# symbolic link
LINK 35

# pipe, socket, block device, character device (blue bg)
FIFO 30;44
SOCK 35;44
DOOR 35;44 # Solaris 2.5 and later
BLK  33;44
CHR  37;44

#############################################################################
### By file attributes

# files with execute permission
EXEC 01;31  # Unix
.cmd 01;31  # Win
.exe 01;31  # Win
.com 01;31  # Win
.bat 01;31  # Win
.reg 01;31  # Win
.app 01;31  # OSX

#############################################################################
### By extension

# List any file extensions like '.gz' or '.tar' that you would like ls
# to colorize below. Put the extension, a space, and the color init string.
# (and any comments you want to add after a '#')

### Text formats

# Source text
.h 32
.hpp 32
.c 32
.C 32
.cc 32
.cpp 32
.cxx 32
.objc 32
.cl 32
.sh 32
.bash 32
# more definitions... much more

I still don't understand how you get to those numbers. This snippet is from the solarized theme i am using. The definition is the same for all shells, because it will always be read by dircolors.

Which will be done in your startup files:

# evaluate dircolors for prettier ls and stuff
[[ -r ${PATH_TO_DOTFILES}/zsh/dircolors ]] && eval $(dircolors -b ${PATH_TO_DOTFILES}/zsh/dircolors)

Hope that is helpful.