NEW! Giccler 0.1.0 (pre-alpha): Manually Calibrate Monitor Profiles in Realtime in Linux!
Only a couple of weeks after purchasing a horrible plastic toy for a shitload of money from Lenovo called „W540“ (the adequate rant will follow on this blog soon) I have a usable display in Linux! And guess what – I had to write my own application to achieve it.
There are some color profiles around which are a lot better than the uncalibrated display which reminds of a 70’s porn with its overall yellow-greenish inking but doesn’t come close to a nicely calibrated color profile.
So all I needed was a tool to make some minor corrections to the VCGT ramps provided in those profiles – preferably in realtime. After some searching I had to realize that there’s no manual calibration application available in Linux (is there one for other OS? haven’t found any) so I decided to write my own one.
So here it is: Giccler 0.1.0
Initial features:
Version 0.1.0:
* Initial user interface
* Full interaction with ramp widgets
* Configurable gradient display
* Loading, applying and saving of profiles
* Realtime manipulation of active profile
It is as easy as it looks: Just drag those little handles at the end of the curves to change a previously loaded color profile in realtime. Add and remove handles by double-clicking and reset them to zero by middle click. Dragging them with a right click only changes the value of the handle, not its position on the x axis. The save button saves the new color profile to a file. If you disable auto apply use the apply button to load your changes into X.
Use those profiles
To use your generated (and saved) profile on boot just add „xcalib /path/to/file.icc“ to your auto-started programs.
How to get it?
There’s no manual or even a website for it by now. For now please follow the steps described here to activate my repository:
http://mein-neues-blog.de/tragtor-gui-for-ffmpeg/#install
But instead of installing tragtor just install giccler.
Dependencies are: xcalib, python and python-gtk
What doesn’t work
This is pre-alpha.
Again: THIS IS PRE-ALPHA.
- You need an existing profile containing VCGT ramps which you can edit
- Ramps look slightly crippled after saving. I’m working on it, for now it works for me at least
- Editing profiles meta data like name or description
But since it was able to generate a usable profile for my display I decided to release this version into the wild.
Oh and I’m not shure if the package works and installs all neccessary dependencies. If not please drop me a line and install xcalib, python and python-gtk for the moment.
Features I’ll implement in the future:
- Upsampling for better ramping with windowing for smoother interpolation
- Bitrate enhancement for less „stairs“ (as far as X allows me to, have to test for the limits first)
- Spline interpolation (only linear curves by now)
- Creating new profiles from scratch
- Overall gamma correction
But for the moment it offered me all features I nedded to get a linear and non-inked looking color reproduction on my display. And guess what – it seems that at least the display is worth its money now. After writing an application for it.
Bugs and requests
Until there’s a „regular“ website for this program please write bug reports and requests as comments under this article.
Please note!
I’ve tested it with a couple of profiles now but keep in mind that there’s no guarantee that everything works atm so please avoid overriding existing profiles by using the save button for which you don’t have any backups. I’ll recommend writing to new files until it went through further testing by the community.
2 comments on “NEW! Giccler 0.1.0 (pre-alpha): Manually Calibrate Monitor Profiles in Realtime in Linux!”
hi,
nice tool, thanks for this!
– works fine in ubuntu 16.04
– icm profiles from http://www.tftcentral.co.uk/articles/icc_profiles.htm load, icc profiles not (have tried several)
I get either:
Error - unsupported ramp size 0
or:
Traceback (most recent call last):
File "/usr/share/giccler/giccler.py", line 338, in open_cb
self.load_profile(fc.get_uri())
File "/usr/share/giccler/giccler.py", line 83, in load_profile
self.profile = self.icc.open_profile(profile)
File "/usr/share/giccler/icc.py", line 146, in open_profile
self.data = self.parse_data()
File "/usr/share/giccler/icc.py", line 307, in parse_data
data[tags[tag]["signature"]] = self.parse_data_entry(tags[tag])
File "/usr/share/giccler/icc.py", line 382, in parse_data_entry
t = targs[int((pos - start) / (entries * length))]
IndexError: tuple index out of range
Hey rxon,
thanks for the report!
The first error is thrown by X, sorry but I can’t do anything about it. After an update of X some time ago all giccler-generated profiles didn’t work anymore (throwing the same error) but I was able to fix it. So it looks like X can’t make any use of those profiles.
The second one is a bug within giccler. I took a short look but wasn’t able to fix it in a blink. Since I’m quite busy atm this one has to wait at least until next week.
Best
Markus