DEV Community

Cover image for My Google Summer of Code 2021
Hollow Man
Hollow Man

Posted on • Edited on

My Google Summer of Code 2021

Blog Posted on openSUSE News about the Project

Project Introduction

IBus Customize @openSUSE by Songlin Jiang (@HollowMan6)

Before GSoC 2021, the IBus theme follows the global GNOME-Shell theme in GNOME and the global GTK theme in other desktop environments, and IBus lacks customization for users in GNOME.

Main Focus

This project aims to make IBus themes separate from the current GNOME-Shell theme and GTK theme so that users can customize it with other GNOME-Shell themes and GTK themes.

Other Goals

Improve the UI usability for IBus in GNOME. That is, to add more features, including customization of orientation, animation, font, opacity. Support right-click to switch the input source or open the tray menu, scroll to switch among pages or candidates, fix candidate box and IME switch list order, ASCII mode auto-switch, reposition, show or hide candidate box page buttons, set system tray settings, input source indicator with settings. Theme and background picture follow GNOME Night Light Mode, and so on. These customizations will make users find IBus in GNOME familiar if they have just switched from another platform. Eventually, an extension providing full customization of appearance, behavior, system tray, input source indicator for IBus will be available.


Contribution in Details

Blog Posts both in Chinese and English of the Documentations Related to the Project User Guide


Customize IBus Extension (All the commits and releases submitted by @HollowMan6 are my contributions)

Using Customize IBus to Set Background with a Specified Theme

Functionalities

  • Candidate Box Orientation (imported from ibus-tweaker, refer to ibus-font-setting for settings sync with ibus-setup)
  • Candidate Box Animation (thanks for the help from Florian Müllner)
  • Right-click Candidate Box to Switch the Input Mode or Open the Tray Menu
  • Scroll on Candidate Box to Switch among Pages or Candidates
  • Fix Candidate Box to Not Follow the Caret and Set Fixed Position
  • Candidate Box Font (imported from ibus-tweaker and ibus-font-setting)
  • Input Mode Remember and Auto-switch by APP (imported from ibus-tweaker, refactor to enable configuring input mode remember)
  • Change Candidate Box Opacity
  • Fix IME List Order (imported from fixed-ime-list)
  • Drag Candidate Box to Reposition
  • Show or Hide Candidate Box Page Buttons
  • Restart or Start IBus from Preferences
  • System Tray Menus and Interaction Settings
    • Show or Hide Tray Icon
    • Directly Click Tray Icon to Switch Input Mode
    • Add Additional Menu
  • Input Source Indicator Appearance and Interaction Settings
    • Enable Indicator
    • Only Indicate when Switching Input Mode
    • Only Indicate when Using ASCII Input Mode
    • Right-click Indicator to Hide
    • Scroll on Indicator to Switch Input Mode
    • Indicator Animation
    • Customize Font
    • Left-click Indicator to Drag to Move Indicator or Switch Input Mode
    • Change Opacity
    • Enable Auto-hide Indicator and Configure Auto-hide Timeout
  • Configure Theme (Stylesheet Provided by IBus Theme Hub or Extracted from IBus Theme Tools GNOME Shell Themes)
  • Add a Candidate Box Background Picture and Configure its Displaying Style
  • Theme and Background Picture Follow GNOME Night Light Mode (partly referred to ibus-tweaker for this feature)
  • Multi GNOME Version Support ranging from GNOME 3.34 to GNOME 40 Simultaneously
  • Hot Reload Support for Theme
  • Reset to Default Settings
  • Export Current Settings to File
  • Import Current Settings from File
  • Open Official Settings from Preferences
  • Multi-Linguistic Support (Chinese and English)
  • Packages Definition Files that can Pack it in Arch, RPM Based, Debian Based
  • Logo Design
  • Eslint and Prettier Check Support
  • Workflow for Auto-Generating Extension Upload Zip file
  • Distribution Repos
  • Makefile for Build, Release, Package, Translate

(Credits for the GJS Documentation and GNOME Shell Codebase!)

Issues and PRs Opened and Resolved

Submitted to Open Build Service

My OBS Home

Source Repository (Before revision 87)

Upstream Repository (Before revision 4)

Submit Request #903392

Submit Request #906096

Submit Request #911881


Uploaded to the GNOME Shell Extension Store


Submitted to Ubuntu PPA (Before Version 70)


Submitted to AUR (Before Version 70)


IBus Theme Tools (All the commits and releases submitted by @HollowMan6 are my contributions)

Select IBus Theme Tools Work Mode on Non-GNOME Desktop

Functionalities

  • Non-GNOME Desktop Change IBus GTK Theme, Add Theme Settings to Startup (Before v3). Generate an IBus Mixed GTK theme, Supporting to Select a Background Picture and Configure Border Radius (After v4)
  • GNOME Desktop Extract IBus Style from GNOME Shell Theme
  • Pack into Module Using Python Package Setup
  • Multi-Linguistic Support (Chinese and English)
  • Workflow for Python Package Check
  • Packages Definition Files that can Pack it in Arch
  • Makefile for Build, Release, Package, Translate

Issues and PRs Opened and Resolved

Submitted to Open Build Service

My OBS Home

Source Repository (Before revision 17)

Upstream Repository (Before revision 3)

Submit Request #906099

Submit Request #912456


Submitted to Ubuntu PPA (Before Version 4.1.3)


Submitted to AUR (Before Version 4.1.3)


IBus Theme Hub (All the commits and releases submitted by @HollowMan6 are my contributions)


Microsoft IME Theme Blue Dark #1A5FB4

Functionalities

Issues, Discussions, and PRs Opened and Resolved


IBus (All the commits and releases submitted by @HollowMan6 are my contributions)


Change Theme with GTK Themes PR (Merged for IBus v1.5.27)

Top comments (0)