Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iBus customized theme enhancement #182

Closed
qiangzhao opened this issue Feb 16, 2022 · 17 comments
Closed

iBus customized theme enhancement #182

qiangzhao opened this issue Feb 16, 2022 · 17 comments

Comments

@qiangzhao
Copy link
Contributor

qiangzhao commented Feb 16, 2022

Project Title: iBus panel window support customized theme enhancement

Description:
We will continue to develop and improve iBus theme features based on our past work
1, Only font family, font size, font color, and background color options are retained on the setting page of iBus.
2, add an import button to open a dialog to choose a theme.
3, create a theme create tool: it could open(import) an image, scale image, cut image into theme size, and save it as an iBus theme. The saved theme could be imported from iBus preferences page.
4, the student should apply to join openSUSE membership and have good communication to imply his(her) GSoC background and the work to the community.
5, Above work should be saved in https://github.com/openSUSE/Ibus-Theme-Tools.git, please not work in the personal repo.
6, Should submit from openSUSE repo to upstream repo when finished, feedback rapidly for upstream's question.

Additional
7, Explore the feasibility of integrating multiple topics and give a detailed report.
8, Explore the possibility of re-implementing iBus panel window, refer to LibreOffice and Mozilla-firefox, which could customize their theme under gnome-desktop.
9, Try to use openQA to test iBus, write a demo test case. (Eg: test iBus could run) and submit.

Deliverable:
the modification to different desktop components to accomplish the target.

Mentor:
@hillwoodroc @qiangzhao

Skills:
C, C++, Python.

Skill Level:
Medium

Get started:
IBus 1.5 API: https://github.com/ibus/ibus/wiki
GTK: https://gitlab.gnome.org/GNOME/gtk/
Gnome-shell: https://gitlab.gnome.org/GNOME/gnome-shell
Example of Gnome-shell theme: https://www.gnome-look.org/p/1291819/

@ddemaio ddemaio added the ibus label Feb 16, 2022
@ddemaio ddemaio added the Larged Sized Project Large sized project is 350 hours label Feb 25, 2022
@ddemaio
Copy link
Collaborator

ddemaio commented Feb 25, 2022

Hi @qiangzhao I listed this as a large sized project. About 175 hrs for the student for the medium size and 350 hrs for a large project. Please change it if it isn't correct.

@markbowen21
Copy link

Hello I am a prospect 2022 Google Summer of Code contributor. As I came across your organizations project list and instructions I can see how much your organization values communication between mentors and mentees. Which is great to see and I would really enjoy talking to any mentor willing to explain more details about the goals and deliverables of this project in order to submit the best GSoC proposal possible.
Thank you,
Mark Bowen

@AditiAgrawal95
Copy link

Hello,
I found this project interesting and believe that I have the necessary skills to contribute to it. Could you please help me get in contact with any mentor so that I could understand more about this project and come up with the proposal.
Thank You,
Aditi

@Muhamedelsayed
Copy link

Hello @qiangzhao I came across with this project and and I am very excited about the idea. I think I can make stunning achievements in this project. is there any way to contact one of the mentors please.
Thank you.
Mohamed Elsayed

@wolfcomos
Copy link

Hi @qiangzhao, I'm also interested in this project! Are there any ways to get in touch with one of the mentors?

@qiangzhao
Copy link
Contributor Author

Hi all:
I'm so honored that you're interested in this little project and so honored to work with you. I think I can learn a lot from you too.
I plan to draw a picture to indicate what the behavior would be, and will post it here recently to show the details.
I think you don't have to communicate with a mentor in private. Please just leave your valuable comments here to keep all information public and transparent to everyone. My email address is already in public(zhaoqiangx@gmail.com), but I think it's improper to respond to emails individually.
If you want to get some more background knowledge, you can have a look at [1] ~[4]. [1] and [2] are the 2 projects your code will contact with. [3], [4], is a project GSOC 2021, which accomplishes the custom theme function.
Finally, I hope you can become the driving force of this project through continuous learning and continuous research. :)

[1], https://github.com/ibus/ibus/
[2], https://github.com/GNOME/gnome-control-center
[3], https://github.com/openSUSE/Customize-IBus
[4], https://github.com/openSUSE/IBus-Theme-Tools

@qiangzhao
Copy link
Contributor Author

image
I made a sketch to illustrate the goal of the work, hoping it would help. :)

@qiangzhao
Copy link
Contributor Author

font
Or maybe you prefer to use font select dialog as this to avoid cluttered panels, it's all fine. Please note the above design is just an idea to show the basic design framework.

@qiangzhao
Copy link
Contributor Author

gnome-control-center
This is how the gnome-control-center works currently.

@HollowMan6
Copy link
Member

@qiangzhao Oh, looks cool. Guess I misunderstood your meaning previously, I used to think that the above features should apply both with GNOME and Non-GNOME desktop, and that requires the techniques I mentioned previously in my email which will be much harder.

For this one, it's not needed to re-implement iBus panel window, as the iBus panel window is already re-implemented under GNOME, we can already customize the theme under gnome-desktop easily.

8, Explore the possibility of re-implementing iBus panel window, refer to LibreOffice and Mozilla-firefox, which could customize their theme under gnome-desktop.

So for this idea, merging some features from https://github.com/openSUSE/Customize-IBus into https://github.com/GNOME/gnome-control-center would be enough, since many features has already been realized by the extension just mentioned in my GSoC 2021 work (except the background clip part), the work will be mainly for refactoring.

Then I would be very happy to apply again for GSoC 2022 as a student/mentee under this idea.

@HollowMan6
Copy link
Member

@qiangzhao Hi! I'm now writing to define the project scope. Can I ask and confirm if the design above is approved by the gnome-control-center upstream maintainer? If it's OK, then modifications in the following part of the code would be the project scope, it's all written in C: https://gitlab.gnome.org/GNOME/gnome-control-center/-/tree/master/panels/keyboard

If we haven't made any contact with the the upstream about the above design, as I also can't see any issues proposed there in gnome-control-center about this, and as a common practice that GNOME usually put customization part related to fonts and themes into gnome-tweaks, so it's very likely that we have to put the features there instead of gnome-control-center, and if we decide to put it into gnome-tweaks, we have to use Python instead of C.

Once we have confirmed the project scope and the upstream accepts our design to ensure they will eventually merge the code into GNOME if my work is up to the standard, I can then start working to refactor the GJS code in https://github.com/openSUSE/Customize-IBus into the related language for the gnome-tweaks or gnome-control-center.

@qiangzhao
Copy link
Contributor Author

For HowllowMan6's proposal:
I am very honored to have you participate in the last phase of the project, and I remember you impressed us with a good portion of the work you accomplished during the student pre-selection period, I hope future students can be as active and productive as you.
But please be aware that the purpose of this project is to help more students have the opportunity to participate in open source and enhance developing skills. so we Don't encourage a same student repeated participation in the same type of project under same mentor. It’s not only for you, we make same demands of all our past students. Especially, given the same conditions, and this time we will give priority to students from all global, as all previous students who participated were Chinese.
I hope you can understand me. And you are welcome to continue contributing to the open source community including your ideas, code…
Thank you for so much contribution which you did.

@HollowMan6
Copy link
Member

@qiangzhao Ok, I see then. Will be happy to join you as a mentor next year if there's more project related to IBus as I didn't manage to contact you earlier this year!

@qiangzhao
Copy link
Contributor Author

input
When if a student don't know how to check the ibus pre-edit window, he will need to install and enable a input engine which will call pre-edit function first, then use a software which accept ibus input (say gedit) to enable the engine.
This picture take ibus-libpinyin as an example. There may have other short ways to test. but this is the common way user use it. :)

@qiangzhao
Copy link
Contributor Author

Does anybody have any questions? please leave your comment.
@Muhamedelsayed @wolfcomos @markbowen21 @AditiAgrawal95

@qiangzhao
Copy link
Contributor Author

If we have no idea how to control iBus theme, maybe "IBus Tweaker" is a short example.

https://extensions.gnome.org/extension/2820/ibus-tweaker/
https://github.com/tuberry/ibus-tweaker

@qiangzhao
Copy link
Contributor Author

Gnome-shell theme with the customized background image, use Unity8-Wood theme as an example.

https://www.gnome-look.org/p/1291819/

@ddemaio ddemaio removed ibus Larged Sized Project Large sized project is 350 hours labels Jan 24, 2023
@ddemaio ddemaio closed this as completed Jan 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants