Telegram Interface Scale Is Only 200% To 300% - It's Too Big!

For the past few months Telegram won’t scale below 200%.
It is too large and nearly unusable.
It relates to Telegram, QT and DPI I think.

Telegram version:
3.5.2-1 official repo (community)

qtdiag output:

Qt 5.15.3 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 11.2.0) on "xcb" 
OS: Manjaro Linux [linux version 5.10.105-1-MANJARO]

This is the issue posted on github (not my post).
https://github.com/telegramdesktop/tdesktop/issues/17518

In that github thread the advice given is:

Yeah, now Telegram uses Qt 6 and the scaling works in another way. If you want to choose scaling less than 200%, you should remove QT_AUTO_SCREEN_SCALE_FACTOR=1 and set QT_ENABLE_HIGHDPI_SCALING=0 in order to disable Qt scaling

I don’t know how or where to change those QT settings mentioned above.
How do I make those changes and fix this issue?
Thanks!

My inxi output below:

System:
  Kernel: 5.10.105-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 11.2.0
    parameters: BOOT_IMAGE=/boot/vmlinuz-5.10-x86_64
    root=UUID=e9b1a713-9d2b-44ea-90a2-89f6a020c1ea rw
    resume=UUID=c34ac68c-a7f7-4949-8b22-9e1f8919cf78
  Desktop: Xfce v: 4.16.0 tk: Gtk v: 3.24.29 info: xfce4-panel wm: xfwm
    v: 4.16.1 vt: 7 dm: LightDM v: 1.30.0 Distro: Manjaro Linux base: Arch Linux
Machine:
  Type: Desktop Mobo: ASRock model: H97 Performance
    serial: <superuser required> UEFI-[Legacy]: American Megatrends v: P2.60
    date: 03/07/2018
Battery:
  Message: No system battery data found. Is one present?
Memory:
  RAM: total: 7.72 GiB used: 3 GiB (38.8%)
  RAM Report:
    permissions: Unable to run dmidecode. Root privileges required.
CPU:
  Info: model: Intel Core i5-4690 bits: 64 type: MCP arch: Haswell family: 6
    model-id: 0x3C (60) stepping: 3 microcode: 0x28
  Topology: cpus: 1x cores: 4 smt: <unsupported> cache: L1: 256 KiB
    desc: d-4x32 KiB; i-4x32 KiB L2: 1024 KiB desc: 4x256 KiB L3: 6 MiB
    desc: 1x6 MiB
  Speed (MHz): avg: 2531 high: 3882 min/max: 800/3900 scaling:
    driver: intel_cpufreq governor: schedutil cores: 1: 942 2: 3211 3: 2091
    4: 3882 bogomips: 28012
  Flags: abm acpi aes aperfmperf apic arat arch_perfmon avx avx2 bmi1 bmi2
    bts clflush cmov constant_tsc cpuid cpuid_fault cx16 cx8 de ds_cpl dtes64
    dtherm dts erms est f16c flush_l1d fma fpu fsgsbase fxsr ht ibpb ibrs ida
    invpcid invpcid_single lahf_lm lm mca mce md_clear mmx monitor movbe msr
    mtrr nonstop_tsc nopl nx pae pat pbe pcid pclmulqdq pdcm pdpe1gb pebs pge
    pln pni popcnt pse pse36 pti pts rdrand rdtscp rep_good sdbg sep smep smx
    ss ssbd sse sse2 sse4_1 sse4_2 ssse3 stibp syscall tm tm2 tsc tsc_adjust
    tsc_deadline_timer vme x2apic xsave xsaveopt xtopology xtpr
  Vulnerabilities:
  Type: itlb_multihit status: KVM: VMX unsupported
  Type: l1tf mitigation: PTE Inversion
  Type: mds mitigation: Clear CPU buffers; SMT disabled
  Type: meltdown mitigation: PTI
  Type: spec_store_bypass
    mitigation: Speculative Store Bypass disabled via prctl and seccomp
  Type: spectre_v1
    mitigation: usercopy/swapgs barriers and __user pointer sanitization
  Type: spectre_v2 mitigation: Retpolines, IBPB: conditional, IBRS_FW,
    STIBP: disabled, RSB filling
  Type: srbds mitigation: Microcode
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: NVIDIA GM107 [GeForce GTX 750 Ti] vendor: ASUSTeK driver: nvidia
    v: 510.54 alternate: nouveau,nvidia_drm pcie: gen: 2 speed: 5 GT/s lanes: 16
    bus-ID: 01:00.0 chip-ID: 10de:1380 class-ID: 0300
  Display: x11 server: X.Org v: 1.21.1.3 compositor: xfwm v: 4.16.1 driver:
    X: loaded: nvidia gpu: nvidia display-ID: :0.0 screens: 1
  Screen-1: 0 s-res: 5760x1440 s-dpi: 96 s-size: 1524x381mm (60.00x15.00")
    s-diag: 1571mm (61.85")
  Monitor-1: DVI-D-0 pos: primary,top-left res: 2560x1440 hz: 60 dpi: 109
    size: 597x336mm (23.5x13.23") diag: 685mm (26.97") modes: N/A
  Monitor-2: DVI-D-1 pos: bottom-c res: 1280x1024 hz: 75 dpi: 96
    size: 340x270mm (13.39x10.63") diag: 434mm (17.09") modes: N/A
  Monitor-3: HDMI-0 pos: middle-r res: 1920x1080 hz: 60 dpi: 305
    size: 160x90mm (6.3x3.54") diag: 184mm (7.23") modes: N/A
  Message: Unable to show GL data. Required tool glxinfo missing.
Info:
  Processes: 215 Uptime: 30m wakeups: 0 Init: systemd v: 250 tool: systemctl
  Compilers: gcc: 11.2.0 clang: 13.0.1 Packages: pacman: 1791 lib: 495
  Shell: Bash v: 5.1.16 running-in: xfce4-terminal inxi: 3.3.15

This is an environment variable. If you want to define it for all QT-based applications, try setting it in the ~/.profile file.
See the Arch Wiki for more information:
https://wiki.archlinux.org/title/Environment_variables

If you want to set it only for Telegram, you can create a .desktop file for the application in the ~/.local/share/applications directory and edit the Exec entry of the .desktop file.

Exec=env QT_ENABLE_HIGHDPI_SCALING=0 telegram

The Arch Wiki has an example:
https://wiki.archlinux.org/title/Desktop_entries#Modify_environment_variables

https://wiki.archlinux.org/title/Telegram#HiDPI_scaling

1 Like

Thanks for the replies bill_t & ishaanbhimwal.
I wanted to set it only for Telegram.

I created a .desktop file for the application in the ~/.local/share/applications directory by using the command from the Arch Wiki linked by ishaanbhimwal.

cp /usr/share/applications/telegramdesktop.desktop $HOME/.local/share/applications/telegramdesktop-no-scaling.desktop

When I opened that in Geany it showed

Exec=telegram-desktop -- %u

I edited that as per bill_t’s instructions to

Exec=env QT_ENABLE_HIGHDPI_SCALING=0 telegram-desktop -- %u

and…SUCCESS :heart_eyes: :star_struck: :100:
Thank you both for your help!

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.