You are not logged in.
Hey all,
I present to you what you can consider a C/GTK3 clone of Nitrogen: Phosphorus. In terms of GTK, Phosphorus one ups Nitrogen, hence the name
Some of you may know I'm on a quest to get rid of GTK2 as much as possible. Nothing technical, just some personal OCD at play here. I had been in contact with Nitrogen's main developer, daf (Dave Foster, not sure if "main" is the correct term but he seems to be the only developer left working on it), regarding porting Nitrogen to GTK3 but he described a lack of time and interest; plus, he said, if there is going to be a re-write, it's probably going to be in Python. In case you are interested, I still have the emails (exchanged in April 2013).
So, I decided to come up with something myself. I just pushed the last fixes to Git and I now think I have something that is in presentable shape. It does not have every feature Nitrogen has (yet), but the basics are all there. Phosphorus can:
Set the wallpaper in five different modes (scaled, centered, tiled, zoomed and zoomed fill) plus a sixth which decides the optimal mode for the current image. Exactly like Nitrogen.
You can pick a color to fill the remaining space. Exactly like Nitrogen.
There is a Preferences Dialog in which you can add new directories to scan for images. Exactly like Nitrogen.
Those directories of course get scanned recursively, this happens in its own thread. Exactly like Nitrogen.
There is a --restore parameter to reset the currently applied wallpaper on boot without starting the whole UI. Exactly like Nitrogen.
As you can see, nothing really stands out over Nitrogen. I have tried to stick as close to the "original" as possible, since I know so many people love it. There is a lot left to implement, as you can read below:
Q: What does Nitrogen do that Phosphorus does not?
A: for now, quite a lot! Phosphorus currently only works for single monitor setups. I plan on adding this, but I suspect this will take some time as I have no experience regarding this. Also, Nitrogen stores the thumbnails it creates in the $XDG_CACHE_HOME/thumbnails directory for faster startups. I still have to look into this, as well. Nitrogen also has complete commandline support, Phosphorus does not. Phosphorus also does not support sorting the images, for which Nitrogen has several options and lastly, Nitrogen also has support for inotify to automatically add new images if they get placed in a watched folder while Nitrogen is open. I'm not sure if I will implement this.
For those curious about the source, you can grab it from GitHub: https://github.com/Unia/phosphorus
If you are excited about this project, there are numerous ways to help me out:
Patches are always welcome!
Phosphorus can be translated! Instructions for this can be found in the README; you can check which languages are currently supported inside the po/ folder in the repository. Translating should not take more than five minutes of your time and really helps to polish the product.
Testers are always nice to spot setup-specific bugs! Feel free to report anything unusual you spot, or annoyances you think I can do better!
Thanks for reading and I look forward to your feedback!
Last edited by Unia (2013-12-05 20:45:11)
If you can't sit by a cozy fire with your code in hand enjoying its simplicity and clarity, it needs more work. --Carlos Torres
Offline