Skip to content

feat(linux): implement diagnostic report#15576

Open
ermshiperete wants to merge 3 commits intomasterfrom
feat/linux/7784_diagreport
Open

feat(linux): implement diagnostic report#15576
ermshiperete wants to merge 3 commits intomasterfrom
feat/linux/7784_diagreport

Conversation

@ermshiperete
Copy link
Contributor

@ermshiperete ermshiperete commented Feb 11, 2026

This change allows to collect data for a diagnostic report. This can be done either from the command line through the new km-diag-report tool, or in km-config from the new Support tab that allows to generate the report and then copy it to the clipboard or save as a file.

The diagnostic report contains installed browsers and their versions and installation methods as well as the default browser. It checks for browsers installed through apt (Ubuntu/Debian), snap, and flatpak.

The change also has an implementation for pacman (Arch Linux) and dnf/yum (Fedora), although these have not been tested.

Sample report

============================================================
Keyman for Linux Diagnostic Report (2026-02-26)
============================================================

--- Keyman Version ---
  Version: 19.0.202-alpha-local
  Tier: alpha
  Package version: (local)
  Installed package (dpkg): 19.0.204-1+noble1

--- IBus ---
  IBus version: 1.5.29-rc2 (Running)
  Preload engines: xkb:us::eng, xkb:de::deu, xkb:us::eng

--- Operating System ---
  OS: Ubuntu 24.04.4 LTS
  Codename: noble
  Kernel: 6.17.0-14-generic
  Architecture: x86_64

--- Display Server ---
  Session type: x11
  X11 display: :0

--- Desktop Environment ---
  Current desktop: ubuntu:GNOME
  Session desktop: ubuntu-xorg
  Desktop session: ubuntu-xorg

--- Input Method Configuration ---
  GTK_IM_MODULE: Not set
  QT_IM_MODULE: ibus
  XMODIFIERS: @im=ibus

--- Gnome Input Sources ---
  xkb: us
  xkb: de
  ibus: km:/home/user/.local/share/keyman/khmer_angkor/khmer_angkor.kmx
  ibus: bbc-Batk:/home/user/.local/share/keyman/batak/batak.kmx
  ibus: am:/home/user/.local/share/keyman/gff_amharic/gff_amharic.kmx
  ibus: dyo:/home/user/.local/share/keyman/kreative_superlatin/kreative_superlatin.kmx
  ibus: en:/home/user/.local/share/keyman/baseline/k_0108___rtl.kmx

--- Installed Keyman Keyboards ---
  User keyboards:
    - SIL Ethiopic Power-G (id: sil_ethiopic_power_g, version: 1.2.2)
    - EuroLatin (SIL) (id: sil_euro_latin, version: 2.0.1)
    - Korean KORDA Jamo (SIL) (id: sil_korda_jamo, version: 3.0.1)
    - Text Selection Tests Keyboard (id: text_selection_tests_keyboard, version: 1.0)
    - Lao Basic (id: basic_kbdlao, version: 1.1)
    - IPA (SIL) (id: sil_ipa, version: 1.8.6)
    - GFF Amharic (id: gff_amharic, version: 3.3)
    - Extra_English (id: extra_english, version: 1.0)
    - 0108 - rtl (id: baseline, version: 1.0)
    - German Basic (id: basic_kbdgr, version: 1.1)
    - None (id: test_kmx, version: None)
    - Vedic Sanskrit Devanagari Phonetic (ITRANS) (id: itrans_devanagari_sanskrit_vedic, version: 1.2.1)
    - Khmer Angkor (id: khmer_angkor, version: 2.2)
    - GFF Geʾez Manuscript Keyboard (id: gff_geez_emufi, version: 1.0.1)
    - US Basic (id: basic_kbdus, version: 1.2)
    - Myanmar3 (SIL) (id: sil_myanmar_my3, version: 1.7.3)
    - SENĆOŦEN (id: fv_sencoten, version: 9.2.3)
    - Kreative SuperLatin (id: kreative_superlatin, version: 1.1.1)
    - Batak (id: batak, version: 1.0.1)

--- Web Browsers ---
  APT packages:
    - firefox: 147.0.4~build1
    - chromium-browser: 1:85.0.4183.83-0ubuntu2.22.04.1
    - google-chrome-stable: 145.0.7632.109-1
  Snap packages:
    - chromium: 145.0.7632.109            (3369) 189MB -
  Default browser:
    /home/user/.local/share/applications/userapp-Firefox-3EVMT2.desktop (/usr/lib/firefox/firefox-bin)

============================================================
End of Diagnostic Report
============================================================

Fixes: #7784

User Testing

The tests should be run on these Linux versions:

  • GROUP_JAMMY_X11: Ubuntu 22.04 Jammy with Gnome Shell and X11
  • GROUP_JAMMY_WAYLAND: Ubuntu 22.04 Jammy with Gnome Shell and Wayland
  • GROUP_NOBLE: Ubuntu 24.04 Noble (or later version) with Gnome Shell and Wayland
  • GROUP_WASTA: Wasta with Cinnamon

Tests

  • TEST_CLI: run km-diag-report and verify the output
  • TEST_UI: run km-config, switch to "Support" tab, generate the report and verify the output. Also try "Copy to Clipboard" and "Save to File" buttons.

@github-project-automation github-project-automation bot moved this to Todo in Keyman Feb 11, 2026
@keymanapp-test-bot keymanapp-test-bot bot added the user-test-missing User tests have not yet been defined for the PR label Feb 11, 2026
@keymanapp-test-bot
Copy link

keymanapp-test-bot bot commented Feb 11, 2026

User Test Results

Test specification and instructions

  • ✅ GROUP_JAMMY_X11: Ubuntu 22.04 Jammy with Gnome Shell and X11

    2 tests PASSED
  • ✅ GROUP_JAMMY_WAYLAND: Ubuntu 22.04 Jammy with Gnome Shell and Wayland

    2 tests PASSED
  • ✅ GROUP_NOBLE: Ubuntu 24.04 Noble (or later version) with Gnome Shell and Wayland

    2 tests PASSED
  • ⬜ GROUP_WASTA: Wasta with Cinnamon

    • TEST_CLI (OPEN)
    • TEST_UI (OPEN)
Results Template
# Test Results

### GROUP_WASTA: Wasta with Cinnamon

* **TEST_CLI (OPEN):** notes
* **TEST_UI (OPEN):** notes

@ermshiperete ermshiperete force-pushed the feat/linux/7784_diagreport branch 3 times, most recently from 88beaac to 50961e4 Compare February 13, 2026 15:30
This change allows to collect data for a diagnostic report. This can be
done either from the command line through the new `km-diag-report` tool,
or in `km-config` from the new `Support` tab that allows to generate the
report and then copy it to the clipboard or save as a file.

The diagnostic report contains installed browsers and their versions and
installation methods as well as the default browser. It checks for
browsers installed through apt (Ubuntu/Debian), snap, and flatpak.

The change also has an implementation for pacman (Arch Linux) and
dnf/yum (Fedora), although these have not been tested.

Fixes: #7784
@ermshiperete ermshiperete force-pushed the feat/linux/7784_diagreport branch from 50961e4 to cb1de97 Compare February 13, 2026 16:29
@keyman-server keyman-server modified the milestones: A19S22, A19S23 Feb 13, 2026
@mcdurdin
Copy link
Member

@kingsuper195 will take a look on Arch Linux:

  • fetch feat/linux/7784_diagreport branch,
  • build with linux/keyman-config/build.sh
  • and then run the diag report with linux/keyman-config/km-diag-report. This will output a diagnostic report.
  • Check that the section about the installed web browsers is correct and complete.
  • As a bonus paste the report in a comment.

@kingsuper195
Copy link

kingsuper195 commented Feb 17, 2026

Arch Linux:

============================================================
Keyman Diagnostic Report
============================================================

--- Keyman Version ---
  Version: 19.0.202-alpha-local
  Tier: alpha
  Package version: 18.0.236

--- IBus ---
  IBus version: 1.5.33

--- Operating System ---
  OS: Arch Linux
  Kernel: 6.12.73-1-lts
  Architecture: x86_64

--- Display Server ---
  Session type: wayland
  Wayland display: wayland-0
  X11 display: :0

--- Desktop Environment ---
  Current desktop: GNOME
  Session desktop: gnome
  Desktop session: gnome

--- Input Method Configuration ---
  GTK_IM_MODULE: Not set
  QT_IM_MODULE: ibus
  XMODIFIERS: @im=ibus

--- Gnome Input Sources ---
  xkb: us

--- Installed Keyman Keyboards ---
No Keyman keyboards installed

--- Web Browsers ---
No Firefox, Chromium, or Chrome installations found
  Default browser:
    /usr/share/applications/org.gnome.Epiphany.desktop (epiphany)

============================================================
End of Diagnostic Report
============================================================

@keymanapp-test-bot keymanapp-test-bot bot added has-user-test user-test-required User tests have not been completed and removed user-test-missing User tests have not yet been defined for the PR labels Feb 25, 2026
@ermshiperete ermshiperete marked this pull request as ready for review February 25, 2026 11:07
@darcywong00
Copy link
Contributor

I ran GROUP_NOBLE with the Ubuntu Packaging build

GROUP_NOBLE

  • TEST_CLI: pass
============================================================
Keyman Diagnostic Report
============================================================

--- Keyman Version ---
  Version: 19.0.202-alpha
  Tier: alpha
  Package version: 19.0.202-1~PR-15576-6771.1+noble1
  Installed package (dpkg): 19.0.202-1~PR-15576-6771.1+noble1

--- IBus ---
  IBus version: 1.5.29-rc2
  Preload engines: xkb:us::eng

--- Operating System ---
  OS: Pop!_OS 24.04 LTS
  Codename: noble
  Kernel: 6.18.7-76061807-generic
  Architecture: x86_64

--- Display Server ---
  Session type: wayland
  Wayland display: wayland-1
  X11 display: :1

--- Desktop Environment ---
  Current desktop: COSMIC
  Session desktop: COSMIC

--- Input Method Configuration ---
  GTK_IM_MODULE: ibus
  QT_IM_MODULE: ibus
  XMODIFIERS: @im=ibus

--- Installed Keyman Keyboards ---
  User keyboards:
    - IPA (SIL) (id: sil_ipa, version: 1.8.6)
    - Arabic Phonetic (SIL) (id: sil_arabic_phonetic, version: 1.1)

--- Web Browsers ---
  APT packages:
    - firefox: 1:148.0~1771957609~24.04~92b7f0e
    - google-chrome-stable: 145.0.7632.116-1
  Default browser:
    /usr/share/applications/google-chrome.desktop (/usr/bin/google-chrome-stable)

============================================================
End of Diagnostic Report
============================================================
  • TEST_UI: pass
    Was able to "Generate Report"

Copy to Clipboard

============================================================
Keyman Diagnostic Report
============================================================

--- Keyman Version ---
  Version: 19.0.202-alpha
  Tier: alpha
  Package version: 19.0.202-1~PR-15576-6771.1+noble1
  Installed package (dpkg): 19.0.202-1~PR-15576-6771.1+noble1

--- IBus ---
  IBus version: 1.5.29-rc2
  Preload engines: xkb:us::eng

--- Operating System ---
  OS: Pop!_OS 24.04 LTS
  Codename: noble
  Kernel: 6.18.7-76061807-generic
  Architecture: x86_64

--- Display Server ---
  Session type: wayland
  Wayland display: wayland-1
  X11 display: :1

--- Desktop Environment ---
  Current desktop: COSMIC
  Session desktop: COSMIC

--- Input Method Configuration ---
  GTK_IM_MODULE: ibus
  QT_IM_MODULE: ibus
  XMODIFIERS: @im=ibus

--- Installed Keyman Keyboards ---
  User keyboards:
    - IPA (SIL) (id: sil_ipa, version: 1.8.6)
    - Arabic Phonetic (SIL) (id: sil_arabic_phonetic, version: 1.1)

--- Web Browsers ---
  APT packages:
    - firefox: 1:148.0~1771957609~24.04~92b7f0e
    - google-chrome-stable: 145.0.7632.116-1
  Default browser:
    /usr/share/applications/google-chrome.desktop (/usr/bin/google-chrome-stable)

============================================================
End of Diagnostic Report
============================================================

Save
keyman-diagnostic-report.txt
to File diagnostic report

Copy link
Contributor

@darcywong00 darcywong00 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looking good. a couple of questions

@Meng-Heng Meng-Heng self-assigned this Feb 26, 2026
@Meng-Heng
Copy link
Contributor

Test Results

GROUP_JAMMY_X11: Ubuntu 22.04 Jammy with Gnome Shell and X11

  • TEST_CLI (PASSED):
  1. Open Terminal
  2. Run km-diag-report
  3. Result:
    ============================================================
    Keyman Diagnostic Report
    ============================================================
    
    --- Keyman Version ---
      Version: 19.0.202-alpha
      Tier: alpha
      Package version: 19.0.202-1~PR-15576-6771.1+jammy1
      Installed package (dpkg): 19.0.202-1~PR-15576-6771.1+jammy1
    
    --- IBus ---
      IBus version: 1.5.26
    
    --- Operating System ---
      OS: Ubuntu 22.04.5 LTS
      Codename: jammy
      Kernel: 6.8.0-101-generic
      Architecture: x86_64
    
    --- Display Server ---
      Session type: x11
      X11 display: :0
    
    --- Desktop Environment ---
      Current desktop: ubuntu:GNOME
      Session desktop: ubuntu-xorg
      Desktop session: ubuntu-xorg
    
    --- Input Method Configuration ---
      GTK_IM_MODULE: ibus
      QT_IM_MODULE: ibus
      XMODIFIERS: @im=ibus
    
    --- Gnome Input Sources ---
      xkb: us
      ibus: km:/home/vboxuser/.local/share/keyman/basic_kbdkhmr/basic_kbdkhmr.kmx
    
    --- Installed Keyman Keyboards ---
      User keyboards:
        - Khmer Basic (id: basic_kbdkhmr, version: 1.2.2)
    
    --- Web Browsers ---
      APT packages:
        - firefox: 1:1snap1-0ubuntu2
      Snap packages:
        - firefox: 130.0-2                 (4848) 284MB -
      Default browser:
        /usr/share/applications/firefox.desktop (firefox)
    
    ============================================================
    End of Diagnostic Report
    ============================================================
    
  • TEST_UI (PASSED):
  1. Open Terminal
  2. Run km-config
  3. Go to Support tab
  4. Result:

GROUP_JAMMY_WAYLAND: Ubuntu 22.04 Jammy with Gnome Shell and Wayland

  • TEST_CLI (PASSED):
  1. Open Terminal
  2. Run km-diag-report
  3. Result:
    ============================================================
    Keyman Diagnostic Report
    ============================================================
    
    --- Keyman Version ---
      Version: 19.0.202-alpha
      Tier: alpha
      Package version: 19.0.202-1~PR-15576-6771.1+jammy1
      Installed package (dpkg): 19.0.202-1~PR-15576-6771.1+jammy1
    
    --- IBus ---
      IBus version: 1.5.26
    
    --- Operating System ---
      OS: Ubuntu 22.04.5 LTS
      Codename: jammy
      Kernel: 6.8.0-101-generic
      Architecture: x86_64
    
    --- Display Server ---
      Session type: wayland
      Wayland display: wayland-0
      X11 display: :0
    
    --- Desktop Environment ---
      Current desktop: ubuntu:GNOME
      Session desktop: ubuntu
      Desktop session: ubuntu
    
    --- Input Method Configuration ---
      GTK_IM_MODULE: Not set
      QT_IM_MODULE: ibus
      XMODIFIERS: @im=ibus
    
    --- Gnome Input Sources ---
      xkb: us
      ibus: km:/home/vboxuser/.local/share/keyman/basic_kbdkhmr/basic_kbdkhmr.kmx
    
    --- Installed Keyman Keyboards ---
      User keyboards:
        - Khmer Basic (id: basic_kbdkhmr, version: 1.2.2)
    
    --- Web Browsers ---
      APT packages:
        - firefox: 1:1snap1-0ubuntu2
      Snap packages:
        - firefox: 130.0-2                 (4848) 284MB -
      Default browser:
        /usr/share/applications/firefox.desktop (firefox)
    
    ============================================================
    End of Diagnostic Report
    ============================================================
    
  • TEST_UI (PASSED):
  1. Open Terminal
  2. Run km-config
  3. Go to Support tab
  4. Result:

@Meng-Heng Meng-Heng removed their assignment Feb 26, 2026
- add date to header and filename
- add state of ibus
- add privacy statement and link to privacy policy
@ermshiperete ermshiperete force-pushed the feat/linux/7784_diagreport branch from ef6fefd to 76866b2 Compare February 26, 2026 16:05
Copy link
Contributor

@darcywong00 darcywong00 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@keyman-server keyman-server modified the milestones: A19S23, A19S24 Feb 27, 2026
@Meng-Heng Meng-Heng self-assigned this Mar 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

feat(linux): Add option to collect diagnostic information

6 participants