Skip to content
  • Категории
  • Последние
  • Метки
  • Популярные
  • World
  • Пользователи
  • Группы
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • По умолчанию (Darkly)
  • Нет скина
Collapse

База знаний (кластер NBICS)

  1. Главная
  2. Команды BASH
  3. Bash - работа с графическим окружением

Bash - работа с графическим окружением

Запланировано Прикреплена Закрыта Перенесена Команды BASH
2 Сообщения 1 Posters 4 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • A Не в сети
    A Не в сети
    Admin
    написал в отредактировано Admin
    #1

    Содержание

    1 ответ Последний ответ
    0
    • A Не в сети
      A Не в сети
      Admin
      написал в отредактировано
      #2

      Проверить тип сессии Xorg или Wayland


      Вот актуальный на конец 2025 года набор команд — какие реально работают и что выводят в разных ситуациях (локально, по SSH, в TTY, в контейнерах).

      Топ-5 рабочих способов (по надёжности)

      # 1. Самый надёжный (2025 стандарт)
      loginctl show-session $(loginctl | grep $(whoami) | awk '{print $1}') -p Type --value
      # Вывод: wayland или x11
      
      # 2. Коротко и красиво (мой ежедневный фаворит)
      echo $XDG_SESSION_TYPE
      # Вывод: wayland / x11 / tty
      
      # 3. Ещё короче и всегда работает локально
      echo $WAYLAND_DISPLAY $XDG_SESSION_TYPE
      # Если есть $WAYLAND_DISPLAY (например, wayland-0) → Wayland
      # Иначе, если $XDG_SESSION_TYPE = x11 → Xorg
      # Иначе → tty
      
      # 4. Универсальная однострочка (работает даже по SSH)
      if [ -n "$WAYLAND_DISPLAY" ] || [ "$XDG_SESSION_TYPE" = "wayland" ]; then
          echo "Wayland"
      elif [ "$XDG_SESSION_TYPE" = "x11" ]; then
          echo "Xorg"
      else
          echo "TTY / Консоль / SSH"
      fi
      
      # 5. Самая красивая и информативная
      echo "Сессия:     $XDG_SESSION_TYPE"
      echo "Дисплей:    ${WAYLAND_DISPLAY:-${DISPLAY:-не определён}}"
      echo "Композитор: ${XDG_CURRENT_DESKTOP:-неизвестно}"
      

      Что выводят команды в разных случаях (2025)

      Ситуация echo $XDG_SESSION_TYPE echo $WAYLAND_DISPLAY echo $DISPLAY loginctl … Type
      Локально в GNOME/KDE (Wayland) wayland wayland-0 (пусто) wayland
      Локально в GNOME/KDE (X11) x11 (пусто) :0 x11
      Локально в TTY (Ctrl+Alt+F3) tty (пусто) (пусто) tty
      По SSH tty (пусто) (пусто) tty
      В WSL2 с GUI x11 или wayland (зависит от дистра) :0 x11
      В Docker-контейнере с X11 forwarding (обычно пусто) (пусто) :10 (не работает)

      Мой личный алиас (добавь в ~/.bashrc / ~/.zshrc)

      alias session='echo "Session: $XDG_SESSION_TYPE | Desktop: $XDG_CURRENT_DESKTOP | Display: ${WAYLAND_DISPLAY:-$DISPLAY}"'
      

      Использование:

      $ session
      Session: wayland | Desktop: GNOME | Display: wayland-0
      

      Итог: запомни всего две команды на всю жизнь

      echo $XDG_SESSION_TYPE          # 99 % случаев достаточно
      loginctl show-session $(loginctl list-sessions | grep $(whoami) | awk '{print $1}') -p Type --value
      

      В 2025 году в 95 % случаев достаточно просто echo $XDG_SESSION_TYPE.

      1 ответ Последний ответ
      0
      Ответить
      • Ответить, создав новую тему
      Авторизуйтесь, чтобы ответить
      • Сначала старые
      • Сначала новые
      • По количеству голосов


      • Войти

      • Login or register to search.
      Powered by NodeBB Contributors
      • Первое сообщение
        Последнее сообщение
      0
      • Категории
      • Последние
      • Метки
      • Популярные
      • World
      • Пользователи
      • Группы