Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nfarrar/ida-colorschemes
A .clr colorscheme generator for IDA Pro 6.4+.
https://github.com/nfarrar/ida-colorschemes
Last synced: 3 months ago
JSON representation
A .clr colorscheme generator for IDA Pro 6.4+.
- Host: GitHub
- URL: https://github.com/nfarrar/ida-colorschemes
- Owner: nfarrar
- Created: 2014-10-28T17:20:37.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2015-09-30T14:01:41.000Z (about 9 years ago)
- Last Synced: 2024-05-27T12:01:39.868Z (6 months ago)
- Language: Python
- Size: 161 KB
- Stars: 9
- Watchers: 4
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
ida-colorschemes
================
What in the f*ck?!*$ Yup, it's a colorscheme generator for IDA Pro 6.4+, written in Python 2.7, using Jinja2 & PyYAML.*Note: Not quite done yet, checked it in early, so I have some version control.*
About
-----
In IDA Pro 6.4, Hex-Rays introduced .clr colorschemes. The file format and GUI interface is really picky, and after messing around for 15 minutes I could already tell that I was going to spend way too much time tweaking it ... so I decided to spend way more time building a python script to generate colorscheme files from palettes.**But whyyyyyyyy?**
The .clr format is extremely picky:
- You can't comment your .clr file, and the variable names are underwhelming as a documentation resource.
- Any adjustment to the whitespace breaks the .clr file and it won't import. No errors will be reported.
- There's no support for variable bindings, which makes the configuration process impossibly tedious (for me).To make the color configuration process _really_ easy, ida-colorschemes does the following:
- Colorschemes are written in YAML. This allows us to add comments, modify whitespace, and leverage `node anchors` for variable substitution.
- The default.jinja2 template has been commented to provide additional information about variables.
- Version dependent .clr files have been converted into jinja2 templates.
- The colorscheme configuration is merged into the template, and the final .clr file is written.
- Palette can be leveraged to generate highlighting and accent colors from the base palette (soon).Installation
------------
ida-colorschemes has the following dependencies:- libyaml
- python 2.7
- cliff
- jinja2
- palette
- pyyamlNOTE: If you want to mess with the internals, I recommend installing bpython, then running the script with: `bpython -i idacs.py`.
Example setup on OSX (using homebrew & virtualenv/virtualenvwrapper):
# install os dependencies
brew install libyaml virtualenv virtualenvwrapper# create & activate the virtual environment
mkvirtualenv idacolors && workon idacolors# clone the repo & cd into it
git clone _REPO_ && cd idacolors# install the python dependencies from requirements.txt
pip install -r requirements.txtUsage
-----
CLI args not done yet../idacs.py
TODO
----
- Add dynamic palette generation using python-palette.
- Finish figuring out all the various color settings.
- Build some modular 'color groups' for use in the colorschemes.
- Add CLI options.