Closed Poorchop closed 8 years ago
I'm working out a port based on mIRC color table and I have everything worked out except for gray, light gray, brown, and highlighted text foreground/background.
For brown, I am using darktooth-sienna, and I think darktooth-medium looks nice for gray, but I'm not sure where to go with the last three colors (light gray, highlighted text).
I think the mIRC colors are a little bit unorthodox, so the port for terminal emulators should be very easy. I'll work on that once I get the mIRC colors down, and I'll run whatever I come up with by you.
Edit: for highlighted text, I think this translates to dark1 and light1 based on the specified term colors. I'd just like to hear what you suggest for gray and light gray. I'm using darktooth-darkslategray4
and darktooth-light2
, respectively, since these seem to best correspond to the default client colors.
My suggestion for greys is the light and dark sets, consider that greys are usually tints on black / white, so the dark / light set provide same for darktooth.
@Poorchop would you be interested in making a Tmux theme from Darktooth?
I'm not familiar with Tmux themes but I can certainly take a look. So far, I have a gnome-terminal theme and I am still trying to work out the mIRC colors, of which I'd like to soon post a screenshot to get your opinion. I'm also going to try and port this to a few other text editors, such as CodeMIrror (which should cover Brackets), Ace editor (cloud9, GitHub's syntax highlighting), the JetBrains IDEs, and possibly a few other editors. Some ports will be easy but some others might take more time since I'm learning as I go.
Atom would be nice too, and I suppose SublimeText.
Note I built a ruby gem a while ago to convert ST2 themes to Emacs, I will dig it up and see if it's easy to use it to map to other structures.
Hmmm this might only be a useful reference, but it may serve as a stub for a sort of Pandoc for themes.
See also the theme editor code I made here https://github.com/emacsfodder/emacs-theme-editor/
this will probably be the most useful https://github.com/emacsfodder/emacs-theme-editor/blob/gh-pages/js/face-table.coffee
But it's not really the thing for darktooth and other themes that have a managed palette.
It might help me iron out some of the colors that I'm not sure about, so thanks for the links.
I also have a lisp function to generate hue tables and kurecolor an Emacs interactive color manipulation tool.
https://github.com/emacsfodder/kurecolor
See https://github.com/ocodo/.emacs.d/blob/master/custom/handy-functions.el find make-kurecolor-hue-table at the bottom.
Works best if you have rainbow mode on.
I've been using the neutral and bright colors as the template for creating themes in other programs, but I only just noticed that the neutral and bright definitions are identical. Is this typical in other Emacs color themes as well? I was using a 256 terminal color table to look up the hex codes for the bright colors, and in doing so, I completely missed the fact that the hex codes were identical to the neutral counterparts.
When trying to map the theme in PuTTY for example, there is an ANSI Red and an ANSI Red Bold. I thought that by convention, ANSI Red would be the equivalent of darktooth-neutral_red
while ANSI Red Bold would have a brighter value, but only darktooth-faded
and darktooth-dark
differ from the neutral colors, and they obviously have darker values.
I haven't actually noticed any issues with using identical colors for ANSI Red and ANSI Red Bold, but I'm not sure if it might cause issues for some other usage case that I haven't seen yet.
Yes it should be light and faded to provide a difference.
This is a palette oddity I inherited from Gruvbox
After a lot of indecisiveness, I finally have the mIRC colors mostly worked out. Because this theme (and Gruvbox) are unconventional with regards to the bright vs. neutral colors, I substituted all the light variations in the mIRC color spec with the darktooth-faded
equivalents. This means that the colors are kind of backwards, but I prefer keeping darktooth-neutral
as the standard set of colors, rather than the secondary bold/bright set.
I took liberty with color of the user's personal text events and the color of selected text. Theuseus's messages represent what your messages would look like in the client. I used aquamarine4 because it was close to the default dark gray color, and DarkSlateGray4 stuck out too much. For the selected text color, I used the pos-tip
definitions.
The faded colors make the theme look a little murky, but there's not much else that can be done apart from doubling up on the neutral colors. Here's the full palette, along with the default mIRC colors for comparison:
I also wasn't too sure what color to use for color 31, but I pulled it from the Darktooth palette and it's close enough the corresponding mIRC color. Let me know if you think any changes should be made. Otherwise I'll try to start converting Darktooth for use with other text editors when I get some more free time.
Looks good, can you help me see them as they map to darktooth's palette? (is your color chart html?)
I think that HexChat converts the hex color input to RGB. I used the 256 color palette for this port. Here is my color map:
16: darktooth-light1
/color-223 -> #FFD7AF
17: darktooth-dark1
/color-237 -> #3A3A3A
18: darktooth-neutral_blue
-> #87AFAF
19: darktooth-neutral_green
-> #AFAF00
20: darktooth-neutral_red
-> #D75F5F
21: darktooth-sienna
-> #DD6F48
22: darktooth-neutral_purple
-> #D787AF
23: darktooth-neutral_orange
-> #FF8700
24: darktooth-neutral_yellow
-> #FFAF00
25: darktooth-faded_green
/color-100 -> #878700
26: darktooth-neutral_aqua
-> #87AF87
27: darktooth-faded_aqua
/color-66 -> #5F8787
28: darktooth-faded_blue
/color-24 -> #005F87
29: darktooth-faded_purple
/color-96 -> #875F87
30: darktooth-aquamarine4
-> #83A598
31: darktooth-light2
/color-250 -> #BCBCBC
Foreground: darktooth-light0
/color-229 -> #FFFFAF
Background: darktooth-dark0
/color-235 -> #262626
Foreground: darktooth-light0_hard
Background: darktooth-dark_aqua
For the interface colors, I just re-used the local colors: New data = 18 New message = 23 Highlight = 19 Marker line = 24 Away user = 30 Spell checker = 20
I think the highlight color is typically set to color 25, but I left at 19 because color 25 should be bright green and I had to use faded green as we discussed. It's just a HexChat theme so I think it's okay to be a little inconsistent with the conventions.
For porting to terminal emulators, I think also need to work out the color scheme for dir_colors, so it's going to be a little less straightforward than just following Term colors. It might be quite a while before I find the time to port this to some other text editors, but I will get to it eventually.
AFAIK all you need to do is map from 32 - 47?
Doesn't dircolors just use ANSI?
Sorry I meant 30-47
I guess an ANSI scheme would be enough but I noticed that dircolors-solarized also has a scheme for 256 color terminals, and they have custom rules for a lot of different files. I don't think the default scheme distinguishes between different files like that, so maybe that's just extraneous work.
The theme doesn't seem to transfer over to CodeMirror/Brackets very well. I think I spent about 12 hours alone finding new base templates, styling, and then starting all over again from scratch. This is my work in progress so far:
As you can see, it doesn't look as good as it does in Emacs because the foreground color is hardly used anywhere, so it's over-saturated with aquamarine4. I don't know why it treats Python libraries as variable names but I couldn't figure out how to change that.
I used yellow and red for classes when I wasn't sure of what was being affected. I'll try to finish up as much as I can and then post my work in progress, and maybe you can help me finalize the style and make some adjustments where you see fit.
Edit: Link to work in progress
Looks pretty good to me
PuTTY theme is up. I think I ended up using dark2 for ANSI black and light2 for ANSI white - best compromise between readability and aesthetics. I didn't know what Colour4
was supposed to be so I just left it as 0,0,0
.
I'll see about getting the PuTTY theme converted to iTerm
Have you seen this ?! https://github.com/chriskempson/base16-builder
Wow that's incredibly useful. This seems to cover everything under the sun. Have you given the tool a try yet? I'd like to see how it compares to the work I've done for CodeMirror so far - at the very least, it should help me work out a few of the places where I'm stuck with porting the theme over.
I have, I have an output folder I'm about to push to darktooth theme ports
Brackets theme is done. There is a lot more room for custom styling, but that requires taking a lot more liberties with elements that aren't defined in the source Emacs theme. There are still four selectors that are unaccounted for, but I don't even see them included in most other themes so I think it should be fine.
If you ever have the time, you should test out the theme in Brackets yourself and if you approve, I can submit it to the official extension registry.
I assume you'll be keeping an eye on the port repository - I guess I'll just post any major questions that I have here (or elsewhere if you prefer), but otherwise I'll just keep working on more ports when I can.
Yeah, I'll try brackets theme on Monday. I'm travelling this weekend
@Poorchop I made a keyboard theme for Cherry MX keys (UV printed CMYK 600dpi) - based on Darktooth.
https://github.com/emacsfodder/dark-tooth-wasd
I thought you would like it
That's pretty interesting. The mockups look good and I think that it would look amazing with some backlighting. I don't have a compatible keyboard at the moment but maybe some day.
there's always rbg leds with black keys + translucent doubleshot legends, then it'd be "simple" to map any color schemes to the board ...
You got me thinking about a new purchase! D:
I started work on an Atom theme today - it's pretty frustrating to figure out what every element name corresponds to, so it's probably going to take a long time to finish. Hopefully I'll remember to push the work in progress to the repo later on when I'm back on my main computer so that anyone who has time can help if they want.
FYI keeping an SSH gateway available to your machine means you can always WIP commit and push when you're away from it. (Only use key access)
Closing. Poorchop's project deals with this well.
Creating a template with 16 primary colors plus two additional colors for the background and foreground would allow for easier and more accurate porting of this color scheme for use with other software, including terminal emulators, IRC clients, and other text editors. There are typically eight primary colors with bold/highlighted/emphasized/bright variants, which are as follows (colors 0 to 7):
Colors 8 to 15 would just be a secondary black, secondary red, secondary green, and so forth. Additional definitions would help as well for any other actions that typically have associated colors, such as highlighting text. In this case, designated background and foreground colors for highlighted text would be nice to include in the template.
A port of this color scheme to a terminal emulator like GNOME Terminal or Konsole, or to an SSH client like PuTTY could serve as a starting point rather than arbitrarily creating a file with the 20 possible colors mentioned so far.