Re: Trinity on a UHD Monitor (3840x2160 pixels)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

On Thu, Sep 30, 2021 at 11:52 (+0200), Slávek Banko wrote:

> On Thursday 30 of September 2021 10:28:55 Felix Miata wrote:
>> Slávek Banko composed on 2021-09-30 10:07 (UTC+0200):
>>> Question: It could be useful to add another usual resolutions of HIDPI
>>> monitors to the list of resolutions in TDE Control Center?

>> Providing only 96, 120 and none is arbitrarily limiting. If it was up to
>> me, there would be a checkbox to enable forcing, and an input box
>> instead of a select list, which would reject irrational entries, such as
>> those <36 or >360, and be prefilled with either 96, or if greater than
>> 96, a value calculated from any image size reported in Xorg.0.log.

> Ok, I see, the possibility of entering your own value is beneficial. It 
> seems that it could be ideal to use combobox, which will provide a list, 
> but also allows to adjust the value. One of the values in the list could 
> be calculated from the real dimensions of the monitor.

Keep in mind that not all monitors correctly report their dimensions,
and even for those that do, sometimes you have to bend backwards to
get the info.  For example, while get-edid works fine (for me) on some
monitors, no others it returns incorrect information, and on yet
others it returns no info at all (in my case, this happens on some
external monitors; YMMV).  In the end, I use the following function
and command-line below (the function was glommed from some place on
the internet and modified somewhat, I regret I've lost the original
author, so I can't give proper credit.


my_get_edid_as_ascii_hex ()
{
    while read -r output hex conn
    do
        echo "$hex"
    done < <(xrandr --prop | awk '
    !/^[ \t]/ {
        if (output && hex) print output, hex, conn
        output=$1
        hex=""
    }
    /ConnectorType:/ {conn=$2}
    /[:.]/ && h {
        h=0
    }
    h {sub(/[ \t]+/, ""); hex = hex $0}
    /EDID.*:/ {h=1}
    END {if (output && hex) print output, hex, conn}
    '
    )
}


The following command line spits out all the information, you could
add ' | grep DisplaySize ' to output just the line which has the size.

my_get_edid_as_ascii_hex | xxd -p -r | parse-edid 


Having said that, some monitors report the wrong size with that
function, and for my own purposes I use the following function

get_screen_name ()
{
    while read -r output hex conn
    do
        # original:
        # [[ -z "$conn" ]] && conn=${output%%-*}
        # echo "# $output $conn   $(xxd -r -p <<< "$hex")"
        printf "%s %s\n" $output $(xxd -r -p <<< "$hex")
    done < <(xrandr --prop | awk '
    !/^[ \t]/ {
        if (output && hex) print output, hex, conn
        output=$1
        hex=""
    }
    /ConnectorType:/ {conn=$2}
    /[:.]/ && h {
        sub(/.*000000fc00/, "", hex)
        hex = substr(hex, 0echo a, 26) "0a"
        sub(/0a.*/, "", hex)
        h=0
    }
    h {sub(/[ \t]+/, ""); hex = hex $0}
    /EDID.*:/ {h=1}
    END {if (output && hex) print output, hex, conn}
    ' | grep $1
    )
}


which was modified from the one found at
https://stackoverflow.com/questions/10500521/linux-retrieve-monitor-names


Finally, I have a function which uses the screen name returned by
get_screen_name() to see if it is a monitor I know (which otherwise
reports the wrong size) and pick the correct size, and otherwise the
function crosses its fingers and uses the reported size and number of
pixels to calculate the DPI.  This works fine for me because I can
update the function with monitors that I use which give the wrong
info, but it is not a very general solution for the world at large.

This whole thing is a vessel of fertilizer and it stinks.  You'd think
it would be easier in 2021.

Cheers.

                                Jim
____________________________________________________
tde-devels mailing list -- devels@xxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devels-leave@xxxxxxxxxxxxxxxxxx
Web mail archive available at https://mail.trinitydesktop.org/mailman3/hyperkitty/list/devels@xxxxxxxxxxxxxxxxxx




[Index of Archives]     [Trinity Users]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [KDE]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]     [Trinity Desktop Environment]

  Powered by Linux