Name: fcitx5-ngosen # Ngó Sen numbers its own releases from 0.5.0; the epoch keeps them above the 3.5.10 builds. Epoch: 1 Version: 1.7.4 Release: 1%{?dist} Summary: Ngó Sen, a Vietnamese input method for fcitx5 License: GPL-3.0-or-later AND OFL-1.1 URL: https://github.com/ngosen/ngosen Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz BuildRequires: cmake BuildRequires: extra-cmake-modules BuildRequires: gcc-c++ BuildRequires: gettext-devel BuildRequires: cmake(Fcitx5Core) BuildRequires: cargo BuildRequires: rust >= 1.88 BuildRequires: python3-devel BuildRequires: librsvg2-tools Requires: fcitx5 # The settings window runs on Qt or on libadwaita. Gtk 4 needs the cairo # typelib, which Fedora ships in gobject-introspection. Requires: ((python3-QtPy and (python3-pyqt6 or python3-pyside6)) or (python3-gobject and gobject-introspection and libadwaita >= 1.5)) Requires: python3-dbus # Loaded with dlopen at runtime, so the automatic soname requires miss it. Requires: libxcb Requires(posttrans): shadow-utils %description Ngó Sen is a Vietnamese input method for fcitx5. %prep %setup -q -n %{name}-%{version} %build %cmake -DNGOSEN_BYTECOMPILE_PYTHON:BOOL=OFF -DBUILD_TESTING:BOOL=ON %cmake_build %install %cmake_install %find_lang %{name} %py_byte_compile %{__python3} %{buildroot}%{_datadir}/fcitx5-ngosen %check %ctest %files -f %{name}.lang %{_datadir}/licenses/%{name}/GPL-3.0-or-later.txt %{_datadir}/licenses/%{name}/LGPL-2.1-or-later.txt %{_datadir}/licenses/%{name}/OFL-1.1.txt %dir %{_datadir}/licenses/%{name} %{_bindir}/fcitx5-ngosen-settings %{_bindir}/ngosen-save-log %{_libdir}/fcitx5/libngosen.so %{_libdir}/fcitx5/libngosenmigrate.so %{_datadir}/fcitx5/addon/ngosen.conf %{_datadir}/fcitx5/addon/ngosenmigrate.conf %{_datadir}/fcitx5/default/vi_VN %{_datadir}/fcitx5/inputmethod/ngosen.conf %{_datadir}/fcitx5/ngosen/ %{_datadir}/fcitx5-ngosen/ %{_datadir}/applications/io.github.ngosen.NgoSen.Settings.desktop %{_datadir}/metainfo/io.github.ngosen.NgoSen.metainfo.xml %{_datadir}/gnome-shell/extensions/forward-keys@ngosen.github.io/ %{_datadir}/icons/hicolor/scalable/apps/*fcitx-ngosen*.svg %{_datadir}/icons/hicolor/scalable/apps/io.github.ngosen.NgoSen.Settings.svg %{_datadir}/icons/hicolor/scalable/status/fcitx-ngosen*.svg %{_datadir}/icons/hicolor/*/status/fcitx-ngosen*.png %dir %{_datadir}/icons/breeze %dir %{_datadir}/icons/breeze/status %dir %{_datadir}/icons/breeze/status/22 %dir %{_datadir}/icons/breeze/status/24 %{_datadir}/icons/breeze/status/*/fcitx-ngosen*.svg %dir %{_datadir}/icons/breeze-dark %dir %{_datadir}/icons/breeze-dark/status %dir %{_datadir}/icons/breeze-dark/status/22 %dir %{_datadir}/icons/breeze-dark/status/24 %{_datadir}/icons/breeze-dark/status/*/fcitx-ngosen*.svg %posttrans # install.sh says what to do next itself. [ -n "${NGOSEN_INSTALLER:-}" ] && exit 0 echo "--- Cấu hình Ngó Sen ---" # posttrans cannot tell an install from an upgrade. KWin starts fcitx5 itself on KDE Wayland, and # one started with fcitx5 -rd cannot serve Qt apps. if pgrep -x kwin_wayland >/dev/null 2>&1; then echo "Mở 'Fcitx5 Configuration' và thêm bộ gõ Ngó Sen, hoặc đăng xuất rồi đăng nhập lại nếu vừa cập nhật." echo "KDE Wayland: chọn 'Fcitx 5' trong System Settings → Virtual Keyboard." else echo "Mở 'Fcitx5 Configuration' và thêm bộ gõ Ngó Sen, hoặc khởi động lại fcitx5 nếu vừa cập nhật: fcitx5 -rd" fi %changelog * Sat Oct 31 2026 Nguyen Phi - 1:1.7.4-1 - Send a held Enter in Preedit on GNOME when the key is released (#465), commit the underlined word when a click in an XIM app comes without a reset (#466), and delete through the text in apps GNOME Shell 50.0-50.3 relays when the forward-keys extension is not running (#467). * Fri Oct 30 2026 Nguyen Phi - 1:1.7.3-1 - Recognise Firefox (including the snap), Chrome and LibreOffice by name when they connect through the IBus GTK module on X11, and share the X11 click watcher with the IBus edition (#458). * Fri Oct 30 2026 Nguyen Phi - 1:1.7.2-1 - Fix Sen forgetting the word being typed in VS Code on GNOME when VS Code reports the cursor moving to the start of the line and back to the end of the unchanged word (#453). - Fix Sen producing "tiêsng" for "tieesng" in Qt apps on GNOME in the IBus edition, which shares the typing core with the fcitx5 edition. This fix only changes IBus behaviour (#452). * Fri Oct 30 2026 Nguyen Phi - 1:1.7.1-1 - On GNOME, Sen uses surrounding text when the app reports the current word correctly, avoiding delayed Backspace keys that corrupt text. If the app ignores deletion, it repairs leftover text with Backspace and uses Backspace for the rest of the session; if no deletion method remains, it passes keystrokes through without conversion. KDE and other Wayland desktops are unchanged (#443, #446). - Remove pauses after each deletion and commit in apps that delete through surrounding text, including LibreOffice and GTK4 text fields (#438). - Fix Sen corrupting words when apps report surrounding text later than keystrokes, including LibreOffice and GTK4 text fields (#441). - System checks warn when GNOME 50.0–50.3 runs without the forward-keys fix, which prevents lost Enter keys after Preedit text and lost Sen Backspace keys, and provide a command to enable it. Error reports include the GNOME Shell version and fix status (#440). - System checks no longer warn about IBus running alongside fcitx5 when it only serves other programs, such as IBus started by xpra; warn only when IBus competes for the current session's input method (#442). - Keep each event in saved typing logs on one line, including Enter keys and app-reported text containing line breaks (#445). - On GNOME with older fcitx5 versions (Ubuntu 26.04, Debian), typing modes selected from the comma menu or mode-switch key apply to all apps until logout and are no longer saved permanently. The next login restores the default from settings, and old saved rules that overrode it are ignored (#444). * Thu Oct 29 2026 Nguyen Phi - 1:1.7.0-1 - Settings window: a GTK edition that looks like a GNOME app, opened by default on GNOME and Cinnamon (#386, #396), with buttons to switch between Qt and GTK (#393, #407, #422). - Settings window: a "What's new & tips" page, announced once after updating to a release with new features (#331, #409, #433). - Ngó Sen for GNOME (IBus): packages for openSUSE Tumbleweed (#389); install.sh --ibus sets it up on Xfce, Cinnamon and MATE (#341). - Typing core: the underline mode reopens a word on Backspace (#344); Sen works in apps that take no forwarded keys (#353). - WPS Office on deepin over D-Bus no longer leaves old letters behind (#430); deepin-editor defaults to the underline mode (#421). - KDE Wayland: per-app modes keep working after an update without logging in again (#428). - install.sh: explains what changes on GNOME before asking (#400, #410), asks [y/N] (#398), installs the GTK settings libraries on GNOME and Cinnamon (#387), leaves installed Qt packages alone (#418), skips reinstalling when up to date (#426), switches to the IBus edition cleanly (#420, #425) and uninstalls with im-config 1.1 (#424). - No packages for Ubuntu 22.04 any more; 1.6.4 is the last one (#332). * Wed Oct 28 2026 Nguyen Phi - 1:1.6.4-1 - Antigravity on GNOME: tone marks and letters are no longer lost when typing fast; behind GNOME's IBus bridge Sen waits up to 100 ms for a deletion (#362, #395). - Cứu dấu changes the tone of a selected word in Chrome, Chromium and Brave on X11 (#360, #390). - Preedit: Super + letter shortcuts reach the desktop instead of being typed (#391, #392). - Settings window: opens with a user dictionary that is not UTF-8 (#376); undo gives back only the change just saved (#383). - install.sh: installs the GTK and Qt modules on a Vietnamese desktop (#388), goes on past a broken apt source (#399), and installs on deepin 23 and 25 (#397), LMDE, Devuan, Parrot and Artix (#403). - install.sh: pulls whiptail with im-config, which im-config 1.1 on deepin and Kali needs (#408). - The .deb accepts python3-pyqt6 without python3-qtpy (#397). * Tue Oct 27 2026 Nguyen Phi - 1:1.6.3-1 - Antigravity on GNOME: words in the editor no longer stay as typed (vieetj), and the chat box no longer loses or garbles letters when typing fast (#362, #365). - Cứu dấu also works after backspacing to the end of an earlier word and after a click inside a word (#358, #370). * Tue Oct 27 2026 Nguyen Phi - 1:1.6.2-1 - Cứu dấu after a click: click right after a typed word and type a tone key to change its tone, Sen typing only (#118, #327). - install.sh --ibus installs Ngó Sen for GNOME, the IBus edition (#330, #334). - The APT and pacman repositories also carry ibus-ngosen (#333). - install.sh --uninstall turns off only what the installer turned on (#328). - The Cứu dấu hint in the settings window says it changes only the tone mark (#329). * Mon Oct 26 2026 Nguyen Phi - 1:1.6.1-1 - Cứu chữ and Cứu dấu hints follow the interface language, Vietnamese by default (#322). - On a Vietnamese desktop, fcitx5's first profile lists Ngó Sen (#300, #316). - Debug logging no longer records text typed in password fields (#321). * Mon Oct 26 2026 Nguyen Phi - 1:1.6.0-1 - Cứu chữ: words typed before switching to Vietnamese are retyped with tones (#71, #80, #82, #83). - Cứu dấu: select a word and type a tone key to change its tone (#272, #290). - A toggle key of its own for English and Vietnamese; new installs use Ctrl+Shift (#234, #242, #244). - Lock-word key, tray menu items for input method and capitalization, menu item settings (#219, #240, #274, #275). - Settings window: Vietnamese by default, separate Appearance and About pages, hints under options (#276, #277, #281). - install.sh reloads fcitx5 after an update; the Go core is gone and bamboo-core is 0.5.2 (#223, #230, #298). * Mon Oct 26 2026 Nguyen Phi - 1:1.5.8-1 - Settings window: changes are saved again; 1.5.7 could not save any setting (#303, #305). - README states how to finish setup after installing the package from a repository (#301). * Sat Oct 24 2026 Nguyen Phi - 1:1.5.7-1 - Settings window on KDE Plasma Wayland: it opens again when PyQt5 is also installed, by preferring Qt 6 (#278). - Settings changed while the window was open across an fcitx5 restart are saved again (#279). - The .deb packages depend on PyQt6 itself instead of the whole PyQt6 set, about 22 MB instead of 456 MB on a clean Ubuntu 26.04 (#280). - Sen mode in Firefox rich text editors: after deleting a space, a tone key reopens the last word, so toan, space, Backspace, s gives toán (#285). - Preedit mode on gemini.google.com: one Enter sends the message (#286). - Sen mode on Firefox X11: keys typed quickly after a toned word stay in order (#289). - Sen mode in xterm.js terminals on Firefox X11: the last word is reopened after Backspace (#292). * Fri Oct 23 2026 Nguyen Phi - 1:1.5.6-1 - Sen mode on X11: Google Sheets in Chromium-based browsers no longer jumps or loses letters (#258, #261). - Sen mode in GLFW apps under XWayland, such as Minecraft Java: after one Backspace, adding a tone no longer deletes the earlier text (#247). - KDE Plasma Wayland: the installer now sets XMODIFIERS, so X11 apps under XWayland such as xterm type Vietnamese (#251). - The About page warns when fcitx5 still runs the Ngó Sen from before an update (#212). - The typing log saved from the tray keeps about three times as much typing by skipping repeated reports (#213). - Settings window: About text matches the README (#249), the Typing page fits large system fonts (#250), thin scrollbars on GNOME without a Qt theme (#252), and light/dark follows GNOME with Qt 6.8+ (#253). * Tue Oct 20 2026 Nguyen Phi - 1:1.5.5-1 - Recognise Flatpak apps by their usual program name, so Firefox from Flatpak no longer mixes up words while autofilling an address (#200, #204). - Macros with an uppercase abbreviation such as VN now expand (#194). - Sen mode: backspacing into the last word no longer rebuilds macro text that ends in a quote or ellipsis, or a word in a legacy charset; found by a test (#199). - Typing the next letter of an address Firefox is autofilling is no longer taken for a click, so gox gives gõ and daaus gives dấu (#209). * Tue Oct 20 2026 Nguyen Phi - 1:1.5.4-3 - Rework the issue forms and add discussion forms (#190). * Tue Oct 20 2026 Nguyen Phi - 1:1.5.4-2 - Rewrite the bug report form (#188). * Tue Oct 20 2026 Nguyen Phi - 1:1.5.4-1 - Sen mode: wait for pages that redraw the box after each edit, so Chrome on GNOME no longer drops letters in Draft.js boxes such as TikTok comments (#176, #180). - Macros whose text starts with the abbreviation keep the space after them (#179). * Tue Oct 20 2026 Nguyen Phi - 1:1.5.3-2 - Fedora COPR: build from the release tag again (#169). * Mon Oct 19 2026 Nguyen Phi - 1:1.5.3-1 - Sen mode: backspacing into the word before a space and typing on fixes that word (#142). - Sen mode: fixing a word mid-way in gnome-text-editor no longer loses a letter (#149). - Typing log: record keys under the right app after switching windows (#143). - Settings: the Defaults button lights up as soon as there is something to reset (#132). - Signed package repositories for Fedora (COPR), Debian/Ubuntu, Arch and openSUSE (#133-#140). * Sun Oct 18 2026 Nguyen Phi - 1:1.5.2-1 - Keep the mode key buttons on the Shortcuts page inside the list when the window is resized (#128). * Sun Oct 18 2026 Nguyen Phi - 1:1.5.1-1 - Same as 1.5.0, which was not released, plus the capitalize-after-Enter fix (#117). * Sun Oct 18 2026 Nguyen Phi - 1:1.5.0-1 - Add a check of the machine's fcitx5 setup to the settings window; the Rust core in every package but Debian 12. * Sat Oct 17 2026 Nguyen Phi - 1:1.4.3-1 - Turning Custom Dictionary off brings back the built-in one on fcitx5 older than 5.1.13. * Fri Oct 16 2026 Nguyen Phi - 1:1.4.2-1 - Fix lost letters with Sen mode on Sway and in empty Wayland fields; add arm64 packages and Kali install. * Wed Oct 14 2026 Nguyen Phi - 1:1.4.1-1 - The installer makes fcitx5 the KDE input method on Plasma Wayland; CI runs the installer. * Wed Oct 14 2026 Nguyen Phi - 1:1.4.0-1 - One-line installer sets up fcitx5 on GNOME and X11 desktops and can uninstall; hidden experiment options. * Tue Oct 13 2026 Nguyen Phi - 1:1.3.0-1 - Backspace can remove only the tone mark; new V icon; tray icon fixes on dark panels. * Sun Oct 11 2026 Nguyen Phi - 1:1.2.2-1 - Shows vi instead of a lotus next to the cursor; typing into Edge's address bar suggestion keeps tone marks. * Sun Oct 11 2026 Nguyen Phi - 1:1.2.1-1 - The settings window drops the Applications page; modes picked from the mode menu are still remembered per app. * Sun Oct 11 2026 Nguyen Phi - 1:1.2.0-1 - New settings window that follows the desktop look and saves at once; letters no longer swap when typing fast in GTK3 apps. * Sat Oct 10 2026 Nguyen Phi - 1:1.1.0-1 - Installs under ngosen names and carries settings over; new tray icon; a typing log for bug reports. * Fri Oct 09 2026 Nguyen Phi - 1:1.0.0-1 - Fixes for Calc, WPS Office and Google Sheets when clicking another cell; fcitx5 only from now on. * Fri Oct 09 2026 Nguyen Phi - 1:0.5.1-1 - Sen mode types on Sway and Hyprland; a fresh install starts in Sen mode. * Thu Oct 08 2026 Nguyen Phi - 1:0.5.0-1 - Ngó Sen's own version numbers; the typing core is now the Rust port. * Sun Oct 04 2026 Nguyen Phi - 3.5.10-4 - First build published on the GitHub Releases page. * Sat Oct 03 2026 Nguyen Phi - 3.5.10-3 - Take the service user out of group input on upgrade and apply the pointer ACLs to plugged-in devices. - The server ignores key counts out of range, opens pointer devices only, and caps its backspace queue. - The server no longer drops a client that connects as the previous one hangs up. - The server and the addon identify each other by uid; CAP_SYS_PTRACE is dropped. - udev no longer gives group input access to /dev/uinput and input devices. - The About page links to this repository and no longer opens upstream's bug tracker. * Sat Oct 03 2026 Nguyen Phi - 3.5.10-2 - Rename the package to fcitx5-ngosen; it replaces fcitx5-lotus builds of this fork. * Sat Sep 19 2026 Nguyen Hoang Ky - 3.5.10-1 - Added desktop notifications when switching typing modes via the mode menu. - Fixed typing and key event handling for GTK4 applications on Wayland. - Fixed focus loss issues in Chromium on X11 when using uinput modes. - Fixed tray icon coloring to match KDE Plasma panel themes dynamically. - Improved icon rendering by prioritizing scalable vector assets over raster images. - Preserved per-app typing mode rules across configuration reloads and input context switches. - Fixed input engine crashes when initialized without an external dictionary loaded. - Fixed input lag caused by unhandled mouse/touchpad input events.