Как определить, какой оконный менеджер запущен
Есть ли способ (например, команда или переменная окружения) определить, какой оконный менеджер активно работает в текущем сеансе?
Если вы wmctrl установили, первая строка вывода из команды
покажет вам имя оконного менеджера. Если вы не wmctrl установили, используйте следующую команду, чтобы установить его:
Обратите внимание, man wmctrl (то есть, man страница для wmctrl ) говорит частично:
-m Показать информацию о диспетчере окон .
В моей системе Ubuntu 11.10 / Linux 3.0.0-14-generic # 23-Ubuntu x86_64 / metacity 2.34.1, первая строка вывода wmctrl -m была: Name: Metacity
пока echo $DESKTOP_SESSION показывался ubuntu-2d и echo $XDG_CURRENT_DESKTOP показывался Unity .
На свежей Ubuntu 15.10 установку Ubuntu desktop программного обеспечения на старом ноутбуке, первая линия выхода из wmctrl -m было: в Name: Compiz
то время как DESKTOP_SESSION и XDG_CURRENT_DESKTOP ценности были ubuntu и Unity
В системах Linux я тестировал переменные окружения XDG_CURRENT_DESKTOP и GDMSESSION и получил следующие результаты.
Вы можете использовать эту строку, чтобы получить вывод:
Ubuntu 18.04 (Ubuntu)
Ubuntu 18.04 (Ubuntu on Wayland)
Ubuntu 16.04
Единство (7)
Ubuntu 14.04
Единство с Миром
Примечание MIR_SERVER_NAME также установлено
Unity работает без Мира
Ubuntu 12.04
Единство 3d
Unity 2d
Гномик Классик
Gnome Classic (без эффектов)
Другие дистрибутивы на основе Ubuntu
Мята 13 (Корица)
Монетный двор 16 (издание KDE)
Мята 17 (Корица)
Lubuntu 12.04
Wasta 14.04 / 18.04
Wasta 14.04 с помощью рабочего стола Gnome.
Ubuntu Mate 18.04
Xubuntu 18.04
В терминале введите env все переменные окружения. Некоторые из них:
XDG_CURRENT_DESKTOP — сообщает, какую среду рабочего стола вы используете
GDMSESSION — Сообщает вам, какую опцию вы выбрали на приветствии lightdm для входа.
Чтобы использовать их, перейдите в терминал и введите:
(Будет выводить, например, «Unity», если вы используете Unity)
(Будет выводиться, например, «Ubuntu», если вы выбрали Ubuntu в логин или «Ubuntu-2d», если вы выбрали тот в логин.)
У вас есть другие, если вы посмотрите ближе к выводам env вроде DESKTOP_SESSION и COMPIZ_CONFIG_PROFILE
Поскольку то, что вы ищете, — это название того, какой диспетчер окон используется, единственный способ узнать, как это сделать, — просмотреть список процессов. Для этого есть команда под названием pgrep ( Википедия ). Я сделал следующее, чтобы получить имя, так как параметр -l добавляет идентификатор процесса:
pgrep -l compiz |cut -d » » -f2 поскольку процесс выполняется одним и тем же пользователем, нет необходимости добавлять префикс sudo. Затем вы можете использовать это для создания сценария, который выполняет действие на основе диспетчера окон.
Чтобы искать другие типы, просто измените слово compiz на другое, например mutter , kwin и т.д ..
Как определить, какой оконный менеджер запущен
Есть ли способ (например, команда или переменная окружения) определить, какой оконный менеджер активно работает в текущем сеансе?
12 ответов
Это возможно при использовании dbus и службы учетных записей (по умолчанию в Ubuntu).
Стоит отметить, что я проверил это при входе через lightdm (это графический экран входа в систему), он обнаружил классический рабочий стол, такой как черный ящик, и, очевидно, обнаружил Unity. Я подозреваю, что это значение того, что пользователь выбирает на экране входа в качестве сеанса, поэтому немного проще использовать эту проверку для процессов
Если у вас установлено wmctrl , первая строка вывода команды
покажет вам имя оконного менеджера. Если у вас не установлено wmctrl , используйте следующую команду для его установки:
Примечание, man wmctrl (то есть страница man для wmctrl ) говорит частично :
-m Показать информацию об оконном менеджере .
В моей системе Ubuntu 11.10 / Linux 3.0.0-14-generic # 23-Ubuntu x86_64 / metacity 2.34.1 первая строка вывода из wmctrl -m была: Name: Metacity
[ 1120], в то время как echo $DESKTOP_SESSION показал ubuntu-2d и echo $XDG_CURRENT_DESKTOP показал Unity .
В новой версии Ubuntu 15.10 программного обеспечения Ubuntu desktop на старом ноутбуке первая строка вывода из wmctrl -m была: Name: Compiz
, тогда как значения DESKTOP_SESSION и XDG_CURRENT_DESKTOP были ubuntu и Unity
В системах Linux I переменных тестовой среды XDG_CURRENT_DESKTOP и GDMSESSION и получил следующие результаты.
Можно использовать эту строку для получения вывода:
Ubuntu 18.04 (Ubuntu)
Ubuntu 18.04 (Ubuntu на Уэйленде)
Ubuntu 16.04
Единица (7)
Ubuntu 14.04
Единица, работающая с Миром
Обратите внимание, что MIR_SERVER_NAME также установлен
Единица, работающая без Мира
Ubuntu 12.04
3-я единица
2-я единица
Gnome
Классик Gnome
Классик Gnome (никакие эффекты)
Другие основанные на Ubuntu дистрибутивы
Чеканьте 13 (Корица)
Чеканьте 16 (выпуск KDE)
Чеканьте 17 (Корица)
Lubuntu 12.04
Васта 14.04 / 18.04
Васта 14.04 с помощью рабочего стола Gnome.
Помощник Ubuntu 18.04
Xubuntu 18.04
Я также тестировал с KDE, и мой вывод таков:
a) Графически, с HardInfo: ответ обычно в «Операционная система»> «Среда рабочего стола», но если нет, вы можете посмотрите на «Переменные среды». HardInfo готов ко всем протестированным дистрибутивам, кроме дистрибутива с KDE, но его можно легко и быстро установить (только 2 пакета в Linux Mint 13).
б) Командная строка, с этой командой: ps -A | egrep -i «gnome|kde|mate|cinnamon|lx|xfce|jwm» . Элемент, который появляется в нескольких строках, должен быть ответом (если есть ничья, то решение с «сессией» должно быть решением).
Я могу думать только о проверке известных оконных менеджеров в запущенных процессах. Раньше в gconf был ключ, для которого был задан предпочтительный оконный менеджер, но он устарел с Gnome 2.12.
Итак, если это для целей программирования, я предлагаю вам исследовать все оконные менеджеры linux; Некоторые популярные:
Вам нужно будет выполнить проверку для каждого с помощью команды pgrep -l $WINDOW_MANAGER , где $WINDOW_MANAGER — это имя оконного менеджера, для которого вы хотите проверить. Команда pgrep проверяет запущенные процессы.
Я не уверен на 100%, считается ли Gnome Shell оконным менеджером; остальные оконные менеджеры я получил из списка в скрипте /usr/bin/gnome-wm . Этот скрипт на самом деле должен быть пригоден для использования (поскольку он присутствует при чистой установке), но в моем случае он пытается запустить compiz , который не является моим оконным менеджером по умолчанию (не в моем сеансе Gnome).
РЕДАКТИРОВАТЬ:
Ну, комментарий @Anarci кажется более точным. В моем случае это действительно показывало gnome-shell .
Ничего из вышеперечисленного на самом деле не работало для меня, я просто хотел узнать, работал ли у меня Gnome в качестве моего текущего сеанса рабочего стола.
Это то, что сработало, откройте терминал
(чтобы проверить, какой вариант или версию я установил на своем компьютере с UBUNTU)
(запускает сессию рабочего стола / настольная среда, используемая в настоящее время)
(чтобы узнать, какая версия gnome установлена)
Я нашел pstree , чтобы помочь.
Установка
выход
Это то, что я получил.
В терминале введите env , чтобы увидеть все переменные среды. Вот некоторые из них:
XDG_CURRENT_DESKTOP — Сообщает вам, какую среду рабочего стола вы используете
GDMSESSION — Сообщает вам, какую опцию вы выбрали из lightdm приветствовать, чтобы войти.
Чтобы использовать их, перейдите в терминал и введите:
(будет выводить, например, «Unity», если вы используете Unity)
(Выводит, например, «ubuntu», если вы выбрали ubuntu в логине, или «ubuntu-2d», если вы выбрали его в логине.)
У вас есть другие, если вы посмотрите ближе на вывод из env , таких как DESKTOP_SESSION и COMPIZ_CONFIG_PROFILE
Так как то, что вы ищете, это имя того, что используется Window Manager, единственный способ увидеть, как получить это, посмотрев в список процессов. Для этого есть команда под названием pgrep ( Wikipedia ). Я сделал следующее, чтобы получить имя, так как параметр -l добавляет идентификатор процесса:
pgrep -l compiz |cut -d » » -f2 , поскольку процесс выполняется одним и тем же пользователем, нет необходимости добавлять префикс sudo. Затем вы можете использовать это для создания сценария, который выполняет действие на основе диспетчера окон.
Чтобы искать другие типы, просто измените слово compiz на другое, например mutter , kwin и т. Д.
💻 Чем i3 лучше Gnome и KDE? Тайловый оконный менеджер для Linux
До знакомства с Linux моё представление о графическом интерфейсе персонального компьютера было ограничено типичной картиной: окошки, к которым сверху приклеена панель названия. На панельке есть три кнопочки: свернуть, развернуть и закрыть. А ещё есть панелька с запущенными программами и часами. Окошки можно двигать за панельку и можно растягивать, потянув за краешек.
Конечно, от системы к системе есть небольшие различия: где-то панель задач находится сверху, а где-то снизу, где-то кнопки управления окном слева, а где-то справа. Но особой сути это не меняет: мы всё также открываем окошки друг над другом. Если они нам загораживают нужные окна, мы их либо сворачиваем, либо нажимаем на окно нужное и оно встаёт на передний план. Если нам нужно увидеть больше элементов интерфейса, например, в файловом менеджере, то мы жмём «Развернуть» и теперь окно занимает весь экран.
В современных системах уже появилась полезная функция — прилипание. Захватил окошко мышкой, подвёл к краю, отпустил — и теперь окно занимает 50% экрана. А другую половину заполняешь другой программой. Если тебе нужно работать с четырьмя программами одновременно, то ты открываешь их на четверть экрана каждую. И так каждый раз в подобной ситуации. А почему бы это не автоматизировать? Чтобы окошки, открываясь, автоматически занимали половину экрана, если их два? Или четверть экрана, если их четыре?
Ну так это уже было давно сделано в плиточных оконных менеджерах (tiling window manager). И про один из них я Вам сегодня расскажу.
Что такое оконный менеджер?
Сперва, давайте уточним, что такое оконный менеджер в Linux. Оконный менеджер — это программа, которая управляет расположением и размером окон на рабочем столе, а также рисует интерфейс для управления ими (имеются ввиду края окна и панель названия). Также оконный менеджер управляет виртуальными рабочими столами.
Gnome и KDE — оконные менеджеры?
Нет. Gnome, KDE, XFCE, Cinnamon, Pantheon и многие другие — окружения рабочего стола (desktop enviroment или просто DE). Это целый набор программ, выполненных в одном логическом стиле и формирующие единую экосистему. В состав каждого окружения входит свой оконный менеджер. У Gnome есть Mutter, у KDE есть KWin, у Cinnamon есть Muffin, у XFCE есть Xfwm. Сравнивать голый i3 с Gnome и KDE не совсем корректно. Но я очень редко встречал, чтобы кто-то использовал, например, KWin отдельно от остальных программ KDE.
i3 — плиточный оконный менеджер
Перейдём к делу. Чем же всё-таки i3 отличается от привычных оконных менеджеров? Для этого давайте просто взглянем на то, как он работает.
Допустим, перед нами пустой рабочий стол. Открываем программу. Например, файловый менеджер.
Он открылся на весь экран. Пока что ничего необычного.
Параллельно, нам нужно что-то делать в терминале. Открываем.
И сразу видим, что что-то не так. Новое окно открылось не поверх старого, а рядом с ним, поделив место на экране пополам. То есть нам не надо тратить время на перемещение окон, i3 сделал это за нас. Мы можем сразу же одинаково эффективно работать с обеими программами.
Ок, понадобилось что-то загуглить или скачать. Открываем браузер.
Опять, i3 поделил место на экране, чтобы можно было комфортно работать со всеми программами. И в общем-то с браузером так работать можно, но я предпочитаю, чтобы всё таки окошко было побольше. Поменяю его местами с окном побольше.
Допустим, скачаю я файл, мне его надо будет открыть. Для удобства перемещения по папкам, сделаю окно файлового менеджера побольше.
Теперь я вообще хочу чтобы терминал превратился во всем нам привычное окно, а браузер занимал побольше места. Без проблем.
Ну, я надеюсь, что суть Вы уловили. i3 автоматически открывает окна так, чтобы они занимали 100% свободной площади экрана, но при этом все оставались видимыми. При этом он, как и обычный оконный менеджер, позволяет нам перемещать окна (точнее скачать, менять их местами) и изменять их размер, автоматически подстраивая размер остальных окон.
Пример того, как можно настроить и пользоваться i3:
Конечно, если мы откроем 6-7 окон, то они все будут крошечные и мешать друг другу. Будет тесно. Кроме того, иногда мы всё-таки хотим, чтобы окно открылось на весь экран даже, если оно не единственное.
Поэтому i3 также поддерживает обычный функционал виртуальных рабочих столов. Мы спокойно можем туда переместить некоторые окна и переключаться между рабочими столами по необходимости.
Как без элементов управления манипулировать окнами?
i3 создан по принципу keyboard-driven workflow. Это значит, что абсолютно всем здесь можно управлять с помощью клавиатуры. Перемещение окон, открытие и закрытие программ, переключение виртуальных рабочих столов и прочее. Возможность обходится без мыши замечательно подойдёт для владельцев ноутбуков, т.к. теперь неудобный тачпад практически не нужен.
Конечно, мышь никто не отменял, некоторые операции здесь можно выполнять и привычным способом. Например, переключать между рабочими столами или перемещать окна, открытые в стандартном «парящем» режиме.
Ну и как Вы могли заметить, окна можно открывать так, как они открываются в стандартных оконных менеджерах, чтобы они были «над» другими окнами. Кстати, модальные окна, которые было бы глупо открывать на весь экран, автоматически появляются поверх остальных окон в привычном размере.
i3 — это только оконный менеджер. А как же остальные части окружения рабочего стола?
Да, i3 поставляется с парой других программ и всё. Здесь нет ни уведомлений, ни эффектов рабочего стола, ни окна настроек. Даже фоновую картинку нельзя установить. Как же быть?
Под Linux есть много программ, выполняющих все эти задачи на ура, но при этом не привязаных к какому-то определённому окружению. Конечно, на установку и настройку всего этого придётся потратить какое-то время.
Не хочу тратить время! Хочу что бы за меня уже всё продумали!
Вы без проблем можете найти дистрибутивы с предустановленным и настроенным i3 и пакетом остальных программ.
Вот некоторые дистрибутивы, имеющие версию с i3:
Как я могу попробовать i3?
i3wm (i3 window manager) распространяется в пакете i3 вместе с парой утилит (статусбар, экран блокировки, лаунчер программ) и есть в репозиториях всех основных дистрибутивов. Вы можете установить его с помощью Вашего пакетного менеджера.
После этого разлогиньтесь. И заново войдите, но при этом выбрав i3 в качестве оконного менеджера (на экране входа есть меню с выбором). Советую открыть сайт с документацией, например, на телефоне. Она вам понадобится.
Конечно же, плиточные оконные менеджеры не подойдут всем без исключения. Если Вы постоянно работаете с мышкой, либо кроме браузера вам ничего не нужно, то и на i3 вы скорее всего лишь зря потратите время.
Но если мышку Вы трогаете редко (например Вы программист или писатель, то возможно, что i3 вам идеально подойдёт).
И на этом у меня всё. Спасибо, что дочитали.
❤️ Буду рад, если Вы поставите лайк, я хоть буду знать, что не зря всё это пишу 😊 Подписывайтесь, если хотите и дальше читать про интересные и необычные программы под Linux, о которых Вы могли не знать.
