Еще 2 инструмента:
- Откровенный обмен мнениями является портом JavaScript или Скидкой с цены: https://github.com/coreyti/showdown. Можно использовать его только от браузера
- txt2tags может считать формат Скидки с цены, но он добавляет много новых опций и функций: http://txt2tags.org/online.php
К сожалению, конфигурация отличается для каждого распределения:
Debian/Ubuntu
/etc/X11/default-display-manager
Redhat (должен также относиться к Fedora),
/etc/sysconfig/desktop
OpenSuSe
/etc/sysconfig/displaymanager
Нет. Менеджер дисплея не обязательно связан с чем-либо еще, что это работает на том же X-сервере. Менеджер по оформлению работает перед входом в систему; это выбрано системным администратором. Все остальное (менеджер окон, менеджер сеансов, настольная среда, …) выбрано пользователем. Не должно даже быть менеджера по оформлению: если Вы входите в систему в текстовом режиме и запускаете GUI с startx
, никакой менеджер по оформлению не вовлечен.
Можно проверить, какой менеджер по оформлению является по умолчанию в системе. Это только даст правильный ответ под некоторыми распространенными, но не универсальные предположения. При ручном выполнении другого менеджера по любой причине этот метод не скажет Вам.
Хорошая ставка должна узнать идентификатор процесса X-сервера: его родительский процесс является, вероятно, менеджером по оформлению, если существует тот. Это требует, чтобы Ваши клиенты работали на той же машине как X-сервер. lsof /tmp/.X11-unix/X${DISPLAY#:}
покажет процесс X-сервера (принимающий X сокетов, живых в /tmp/.X11-unix
).
x=$(lsof -F '' /tmp/.X11-unix/X0); x=${x#p}
ps -p $(ps -o ppid -p $x)
(Объяснение: lsof -F ''
вывод печати как p1234
. -F
опция означает выходной формат машины-parseable, и ''
средства только распечатать PID, с буквой p
перед ним. x=${x#p}
снимает изоляцию с первой буквы p
. Последняя строка получает PID родителя X-сервера (ps -o ppid -p $x
), и вызовы ps
показать информацию о том родительском процессе.)
Некоторые дистрибутивы позволяют устанавливать несколько менеджеров по оформлению. Только будет единственное выполнение, если у Вас не будет системы мультиместа все же. Перечислять все установленные пакеты менеджера по оформлению под Debian и производными:
aptitude -F %p search '~i ~P^x-display-manager$'
или
</var/lib/dpkg/status awk '
/^Package: / {package = $2}
/^Provides: .*x-display-manager/ {print package}'
Имя менеджера по оформлению должно быть в DESKTOP_SESSION
echo $DESKTOP_SESSION
возвраты "гном" для меня.
Править
Вы правы. Они идут назад и вперед на этом на Bugzilla XFCEs, таким образом, это, вероятно, не очень надежно.
$DESKTOP_SESSION
unknown
.
– Gilles 'SO- stop being evil'
10.09.2011, 02:56
X является очень модульным поэтому, если бы Вы действительно хотели это, то да, Вы могли бы смешать настольные среды и диспетчеры Windows. После всего менеджер окон является просто способом нарисовать окна (это - простое представление).
Таким образом, при взятии гнома метагород раньше был диспетчером Windows, но теперь он был заменен Бормотанием.
Проблема со смешиванием находится в современных настольных средах, среда рабочего стола и менеджер окон высоко связываются друг с другом. Слишком много смешивания могло закончиться в меньшем количестве функциональности.
Поскольку упомянутый $DESKTOP_SESSION работает, но если Вы хотите спросить свой сервер X11, Вы могли бы сделать это:
xprop -id $(xprop -root _NET_SUPPORTING_WM_CHECK | cut -d\# -f2) WM_NAME
Который разлагается на
xprop -root _NET_SUPPORTING_WM_CHECK | cut -d\# -f2
0x1000052
xprop -id 0x1000052 WM_NAME
WM_NAME(STRING) = "xfwm4"
Который получает идентификатор окна, созданного менеджером окон. Спецификации говорят (http://standards.freedesktop.org/wm-spec/1.3/ar01s03.html):
_NET_SUPPORTING_WM_CHECK, WINDOW/32
The Window Manager MUST set this property on the root window to be the ID
of a child window created by himself, to indicate that a compliant window
manager is active.
И затем Вы просите свойство WM_NAME упомянутого окна.
WM_NAME быть:
The WM_NAME property is an uninterpreted string that the client wants the
window manager to display in association with the window (for example, in
a window headline bar).
_NET_SUPPORTING_WM_CHECK
дает информацию о менеджере окон, не о менеджере по оформлению. Это даже всегда не работает; в моей системе то свойство установлено на окно ID, но рассматриваемое окно не имеет имени.
– Gilles 'SO- stop being evil'
10.09.2011, 02:54
В каком-то случае WMCTRL может помочь. Эта утилита совместима с большим количеством руководителей Windows.
wmcrt -m
Должен отображать имя используемого в настоящее время Window Manager.
Как сказал @Gilles, диспетчер дисплея начнет вашу настольную среду.
Согласно Debian Wiki , в основном этот конец с DM
, только исключение Slim
.
Так что это должно хватить для большинства потребностей людей:
ps auxf | awk '{print $11}' | \grep --color -e dm$ -e slim$
или быть уверенным, он существует как родительский процесс, и не разведывается (кроме системы init):
ps auxf | awk '{print $11}' | \grep -e "^/.*dm$" -e "/.*slim$"
Вот довольно типичный синтаксис. Это может привести к еще одной проверке ошибок, но в рамках того, что вы хотите сделать, я полагаю, это поможет вам в правильном треке:
#!/bin/bash
file=/etc/hosts
if [ -z "$1" ]; then
echo Usage: $0 name 1>&2
exit 2
fi
if grep -q "$1" $file ; then
echo "$file" contains $1
else
echo "$file" doesn\'t contain $1
fi
тест
( если [-z «$1»]; тогда...
) имеет значение true, если $1
(первый аргумент командной строки) является пустым рядом (или не был предоставлен). Использование:
выводится на stderr
с 1 > и 2
grep
скрыт (за исключением выходных данных об ошибках, которые вы, вероятно, захотите увидеть), поскольку в этом
grep
имеет параметр -q
, который замалчивает все выходные данные, что является лучшим выбором здесь, но не все команды имеют «тихий» переключатель. В этих случаях вместо этого можно использовать >/dev/null
, как в приведенном ниже примере. $?
Вы специально попросили пример с $?
. Вместо вышеуказанного , если grep...
конструкция, мы действительно могли бы разделить это на отдельные утверждения:
# grep -q "$1" $file would work just as well, here (better, maybe!):
grep "$1" $file >/dev/null
if [ $? -eq 0 ]; then
echo "$file" contains $1
else
echo "$file" doesn\'t contain $1
fi
Важно отметить, что тестирование $?
должно происходить сразу после рассматриваемой команды, так как любые другие команды (за исключением некоторых построений оболочки) приведут к перезаписи значения.
$?
$?
- это просто код выхода последнего процесса (команды), выполненного оболочкой. По соглашению код выхода 0
является успешным (хотя, как и в случае большинства конвенций, существуют исключения). Более высокие коды выхода могут иметь различные значения, специфичные для приложения, но обычно ненулевые означает какой-то ненормальный выход. Для получения дополнительной информации см. документацию по команде.
Откройте терминал и запустите
sudo apt-get update; sudo apt-get модернизации
Ответ Y на все вопросы. В моем случае проблема исчезла.
-121--228592-Как уже упоминалось, в этом потоке много путаницы. Исходный вопрос заключается в том, какой диспетчер дисплея, а не диспетчер рабочего стола или диспетчер окон. В настоящее время я работаю Xfwm4 который является диспетчером окон Xfce, и lxdm, который является легким диспетчером отображения X11 (от LXDE, а не Xfce). Вы должны видеть, какой диспетчер дисплея вы используете через htop. Вероятно, вы уже давно нашли ответ за последние 4 года:)
Если вы используете дистрибутив на основе systemd . Эта команда даст имя текущего настроенного диспетчера дисплея, потому что у вас может быть установлено несколько диспетчеров дисплея.
grep '/usr/s\?bin' /etc/systemd/system/display-manager.service
ВЫХОД будет что-то вроде
ExecStart=/usr/bin/mdm
Похоже, я использую диспетчер отображения mint.
Если вы используете systemd, то
systemctl status display-manager
отобразит имя и статус активной службы диспетчера дисплея на вашем компьютере.
Puede hacer esto a través de un script de terceros -llamado screenfetch
Screenfetch es un script bash disponible para Linux que muestra información del sistema junto con la versión ASCII del logotipo de distribución de Linux del sistema
Instalar a través del administrador de paquetessudo apt-get install screenfetch
(asumiendo que estás en variantes de Debian)
y simplemente ejecuta
screenfetch
En tu terminal
Enlace del proyectohttps://github.com/KittyKatt/screenFetch
Попробуйте использовать эту команду
systemctl |grep «Диспетчер отображения»
Это обеспечит следующие выходные данные.
[anil@localhost Desktop]$ systemctl |grep "Диспетчер отображения" xdm.service загружен, активен, запущен X11 Display Manager
Теперь вы можете видеть xdm.service, указанный чуть выше загруженного активного, и это ваш диспетчер отображения
После того, как вы включите display-manager.service
, файл с символической ссылкой на указанный или используемый по умолчанию диспетчер отображения --, поскольку у вас может быть несколько файлов в одной среде рабочего стола --, должен находиться в/etc/systemd/system/display-manager.service
file /etc/systemd/system/display-manager.service
Этот способ надежно отработал у меня на ubuntu -20 LTS.
Еще один системный подход.
Здесь используется команда show
для фильтрации свойства службы display-manager
:
➜ systemctl --property=Id,Description show display-manager.service
Id=sddm.service
Description=Simple Desktop Display Manager
cat
. – Let_Me_Be 09.09.2011, 18:56/usr/bin/xdm
- это означает, что xdm является моим менеджером по оформлению? – ptrcao 09.09.2011, 18:59