Установка постоянных настроек DPI для внешнего дисплея.

  • Все ваши проблемы связаны с цитированием, а не с окружением.

    1. Окружение для команды.

      When a shell runs an external executable as a command, we can pass environment variables into the executable.

    Да, это способ установить переменные среды для команды, внешней или иной.

    А вот чего вам не хватает в этой строке [а]:

    $ var=3 /bin/echo "$var"
    

    Дело в том, что оболочка расширяет переменную при построении аргументов, и, если переменная varне установлена ​​в оболочке, которая запускает команду, это то, что фактически выполняется:

    $ var=3 /bin/echo ""
    

    Чтобы увидеть настоящее расширение оболочки, запустите:

    $ var=RunningShell ;   var=3 /bin/echo "$var"
    RunningShell
    

    Одним из (часто небезопасных )способов отложить вычисление переменной является:

    $ var=3 eval /bin/echo '"$var"'
    3
    

    Во втором примере вы поменялись кавычками:

    $ var=3 bash -c "/bin/echo '$var'"
    

    Ничего не печатает, так как фактическая командная строка становится:

    $ var=3 bash -c "/bin/echo ''"
    

    Поскольку значение (неустановленной )переменной $var расширяется. Вы наверное это имели в виду:

    $ var=thisis3 bash -c '/bin/echo "$var"'
    thisis3
    

    В этом случае одинарные кавычки предотвращают расширение переменной исполняемой оболочкой, оставляя расширение исполняемой оболочке(bash -c).

    • Используйте env, чтобы увидеть окружение.

      1. Когда программа выполняется exec, я хочу посмотреть, работает ли переменная окружения:

    Не запускайте exec в текущей оболочке, так как это закроет работающую оболочку.
    Вы можете сделать это, чтобы не закрывать работающую оболочку :

    .
    $ var=3 exec /bin/echo \$var | cat
    $var
    

    Так как закрытая оболочка будет закрытой в любом случае,первая переходная -обечайка трубы.

    Но это не покажет вам значение var в среде. Чтобы увидеть переменные в среде, используйте команду для просмотра среды:

    $ var=3 env | grep var
    var=3
    

[а] В написанной вами команде были обратные кавычки `, замена их на одинарные позволит избежать раскрытия переменной и напечатать $var.:

$ var=3 /bin/echo '$var'
$var
2
02.03.2019, 13:07
1 ответ

Пробовали ли вы решение вhttps://enochtsang.com/articles/scaling-two-monitors-differently-on-linux-mint?

В вашем случае создайте файл с именем .xsessionв вашем домашнем каталоге, в терминале вы можете сделать это с помощьюtouch ~/.xsession

Во-вторых, откройте его в текстовом редакторе и вставьте это:

#!/usr/bin/env bash

xrandr --output HDMI-0 --scale 2x2

Сделать файл исполняемымchmod +x ~/.xsession

Добавьте его как приложение для запуска в Приложения для запуска >> (+ )>> Пользовательская команда.

Name: Displays
Command: /home/your_user_name/.xsession
Comment: 
Startup delay: 0

Кроме того, не мешало бы немного пошуметь на форумах Mint или на Github, поэтому команда Linux Mint внедрила эту функцию раз и навсегда.

1
23.03.2020, 16:29

Теги

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