• Stars
    star
    136
  • Rank 267,670 (Top 6 %)
  • Language
    C++
  • License
    MIT License
  • Created over 6 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Qt app that automates fractional scaling configuration on X11 desktops

HiDPI Fixer

Build Status (Travis CI) Build Status (GitHub Actions) Github All Releases

This application allows you to create a script that acomplishes the following tasks:

  • Allow fractional scaling of your display and its components in X11
  • The end result looks nicer and is way less buggy than using Wayland
  • The generated script is configured to run everytime you log in
  • You can also instruct the application to modify the ~/.profile file to correctly scale Qt-based apps (as KDE does)
  • Tested on GNOME, Deepin Desktop and KDE (you need to manualy set the scaling factor to 200% in Deepin and KDE)

Screenshot

Screenshot of HiDPI-Fixer running under Manjaro Deepin

Installing/running

You can download the latest release as an AppImage, no installation required! After your download finishes, open a terminal and type the following commands:

cd Downloads                    # Go to directory where you have downloaded/saved HiDPI-Fixer
chmod +x HiDPI_Fixer*.AppImage  # Make HiDPI-Fixer.AppImage executable
./HiDPI_Fixer*.AppImage         # Run HiDPI-Fixer

Uninstalling

To remove all the scripts and startup launchers generated by HiDPI Fixer, open a terminal and type the following:

cd Downloads                         # Or the location in which you have saved HiDPI-Fixer AppImage
./HiDPI_Fixer*.AppImage --uninstall  # Run uninstall command (if you are lazy, just type -u)

This command will do the following:

  • Remove the ~/.hidpi-fixer directory and all its contents
  • Remove all the startup applications with the name pattern as HiDPI-Fixer_*.desktop in the ~/.config/autostart directory.

All directories and files that HiDPI Fixer removes will be listed in the terminal output.

How does it work?

This application uses a combination of GNOME's scaling-factor setting and xrandr commands. Basically, the application calculates the necessary resolution to obtain the desired scaling factor and registers a new resolution with xrandr. These commands are saved into a *.sh file for every display that you have and are configured to run at startup.

HiDPI-Fixer also works with DEs other than GNOME, however, you will need to manually set the scaling factor to 200% in the control center application of your desktop environment.

TODOs/Ideas

  • Allow users to choose between creating a custom resolution or using xrandr --scale, to avoid BAT MATCH errors
  • Integrate run_scaled to HiDPI-Fixer, by creating custom *.desktop files in ./local/share/applications to fix apps that refuse to do any scaling at all.
  • Instead of generating a startup script, allow users to apply the changes system wide.

Contributions and less-ugly fixes are welcome :octocat:

Tips

  • Some applications such as WPS Office ignore completely the system's DPI setting (and thus cannot do any scaling at all). Given that HiDPI-Fixer creates a very large resolution, it may be almost impossible to use these fixed-DPI applications. If you rely on those applications, you can run them with run_scaled, resulting in an usable, albeit blurry per-application experience. But at least your desktop and HiDPI-friendly apps will look decent πŸ‘.
  • In some cases, xrandr will not let you to use resolutions larger than your screen's native resolution, which results in the rather-cryptic BAD MATCH error. If you have any idea how to fix this, please contact me or make a PR.

License

This project is released under the MIT license, for more info, click here.

More Repositories

1

QSimpleUpdater

Updater system for Qt applications
C++
915
star
2

QJoysticks

Joystick input library for Qt
C
93
star
3

QtApp-Template

Template for Qt/QML apps with nice GitHub stuff
C++
74
star
4

qMDNS

Implementation of a simple mDNS responder with Qt
C++
24
star
5

HP-Spectre-4101dx-Hackintosh

Installation guide & resources to run macOS on the HP Spectre x360 13-4101dx
ASL
21
star
6

QAppKiller

Small library to kill functionality of applications for clients that refuse to pay me
C++
19
star
7

QCCTV

Software to create a CCTV with smart phones
C++
16
star
8

Thunderpad

A simple, powerful and cross-platform text editor
C++
14
star
9

Qt-QrCodeGenerator

A simple Qt library that generates QR codes
C++
12
star
10

QSerialTerminal

A simple, cross-platform serial port terminal application written with Qt/QML
C++
8
star
11

SigLAB

Serial data processing & visualization software
C++
5
star
12

DS-Database

A community-maintained list of open-source FRC DriverStations
4
star
13

Minimal3T

Play Tic-Tac-Toe in a symphony of melodies and color
Objective-C
4
star
14

Socky

Simple C library that eases cross-platform socket programming
C
4
star
15

Joystick2Serial

Quick and dirty software to send SDL joystick data through a serial port
C
2
star
16

AVR-Experiments

AVR projects that I am developing to familiarize myself with AVR microcontrollers
QMake
2
star
17

LSB-Chat

Experimental implementation of a secure message/file exchange platform over a local network.
C++
1
star
18

Falcon

A simple QML widget framework
QML
1
star
19

blackbox

Simulating the dynamical behavior of an Eddy current brake using neural networks
C
1
star
20

asus_zenbook_ux7602zm_sound

Kernel & SSDT patches to get sound working on Asus UX7602ZM laptops under GNU/Linux
ASL
1
star