как установить libXScrnSaver на opensuse 42.3 tumbleweed

Проблема сложнее, чем предполагается. Начните со сценария:

tput smcup
clear
dialog --yesno "Do you want to continue?" 0 0
rc=$?
clear
tput rmcup
if [ "${rc}" == "0" ]; then
  echo Yes
else
  echo No
fi

Существует только один альтернативный экран (и вы не можете обращаться с ним как со стеком). tput smcup (технически "запустить режим адресации курсора") часто используется в xterm и его аналогах для переключения на альтернативный экран. На самом деле в xterm для этой цели реализована не одна управляющая последовательность (см. Почему экран не очищается при запуске vi?), и некоторые из них не распознаются аналогами. В одном из комментариев говорится, что MobaXterm является настоящим терминалом в данном случае. Этот терминал основан на (использует код из) PuTTY, который, как оказалось, обрабатывает код 1049 в terminfo MobaXterm.

Итак...

  • сценарий переключается на альтернативный экран
  • он очищает его (снова: xterm очищает альтернативный экран на предыдущем шаге)
  • он запускает диалог, все еще используя альтернативный экран.
  • при выходе из диалога посылается последовательность rmcup, переключающая обратно на обычный экран, содержимое которого будет таким же, как и до начала сценария
  • затем экран очищается. Обычно это приводит к перемещению курсора в верхнюю левую часть экрана и последующему очищению, но (см. ниже)
  • наконец, используется tput rmcup. Это просит эмулятор терминала переключиться обратно с альтернативного экрана.

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

  • она может быть проигнорирована
  • может быть выполнена часть операций, выполненных при переходе из альтернативного режима в нормальный.

В данном случае, похоже, что последнее: часть выполняется. PuTTY (и, при быстрой проверке, xterm) восстанавливают позицию курсора с первого использования tput smcup, потому что подсказка находится в середине экрана (а не вверху, где ее оставила бы clear). ОП заметил пробел, потому что в этом окне уже было выполнено несколько команд до запуска скрипта - курсор вернулся в исходное положение, но команды исчезли из-за clear перед tput rmcup.

1
17.02.2018, 02:14
1 ответ

He logrado instalar la aplicación ignorando las dependencias y funciona. Pero había instalado el desarrollador libXScrnSaver -.

zypper addrepo https://download.opensuse.org/update/leap/42.3/oss//openSUSE:Leap:42.3:Update.repo

zypper ref
zypper in libXScrnSaver-devel
zypper in slack-3.0.5-0.1.fc21.x86_64.rpm*

Loading repository data...
Reading installed packages...
Resolving package dependencies...

Problem: nothing provides libXScrnSaver needed by slack-3.0.5-0.1.fc21.x86_64
 Solution 1: do not install slack-3.0.5-0.1.fc21.x86_64
 Solution 2: break slack-3.0.5-0.1.fc21.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/c] (c): 2
1
27.01.2020, 23:44

Теги

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