17.04. Вернуть отображение масштабирования в 1 после возобновления после приостановки?

Недавно я сделал чистую установку 17.04 на машине с картой Nvidia 750Ti и монитором Dell 4K. Я использую двоичный драйвер Nvidia 381.09.

Все это отлично работает, кроме того, что масштабирование дисплея, которое я установил в настройках экрана дисплея Ubuntu, всегда возвращается к 1, когда машина возобновляется после приостановки. Мне нужно установить его на 1.5, иначе все будет крошечным (кстати, почему Ubuntu не масштабируется до разумного значения по умолчанию с мониторами 4K?)

Кто-нибудь еще это получает? Я не могу найти упоминания об этом в другом месте.

BTW Я пробовал драйвер Nouveau, и это не пробуждает мой экран вообще после приостановки. Так что маршрут не стартер.

Edit: Похоже, что это было сообщено как подтвержденная ошибка здесь. Будет следить, если что-нибудь случится.

9
задан 9 May 2017 в 00:23

11 ответов

Для всех, кто разочарован этой ошибкой, вот быстрый скрипт perl, чтобы следить за изменениями в значении scale_factor и сбрасывать все значения, когда первый скрипт запускался:

#!/usr/bin/perl -w use strict; my $dconf_line = `dconf read /com/ubuntu/user-interface/scale-factor`; my ($scale_factor) = $dconf_line =~ m/DP1\': (\d+)/; if ($scale_factor) { print STDOUT "Current value of scale_factor: $scale_factor ...\n\n"; } else { die "Error: cannot find scale_factor value in dconf\n(value of /com/ubuntu/user-interface/scale-factor was $dconf_line\n\n"; } open(my $fh, "-|", "dconf watch /com/ubuntu/user-interface/scale-factor"); while (<$fh>) { if (m/DP1\': (?!$scale_factor)/) { `dconf write /com/ubuntu/user-interface/scale-factor "{'DP1': $scale_factor}"`; my $date = `date`; print STDOUT "$date -- scaling factor adjusted\n\n"; } }

Просто оставьте скрипт запущенным, и он поймает и сбросит любые попытки изменить свое значение.

Работает для меня с 17.04 с единицей, но вполне возможно, что с переключением на gnome в 17.10 значение хранится в другом ключе реестра dconf - если это так, просто замените все экземпляры ключевого местоположения в скрипте соответствующим, и он должен работать.

Надеюсь, это поможет ...

2
ответ дан 18 July 2018 в 14:13

Для всех, кто разочарован этой ошибкой, вот быстрый скрипт perl, чтобы следить за изменениями в значении scale_factor и сбрасывать все значения, когда первый скрипт запускался:

#!/usr/bin/perl -w use strict; my $dconf_line = `dconf read /com/ubuntu/user-interface/scale-factor`; my ($scale_factor) = $dconf_line =~ m/DP1\': (\d+)/; if ($scale_factor) { print STDOUT "Current value of scale_factor: $scale_factor ...\n\n"; } else { die "Error: cannot find scale_factor value in dconf\n(value of /com/ubuntu/user-interface/scale-factor was $dconf_line\n\n"; } open(my $fh, "-|", "dconf watch /com/ubuntu/user-interface/scale-factor"); while (<$fh>) { if (m/DP1\': (?!$scale_factor)/) { `dconf write /com/ubuntu/user-interface/scale-factor "{'DP1': $scale_factor}"`; my $date = `date`; print STDOUT "$date -- scaling factor adjusted\n\n"; } }

Просто оставьте скрипт запущенным, и он поймает и сбросит любые попытки изменить свое значение.

Работает для меня с 17.04 с единством, но вполне возможно, что с переключением на gnome в 17.10 значение хранится в другом ключе реестра dconf - если это так, просто замените все экземпляры ключевого местоположения в скрипте соответствующим, и он должен работать.

Надеюсь, это поможет ...

2
ответ дан 24 July 2018 в 20:21
  • 1
    Очень полезно. Для 16.04 LTS (с картой Nvidia) мне пришлось менять строки 5, 16 и 17 с DP1 на DP-2 .. – david6 4 March 2018 в 10:22

Для всех, кто разочарован этой ошибкой, вот быстрый скрипт perl, чтобы следить за изменениями в значении scale_factor и сбрасывать все значения, когда первый скрипт запускался:

#!/usr/bin/perl -w use strict; my $dconf_line = `dconf read /com/ubuntu/user-interface/scale-factor`; my ($scale_factor) = $dconf_line =~ m/DP1\': (\d+)/; if ($scale_factor) { print STDOUT "Current value of scale_factor: $scale_factor ...\n\n"; } else { die "Error: cannot find scale_factor value in dconf\n(value of /com/ubuntu/user-interface/scale-factor was $dconf_line\n\n"; } open(my $fh, "-|", "dconf watch /com/ubuntu/user-interface/scale-factor"); while (<$fh>) { if (m/DP1\': (?!$scale_factor)/) { `dconf write /com/ubuntu/user-interface/scale-factor "{'DP1': $scale_factor}"`; my $date = `date`; print STDOUT "$date -- scaling factor adjusted\n\n"; } }

Просто оставьте скрипт запущенным, и он поймает и сбросит любые попытки изменить свое значение.

Работает для меня с 17.04 с единицей, но вполне возможно, что с переключением на gnome в 17.10 значение хранится в другом ключе реестра dconf - если это так, просто замените все экземпляры ключевого местоположения в скрипте соответствующим, и он должен работать.

Надеюсь, это поможет ...

2
ответ дан 31 July 2018 в 11:02
  • 1
    Очень полезно. Для 16.04 LTS (с картой Nvidia) мне пришлось менять строки 5, 16 и 17 с DP1 на DP-2 .. – david6 4 March 2018 в 10:22

Для всех, кто разочарован этой ошибкой, вот быстрый скрипт perl, чтобы следить за изменениями в значении scale_factor и сбрасывать все значения, когда первый скрипт запускался:

#!/usr/bin/perl -w use strict; my $dconf_line = `dconf read /com/ubuntu/user-interface/scale-factor`; my ($scale_factor) = $dconf_line =~ m/DP1\': (\d+)/; if ($scale_factor) { print STDOUT "Current value of scale_factor: $scale_factor ...\n\n"; } else { die "Error: cannot find scale_factor value in dconf\n(value of /com/ubuntu/user-interface/scale-factor was $dconf_line\n\n"; } open(my $fh, "-|", "dconf watch /com/ubuntu/user-interface/scale-factor"); while (<$fh>) { if (m/DP1\': (?!$scale_factor)/) { `dconf write /com/ubuntu/user-interface/scale-factor "{'DP1': $scale_factor}"`; my $date = `date`; print STDOUT "$date -- scaling factor adjusted\n\n"; } }

Просто оставьте скрипт запущенным, и он поймает и сбросит любые попытки изменить свое значение.

Работает для меня с 17.04 с единицей, но вполне возможно, что с переключением на gnome в 17.10 значение хранится в другом ключе реестра dconf - если это так, просто замените все экземпляры ключевого местоположения в скрипте соответствующим, и он должен работать.

Надеюсь, это поможет ...

2
ответ дан 31 July 2018 в 12:01
  • 1
    Очень полезно. Для 16.04 LTS (с картой Nvidia) мне пришлось менять строки 5, 16 и 17 с DP1 на DP-2 .. – david6 4 March 2018 в 10:22

Для всех, кто разочарован этой ошибкой, вот быстрый скрипт perl, чтобы следить за изменениями в значении scale_factor и сбрасывать все значения, когда сценарий был впервые запущен:

#!/usr/bin/perl -w
use strict;

my $dconf_line = `dconf read /com/ubuntu/user-interface/scale-factor`;
my ($scale_factor) = $dconf_line =~ m/DP1\': (\d+)/;

if ($scale_factor) {
    print STDOUT "Current value of scale_factor: $scale_factor ...\n\n";
} else {
    die "Error: cannot find scale_factor value in dconf\n(value of /com/ubuntu/user-interface/scale-factor was $dconf_line\n\n";
}

open(my $fh, "-|", "dconf watch /com/ubuntu/user-interface/scale-factor");

while (<$fh>) {
    if (m/DP1\': (?!$scale_factor)/) {
        `dconf write /com/ubuntu/user-interface/scale-factor "{'DP1': $scale_factor}"`;
        my $date = `date`;
        print STDOUT "$date -- scaling factor adjusted\n\n";
    }
}

Просто оставьте скрипт запущенным, и он поймает и сбросит любые попытки изменить свое значение.

Работает для меня с 17.04 с единицей, но вполне возможно, что с переключением на gnome в 17.10 значение хранится в другом ключе реестра dconf - если это так, просто замените все экземпляры ключевого местоположения в скрипте соответствующим, и он должен работать.

Надеюсь, это поможет ...

2
ответ дан 31 July 2018 в 23:24

Для всех, кто разочарован этой ошибкой, вот быстрый скрипт perl, чтобы следить за изменениями в значении scale_factor и сбрасывать все значения, когда сценарий был впервые запущен:

#!/usr/bin/perl -w
use strict;

my $dconf_line = `dconf read /com/ubuntu/user-interface/scale-factor`;
my ($scale_factor) = $dconf_line =~ m/DP1\': (\d+)/;

if ($scale_factor) {
    print STDOUT "Current value of scale_factor: $scale_factor ...\n\n";
} else {
    die "Error: cannot find scale_factor value in dconf\n(value of /com/ubuntu/user-interface/scale-factor was $dconf_line\n\n";
}

open(my $fh, "-|", "dconf watch /com/ubuntu/user-interface/scale-factor");

while (<$fh>) {
    if (m/DP1\': (?!$scale_factor)/) {
        `dconf write /com/ubuntu/user-interface/scale-factor "{'DP1': $scale_factor}"`;
        my $date = `date`;
        print STDOUT "$date -- scaling factor adjusted\n\n";
    }
}

Просто оставьте скрипт запущенным, и он поймает и сбросит любые попытки изменить свое значение.

Работает для меня с 17.04 с единицей, но вполне возможно, что с переключением на gnome в 17.10 значение хранится в другом ключе реестра dconf - если это так, просто замените все экземпляры ключевого местоположения в скрипте соответствующим, и он должен работать.

Надеюсь, это поможет ...

2
ответ дан 2 August 2018 в 18:20

Для всех, кто разочарован этой ошибкой, вот быстрый скрипт perl, чтобы следить за изменениями в значении scale_factor и сбрасывать все значения, когда сценарий был впервые запущен:

#!/usr/bin/perl -w
use strict;

my $dconf_line = `dconf read /com/ubuntu/user-interface/scale-factor`;
my ($scale_factor) = $dconf_line =~ m/DP1\': (\d+)/;

if ($scale_factor) {
    print STDOUT "Current value of scale_factor: $scale_factor ...\n\n";
} else {
    die "Error: cannot find scale_factor value in dconf\n(value of /com/ubuntu/user-interface/scale-factor was $dconf_line\n\n";
}

open(my $fh, "-|", "dconf watch /com/ubuntu/user-interface/scale-factor");

while (<$fh>) {
    if (m/DP1\': (?!$scale_factor)/) {
        `dconf write /com/ubuntu/user-interface/scale-factor "{'DP1': $scale_factor}"`;
        my $date = `date`;
        print STDOUT "$date -- scaling factor adjusted\n\n";
    }
}

Просто оставьте скрипт запущенным, и он поймает и сбросит любые попытки изменить свое значение.

Работает для меня с 17.04 с единицей, но вполне возможно, что с переключением на gnome в 17.10 значение хранится в другом ключе реестра dconf - если это так, просто замените все экземпляры ключевого местоположения в скрипте соответствующим, и он должен работать.

Надеюсь, это поможет ...

2
ответ дан 3 August 2018 в 20:40

Для всех, кто разочарован этой ошибкой, вот быстрый скрипт perl, чтобы следить за изменениями в значении scale_factor и сбрасывать все значения, когда сценарий был впервые запущен:

#!/usr/bin/perl -w
use strict;

my $dconf_line = `dconf read /com/ubuntu/user-interface/scale-factor`;
my ($scale_factor) = $dconf_line =~ m/DP1\': (\d+)/;

if ($scale_factor) {
    print STDOUT "Current value of scale_factor: $scale_factor ...\n\n";
} else {
    die "Error: cannot find scale_factor value in dconf\n(value of /com/ubuntu/user-interface/scale-factor was $dconf_line\n\n";
}

open(my $fh, "-|", "dconf watch /com/ubuntu/user-interface/scale-factor");

while (<$fh>) {
    if (m/DP1\': (?!$scale_factor)/) {
        `dconf write /com/ubuntu/user-interface/scale-factor "{'DP1': $scale_factor}"`;
        my $date = `date`;
        print STDOUT "$date -- scaling factor adjusted\n\n";
    }
}

Просто оставьте скрипт запущенным, и он поймает и сбросит любые попытки изменить свое значение.

Работает для меня с 17.04 с единицей, но вполне возможно, что с переключением на gnome в 17.10 значение хранится в другом ключе реестра dconf - если это так, просто замените все экземпляры ключевого местоположения в скрипте соответствующим, и он должен работать.

Надеюсь, это поможет ...

2
ответ дан 5 August 2018 в 05:21

Для всех, кто разочарован этой ошибкой, вот быстрый скрипт perl, чтобы следить за изменениями в значении scale_factor и сбрасывать все значения, когда сценарий был впервые запущен:

#!/usr/bin/perl -w
use strict;

my $dconf_line = `dconf read /com/ubuntu/user-interface/scale-factor`;
my ($scale_factor) = $dconf_line =~ m/DP1\': (\d+)/;

if ($scale_factor) {
    print STDOUT "Current value of scale_factor: $scale_factor ...\n\n";
} else {
    die "Error: cannot find scale_factor value in dconf\n(value of /com/ubuntu/user-interface/scale-factor was $dconf_line\n\n";
}

open(my $fh, "-|", "dconf watch /com/ubuntu/user-interface/scale-factor");

while (<$fh>) {
    if (m/DP1\': (?!$scale_factor)/) {
        `dconf write /com/ubuntu/user-interface/scale-factor "{'DP1': $scale_factor}"`;
        my $date = `date`;
        print STDOUT "$date -- scaling factor adjusted\n\n";
    }
}

Просто оставьте скрипт запущенным, и он поймает и сбросит любые попытки изменить свое значение.

Работает для меня с 17.04 с единицей, но вполне возможно, что с переключением на gnome в 17.10 значение хранится в другом ключе реестра dconf - если это так, просто замените все экземпляры ключевого местоположения в скрипте соответствующим, и он должен работать.

Надеюсь, это поможет ...

2
ответ дан 6 August 2018 в 22:27

Для всех, кто разочарован этой ошибкой, вот быстрый скрипт perl, чтобы следить за изменениями в значении scale_factor и сбрасывать все значения, когда сценарий был впервые запущен:

#!/usr/bin/perl -w
use strict;

my $dconf_line = `dconf read /com/ubuntu/user-interface/scale-factor`;
my ($scale_factor) = $dconf_line =~ m/DP1\': (\d+)/;

if ($scale_factor) {
    print STDOUT "Current value of scale_factor: $scale_factor ...\n\n";
} else {
    die "Error: cannot find scale_factor value in dconf\n(value of /com/ubuntu/user-interface/scale-factor was $dconf_line\n\n";
}

open(my $fh, "-|", "dconf watch /com/ubuntu/user-interface/scale-factor");

while (<$fh>) {
    if (m/DP1\': (?!$scale_factor)/) {
        `dconf write /com/ubuntu/user-interface/scale-factor "{'DP1': $scale_factor}"`;
        my $date = `date`;
        print STDOUT "$date -- scaling factor adjusted\n\n";
    }
}

Просто оставьте скрипт запущенным, и он поймает и сбросит любые попытки изменить свое значение.

Работает для меня с 17.04 с единицей, но вполне возможно, что с переключением на gnome в 17.10 значение хранится в другом ключе реестра dconf - если это так, просто замените все экземпляры ключевого местоположения в скрипте соответствующим, и он должен работать.

Надеюсь, это поможет ...

2
ответ дан 9 August 2018 в 02:53

Для всех, кто разочарован этой ошибкой, вот быстрый скрипт perl, чтобы следить за изменениями в значении scale_factor и сбрасывать все значения, когда сценарий был впервые запущен:

#!/usr/bin/perl -w
use strict;

my $dconf_line = `dconf read /com/ubuntu/user-interface/scale-factor`;
my ($scale_factor) = $dconf_line =~ m/DP1\': (\d+)/;

if ($scale_factor) {
    print STDOUT "Current value of scale_factor: $scale_factor ...\n\n";
} else {
    die "Error: cannot find scale_factor value in dconf\n(value of /com/ubuntu/user-interface/scale-factor was $dconf_line\n\n";
}

open(my $fh, "-|", "dconf watch /com/ubuntu/user-interface/scale-factor");

while (<$fh>) {
    if (m/DP1\': (?!$scale_factor)/) {
        `dconf write /com/ubuntu/user-interface/scale-factor "{'DP1': $scale_factor}"`;
        my $date = `date`;
        print STDOUT "$date -- scaling factor adjusted\n\n";
    }
}

Просто оставьте скрипт запущенным, и он поймает и сбросит любые попытки изменить свое значение.

Работает для меня с 17.04 с единицей, но вполне возможно, что с переключением на gnome в 17.10 значение хранится в другом ключе реестра dconf - если это так, просто замените все экземпляры ключевого местоположения в скрипте соответствующим, и он должен работать.

Надеюсь, это поможет ...

2
ответ дан 14 August 2018 в 21:08
  • 1
    Очень полезно. Для 16.04 LTS (с картой Nvidia) мне пришлось менять строки 5, 16 и 17 с DP1 на DP-2 .. – david6 4 March 2018 в 10:22
  • 2
    – Elliott Slaughter 7 November 2018 в 20:47

Другие вопросы по тегам:

Похожие вопросы: