Review of "Customize IBus" version 94

Details Page Preview

Full customization of appearance, behavior, system tray and input source indicator for IBus Support Customization of: * Candidate Box Orientation * Candidate Box Animation * 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 * Input Mode Remember and Auto-switch by APP * Change Candidate Box Opacity * Fix IME List Order * Drag Candidate Box to Reposition * Show or Hide Candidate Box Page Buttons * 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 * * Not Indicate when Using Single Mode IME * * 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 Indicator Show Delay and Configure Showing Timeout * * Enable Auto-hide Indicator and Configure Auto-hide Timeout * Theme (Stylesheet Provided or Extracted from GNOME Shell Themes, Refer to Help Instructions in Extension for More) * Candidate Box Background and its Displaying Style * Theme and Background Picture Follow GNOME Night Light Mode User Guide: https://hollowmansblog.wordpress.com/2021/08/21/customize-ibus-user-guide/ 深度定制 IBus 的外观、行为、系统托盘以及输入指示 支持自定义: * 候选框方向 * 候选框动画 * 右键单击候选框以切换输入源或打开任务栏菜单 * 候选框上滚动以切换页面或候选词 * 固定候选框使其不跟随光标以及设定固定位置 * 候选框字体 * 输入模式根据应用记忆并自动切换 * 更改候选框透明度 * 固定输入法列表顺序 * 拖拽移动候选框 * 显示或隐藏候选框调页按钮 * 系统任务栏托盘显示和交互设置 * * 显示或隐藏托盘图标 * * 直接点击托盘图标切换输入源 * * 添加额外菜单 * 输入源指示器及其显示和交互设置 * * 启用指示器 * * 仅在切换输入法时指示 * * 仅在英文输入时指示 * * 使用单模式输入法时不指示 * * 右击指示器来将其隐藏 * * 指示器上滚动来切换输入源 * * 指示器显示动画 * * 自定义字体 * * 左击指示器以拖拽移动或者切换输入源 * * 更改透明度 * * 启用延时显示以及配置显示时延 * * 启用自动隐藏以及配置自动隐藏时延 * 皮肤样式主题(提供的或者从GNOME Shell主题中提取的样式表,参见扩展的帮助部分来获取更多指导) * 候选框背景图片及其显示样式 * 主题和背景图片跟随GNOME夜灯 使用指南:https://blog.csdn.net/qq_18572023/article/details/116331601

Extension Homepage
https://github.com/openSUSE/Customize-IBus

No comments.

Diff Against

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

Shexli (experimental) error 1 warning 7

Shexli found 8 issues that may need reviewer attention.

EGO-X-003 warning

extensions should not call run_dispose in extension code

Extension code should not call `run_dispose()`.

GObject.Object.run_dispose

  • extension.js:337
    this._virtualDevice.run_dispose()

EGO-A-004 warning

extension files should not contain excessive ungated console logging

File contains 7 ungated console.log/warn/error calls (threshold: 5).

No excessive logging

  • extension.js:1591
    console.log(e)
  • extension.js:1703
    console.log(_('IBus panel service connected!'))
  • extension.js:2311
                    console.log(
                        _('loading light user theme for IBus:') + this._stylesheet
                    )
  • extension.js:2322
                    console.log(
                        _('loading dark user theme for IBus:') +
                            this._stylesheetNight
                    )
  • extension.js:2329
    console.log(_('loading default theme for IBus'))
  • extension.js:2546
                        console.log(
                            _('loading background for IBus:') + this._bgPic
                        )
  • extension.js:2560
    console.log(_('remove custom background for IBus'))

EGO-P-006 warning

unnecessary build and translation artifacts should not be shipped

Compiled GSettings schemas should not be shipped for 45+ packages.

Don't include unnecessary files

  • schemas/gschemas.compiled
    schemas/gschemas.compiled

EGO-L-002 warning

objects created by extension should be destroyed in disable()

Objects assigned in `enable()` are missing matching `.destroy()` calls in `disable()` or its helper methods.

Destroy all objects

  • extension.js:1524
    this._dummyCursor = new Clutter.Actor({opacity: 0})
  • extension.js:1532
                this._inputIndicatorLabel = new St.Label({
                    style_class: 'candidate-popup-text',
                    visible: true,
                })

EGO-L-005 warning

owned object references should be released in disable()

Owned references that are cleaned up in `disable()` should also be released with `null` or `undefined`.

Destroy all objects

  • extension.js:3414
    IgnoreModes = []
  • extension.js:3447
    this._ext = new Extensions()
  • extension.js:1524
    this._dummyCursor = new Clutter.Actor({opacity: 0})
  • extension.js:1532
                this._inputIndicatorLabel = new St.Label({
                    style_class: 'candidate-popup-text',
                    visible: true,
                })

EGO-L-003 warning

signals connected by extension should be disconnected in disable()

Signals assigned in `enable()` are missing matching disconnect calls in `disable()` or its helper methods.

Disconnect all signals

  • extension.js:956
                    this._switcherPopup.connect('destroy', () => {
                        this._switcherPopup = null;
                    })
  • extension.js:2227
                            this._proxy.connect(
                                System.PROPERTY,
                                this._onProxyChanged.bind(this)
                            )
  • extension.js:2458
                            this._proxy.connect(
                                System.PROPERTY,
                                this._onProxyChanged.bind(this)
                            )

EGO-M-004 error

metadata shell-version must only include plausible stable releases and at most one development release

Field `shell-version` contains invalid values, more than one development release, or implausible future releases.

metadata.json must be well-formed

  • metadata.json
    shell-version=['48', '49', '50', '51']

EGO-C45-001 warning

45+ preferences should use fillPreferencesWindow instead of getPreferencesWidget

45+ preferences code should use `fillPreferencesWindow()` instead of `getPreferencesWidget()`.

Preferences

  • prefs.js:2158
        getPreferencesWidget() {
            return new CustomizeIBus(this.getSettings(), this.metadata, this.dir);
        }

All Versions

Previous Reviews on this Version

JustPerfection active