And made a merge request. Support for commands suspend, resume and status remain to be implemented. I am not sure, what is the best way and I am not very familiar with the functions. I also made some improvement (I believe) in detection of desktop environment. What do you think about it?