diff options
author | Josh Rahm <joshuarahm@gmail.com> | 2024-03-05 23:42:08 -0700 |
---|---|---|
committer | Josh Rahm <joshuarahm@gmail.com> | 2024-03-05 23:42:08 -0700 |
commit | f54c38f585536cbe88cdfddf9a699bf8ca909c6c (patch) | |
tree | 4f899701f3939796faa33502fa86380a5d0d9b56 /plugin | |
download | nvim-color-picker-f54c38f585536cbe88cdfddf9a699bf8ca909c6c.tar.gz nvim-color-picker-f54c38f585536cbe88cdfddf9a699bf8ca909c6c.tar.bz2 nvim-color-picker-f54c38f585536cbe88cdfddf9a699bf8ca909c6c.zip |
Initial commit for nvim color picker.
This is a very simplem plugin that lets the user set the color of a
highlight group using a GUI colorpicker. This can be helpful for
creating colorschemes.
Diffstat (limited to 'plugin')
-rw-r--r-- | plugin/colorpicker.vim | 18 | ||||
-rwxr-xr-x | plugin/pickcolors.py | 37 |
2 files changed, 55 insertions, 0 deletions
diff --git a/plugin/colorpicker.vim b/plugin/colorpicker.vim new file mode 100644 index 0000000..088813f --- /dev/null +++ b/plugin/colorpicker.vim @@ -0,0 +1,18 @@ +let s:script_dir = expand("<sfile>:p:h") + +let g:colorpicker_cmd = printf("%s/%s", s:script_dir, "pickcolors.py") + +function! PickColorFor(hlgroup, fgbg) + let opts = {} + + let opts.stdout_buffered = v:false + let opts.hlgroup = a:hlgroup + let opts.fgbg = a:fgbg + function opts.on_stdout(id, data, ev) dict + if len(a:data) > 0 + exec printf("hi %s %s=%s", self.hlgroup, self.fgbg, a:data[0]) + endif + endfunction + + let job = jobstart(g:colorpicker_cmd, opts) +endfunction diff --git a/plugin/pickcolors.py b/plugin/pickcolors.py new file mode 100755 index 0000000..50a2169 --- /dev/null +++ b/plugin/pickcolors.py @@ -0,0 +1,37 @@ +#!/usr/bin/python3 + +import sys +from PyQt5.QtCore import Qt +from PyQt5.QtGui import QColor + +from PyQt5.QtWidgets import QApplication, QColorDialog + + +class ColorPicker(object): + + def __init__(self): + self.app = QApplication(sys.argv) + + def get_color(self): + color_dialog = QColorDialog(parent=None) + color_dialog.currentColorChanged.connect(self.on_color_changed) + color_dialog.finished.connect(self.close_on_finish) + color_dialog.exec_() + + def on_color_changed(self, color): + # Convert color to RGB format + # red, green, blue, _ = color.getRgb() + hex_color = color.name(QColor.HexRgb) + print(hex_color, flush=True) + # print(f"Selected Color: RGB({red}, {green}, {blue})") + + def run(self): + self.get_color() + sys.exit(self.app.exec_()) + + def close_on_finish(self, event): + sys.exit(0) + +if __name__ == "__main__": + picker = ColorPicker() + picker.run() |