Есть ли простая команда Linux, которая скажет мне, что мой менеджер дисплеев?
Я использую Xfce. Разные среды рабочего стола обычно связаны с разными дисплеями?
command-line
display-manager
ptrcao
источник
источник
Ответы:
К сожалению, конфигурация отличается для каждого дистрибутива:
Debian / Ubuntu
RedHat (должен также применяться к Fedora)
OpenSUSE
источник
cat
./usr/bin/xdm
- означает ли это, что xdm - мой менеджер дисплеев?Нет Диспетчер отображения не обязательно связан с чем-либо еще, работающим на том же X-сервере. Диспетчер отображения запускается до входа в систему; это выбирает системный администратор. Все остальное (оконный менеджер, менеджер сессий, среда рабочего стола и т. Д.) Выбирается пользователем. Диспетчер дисплеев даже не требуется: если вы входите в текстовый режим и запускаете графический интерфейс с помощью
startx
, диспетчер дисплеев не задействуется.Вы можете проверить, какой менеджер дисплеев по умолчанию используется в вашей системе . Это даст правильный ответ только при некоторых общих, но не универсальных предположениях. Если по какой-либо причине вы вручную запустили другой менеджер, этот метод не скажет вам.
Хорошая ставка - узнать идентификатор процесса X-сервера: его родительский процесс, вероятно, является диспетчером отображения, если он есть. Это требует, чтобы ваши клиенты работали на той же машине, что и X-сервер.
lsof /tmp/.X11-unix/X${DISPLAY#:}
покажет процесс X-сервера (при условии, что сокеты X живут в/tmp/.X11-unix
).(Объяснение:
lsof -F ''
печатает вывод какp1234
.-F
Опция означает машинно-разборчивый формат вывода и''
означает печатать только PID с буквойp
перед ним.x=${x#p}
Удаляет начальную буквуp
. Последняя строка получает PID родителя X-сервера (ps -o ppid -p $x
) и вызывает,ps
чтобы показать информацию об этом родительском процессе.)Некоторые дистрибутивы позволяют устанавливать несколько дисплеев дисплеев. Там будет только один работающий, если у вас нет системы на несколько мест. Чтобы вывести список всех установленных пакетов диспетчера отображения в Debian и его производных:
или же
источник
Если вы используете системный дистрибутив. Эта команда даст имя диспетчера отображения, настроенного в настоящее время, поскольку у вас может быть установлено несколько диспетчера дисплеев.
ВЫХОД будет что-то вроде
Похоже, я использую диспетчер отображения мяты.
источник
grep '/usr/bin' /etc/systemd/system/display-manager.service
. (И, строго говоря, поскольку в нем/usr/bin
нет символов, характерных для оболочки, вам не нужно его заключать в кавычки - но это не повредит.)cat <file> | grep <searchterm>
вместо второй из,grep <searchterm> <file>
когда grepping.Если вы используете systemd, то
Будет отображать имя и статус службы активного диспетчера отображения на вашем компьютере.
источник
Имя диспетчера отображения должно быть в DESKTOP_SESSION
возвращает "гном" для меня.
РЕДАКТИРОВАТЬ
Вы правы. Они обсуждают это на bugzilla XFCE, так что это, вероятно, не очень надежно.
источник
$DESKTOP_SESSION
естьunknown
.Как сказал @Gilles, менеджер дисплеев запустит среду вашего рабочего стола.
Согласно Debian Wiki , в большинстве случаев это заканчивается
dm
, за исключением толькоslim
.Так что этого должно хватить для большинства потребностей людей:
Или, конечно, он существует как родительский процесс и не разветвляется (кроме как из системы инициализации):
источник
lightdm
. Решение RedHat / Fedora из верхнего ответа не сработало, конфигурация, похоже, изменилась.В некоторых случаях wmctrl может помочь. Эта утилита совместима со многими оконными менеджерами.
должен отображать имя используемого в данный момент оконного менеджера.
источник
Как уже упоминалось, в этой теме много путаницы. Первоначальный вопрос - какой диспетчер отображения, а не менеджер рабочего стола или менеджер окон? В настоящее время я использую Xfwm4, который является оконным менеджером Xfce, и lxdm, который является легким диспетчером отображения X11 (из LXDE, а не Xfce). Вы должны быть в состоянии увидеть, какой менеджер дисплея вы используете через htop. Вы, наверное, давно обнаружили ответ за последние 4 года :)
источник
Вы можете сделать это с помощью стороннего скрипта, называемого screenfetch.
Screenfetch - это bash-скрипт, доступный для Linux, который отображает системную информацию вместе с ASCII-версией дистрибутива Linux. Логотип системы
Установить через менеджер пакетов
sudo apt-get install screenfetch
(при условии, что вы используете Debian)и просто запустить
screenfetch
в своем терминалеСсылка на проект https://github.com/KittyKatt/screenFetch
источник
X очень модульный, поэтому, если вы действительно этого хотите, да, вы можете смешивать среды рабочего стола и менеджеры окон. В конце концов, оконный менеджер - это просто способ рисовать окна (это простой вид).
Так что если вы взяли gnome, то метасити раньше был менеджером окон, но теперь его заменил Mutter.
Проблема смешивания заключается в современных средах рабочего стола, рабочий стол и оконный менеджер тесно связаны друг с другом. Слишком много микширования может привести к снижению функциональности.
Как уже упоминалось, $ DESKTOP_SESSION работает, но если вы хотите задать свой сервер X11, вы можете сделать это:
Который разлагается на
Который получает идентификатор окна, созданного оконным менеджером. В спецификации сказано (http://standards.freedesktop.org/wm-spec/1.3/ar01s03.html):
Затем вы запрашиваете свойство WM_NAME в указанном окне.
WM_NAME:
источник
_NET_SUPPORTING_WM_CHECK
дает информацию о диспетчере окон, а не о диспетчере отображения. Это даже не всегда работает; в моей системе это свойство имеет идентификатор окна, но у рассматриваемого окна нет имени.источник