This won't be maintained or developed - use https://github.com/melix99/telegrand instead!
This app is a GTK implementation using gtkmm of TdLib. The official client of Telegram is using Qt and it has an Operating System agnostic interface, but tends to be more Windows-like than a Linux interface.
GNOME human interface guidelines are cool and this app intends to follow them.
There are some developer libraries (gtkmm and TdLib being essential) that you will need.
There's a bunch of distros so use your package manager to find and install the gtkmm developer libraries.
It's pretty straightfroward! This project uses CMake so it's easy:
mkdir build && cd build
cmake ..
make
sudo make install
- Complete the Telegram thread classes.
- Create the User Interface.
- Connect GUI and Telegram thread.
- And so on...
Also there's more TODOs in the code comments.
It was initially planned to be a elementary-based application, but I find myself being comfortable using GNOME, because its workflow is better in my opinion.
There are some reasons listed below:
- There's a C++-native implementation of TdLib. Just using this.
- I feel more comfortable coding in C++. The Vala way is harder for me. It seems like Java/C#, so verbose, and also making Vala APIs for connecting a C++ library using void pointers to adaptinmg them for C and connecting them to Vala is so hard and painful, yet somewhat I managed to get them working with TdLib's JSON shared object, but I don't want to lose time with that.
- Granite is Vala-based and centered in Pantheon, thus making it harder to be global for GTK. Also, the reason above is powerful.
- Most people like to use GTK, MATE or Xfce than Pantheon. I myself being a GNOME user rather than a Pantheon one conditionates this decision (I tend to use Fedora or Ubuntu).
CMake is more intuitive and more extended than Meson is. Also it's comfortable and I use CLion.
I'll do my best to build this project, although I'm open to pull requests. Also, some people told me they wouldn't mind funding this project. My answer is that this project has to reach some level before I'll ever think about that.