Linux lightest display manager

Содержание
  1. Display manager (Русский)
  2. Contents
  3. Список экранных менеджеров
  4. Консольные
  5. Графические
  6. Демоны входа
  7. Запуск экранного менеджера
  8. Использование systemd-logind
  9. Настройка сеанса
  10. Использование
  11. Запуск приложений без оконного менеджера
  12. Советы и рекомендации
  13. Автозапуск
  14. Установка языка
  15. LightDM
  16. Contents
  17. Installation
  18. Greeter
  19. Enabling LightDM
  20. Command line tool
  21. User switching
  22. Testing
  23. Optional configuration and tweaks
  24. X session wrapper
  25. Environment variables
  26. Keymap
  27. Multiple keyboard layouts in lightdm-gtk-greeter
  28. Changing background images/colors
  29. GTK greeter
  30. Webkit2 greeter
  31. Unity greeter
  32. Slick Greeter
  33. Changing your avatar
  34. Sources of Arch-centric 64×64 icons
  35. Enabling autologin
  36. Enabling interactive passwordless login
  37. Enabling guest sessions
  38. Hiding system and services users
  39. Migrating from SLiM
  40. Login using
  41. NumLock on by default
  42. Default session
  43. Adjusting the login window’s position
  44. GTK greeter
  45. VNC Server
  46. Lock the screen using light-locker
  47. Multiple-monitor setup
  48. Troubleshooting
  49. Autologin does not work
  50. Viewing current configuration
  51. LightDM not starting and screen flashing
  52. Wrong locale displayed
  53. Unresponsive for a few minutes after startup
  54. Missing icons with GTK greeter
  55. LightDM freezes on login attempt
  56. LightDM displaying in wrong monitor
  57. LightDM does not appear or monitor only displays TTY output
  58. LightDM is running with low FPS on Intel Graphics
  59. Pulseaudio not starting automatically
  60. Long pause before LightDM shows up when home is encrypted
  61. Boot hangs on «[ OK ] Reached target Graphical Interface.»
  62. Wayland session not working with duplicate GNOME entries in greeter
  63. Login always segfaults on first attempt
  64. Infinite login loop

Display manager (Русский)

Экранный менеджер или менеджер входа — графический экран, который отображается в конце процесса загрузки вместо стандартного приглашения командной строки. Экранный менеджер представляет собой экран ввода имени пользователя и пароля для входа в систему. Существует множество экранных менеджеров, как и окружений рабочего стола. Практически все экранные менеджеры можно настраивать, изменяя их стиль и поведение.

Contents

Список экранных менеджеров

Консольные

  • CDM — ультра-минималистичный, но полнофункциональный менеджер входа, написанный на Bash.

https://github.com/evertiro/cdm || cdmAUR

  • Console TDM — расширение для xinit, также написанное на Bash.

https://github.com/dopsi/console-tdm || console-tdmAUR

  • nodm — минималистичный экранный менеджер для автоматического входа.

https://github.com/spanezz/nodm || nodm

  • Ly — легковесный TUI (ncurses-like) экспериментальный менеджер входа.

https://github.com/nullgemm/ly || lyAUR

  • tbsm — лаунчер сессий или приложений, написанный на чистом bash. Поддерживает сеансы X и Wayland.

https://loh-tar.github.io/tbsm/ || tbsmAUR

  • emptty — совершенно простой менеджер CLI на TTY с поддержкой X и Wayland.

https://github.com/tvrzna/emptty/ || emptty-gitAUR

  • udm — микроскопический менеджер (как cdm, tdm и т.д.) с поддержкой Wayland и нескольких дисплеев/сеансов. Написан на POSIX shell без зависимостей и имеет всего

    Графические

    • Entrance — экранный менеджер Enlightenment.

    https://github.com/Obsidian-StudiosInc/entrance || entrance-gitAUR

    • GDM — экранный менеджер GNOME.

    https://wiki.gnome.org/Projects/GDM || gdm

    • LightDM — независимый от среды рабочего стола экранный менеджер, можно подключать различные фронтенды с любыми тулкитами.

    https://github.com/canonical/lightdm || lightdm

    • LXDM — экранный менеджер LXDE. Может быть использован отдельно от среды рабочего стола LXDE.

    https://sourceforge.net/projects/lxdm/ || lxdm

    • SDDM — экранный менеджер, основанный на QML. Продолжение KDE4 kdm, рекомендуется для Plasma 5 и LXQt.

    https://github.com/sddm/sddm || sddm

    • XDM — экранный менеджер с поддержкой XDMCP.

    xdm(8) || xorg-xdm

    Демоны входа

    • greetd — Минимальный, гибкий и независимый демон входа в систему, который поддерживает как консольные, так и графические интерфейсы.

    https://git.sr.ht/

    Запуск экранного менеджера

    Чтобы включить экран входа, запустите соответствующую службу. Например для SDDM включите sddm.service .

    Это должно работать без дополнительных настроек. Если нет, возможно, вам придется удалить символическую ссылку default.target , чтобы указать на graphical.target файл по умолчанию. Смотрите Изменение цели загрузки по умолчанию.

    После включения SDDM в /etc/systemd/system/ должен быть установлен symlink display-manager.service . Возможно, вам придется использовать —force для переопределения старых символических ссылок.

    Использование systemd-logind

    Чтобы иметь возможность проверить статус вашей сессии, вы можете использовать loginctl. Все действия polkit, такие, как перевод системы в ждущий режим или монтирование внешних устройств будут работать «из коробки».

    Настройка сеанса

    Большинство экранных менеджеров получают список доступных сеансов из каталога /usr/share/xsessions/ . Он содержит стандартные файлы .desktop для каждого экранного/оконного менеджера.

    Чтобы добавить/удалить записи в список сеансов вашего экранного менеджера, создайте/удалите соответствующий файл .desktop в /usr/share/xsessions/ . Типичный файл .desktop выглядит примерно так:

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

    /.xinitrc как сеанс

    Установите xinit-xsession AUR для запуска xinitrc в качестве сеанса. Просто установите xinitrc в качестве сеанса в настройках вашего экранного менеджера и убедитесь, что файл

    /.xinitrc является исполняемым.

    Запуск приложений без оконного менеджера

    Вы также можете запускать приложения без какого-либо оформления. Например, для запуска google-chrome AUR создайте файл web-browser.desktop в /usr/share/xsessions/ :

    При этом, сразу после входа будет запущено приложение, указанное в опции Exec . Когда вы закроете приложение, вы будете возвращены к экранному менеджеру (точно так же, как если бы вы вышли из среды рабочего стола/оконного менеджера).

    Важно помнить, что большинство графических приложений не рассчитаны на запуск в таком режиме и вы можете столкнуться с определенными ограничениями в их работе (например, диалоговые окна будут отображены без рамки и вы не сможете их перемещать по экрану; вы не сможете управлять никаким окном обычным способом — для установки размеров и положения вам, вероятно, придется вносить изменения в файлы настроек приложения).

    Советы и рекомендации

    Автозапуск

    Большинство экранных менеджеров используют /etc/xprofile ,

    /.xprofile и /etc/X11/xinit/xinitrc.d/ при входе. Для получения подробной информации, см. xprofile.

    Установка языка

    Для экранных менеджеров, которые используют AccountsService, язык для пользовательского сеанса может быть установлен путем редактирования:

    где your_locale — значение вида ru_RU.UTF-8 .

    В качестве альтернативы можно использовать D-Bus: busctl call org.freedesktop.Accounts /org/freedesktop/Accounts/User$UID org.freedesktop.Accounts.User SetLanguage s your_locale

    Выйдите из системы, а затем снова войдите, чтобы изменения вступили в силу.

    Источник

    LightDM

    LightDM is a cross-desktop display manager. Its key features are:

    • Cross-desktop — supports different desktop technologies.
    • Supports different display technologies (X, Mir, Wayland . ).
    • Lightweight — low memory usage and high performance.
    • Supports guest sessions.
    • Supports remote login (incoming — XDMCP, VNC, outgoing — XDMCP, pluggable).
    • Comprehensive test suite.
    • Low code complexity.

    More details about LightDM’s design can be found here.

    Contents

    Installation

    Greeter

    You will probably want to install a greeter. A greeter is a GUI that prompts the user for credentials, lets the user select a session, and so on. It is possible to use LightDM without a greeter, but only if an automatic login is configured; otherwise you will need to install xorg-server and one of the greeter packages below.

    The official repositories contain the following greeters:

    • lightdm-gtk-greeter : This is the default greeter LightDM attempts to use, unless configured otherwise.
    • lightdm-deepin-greeter ( deepin-session-shell ): A greeter from the Deepin project.
    • lightdm-pantheon-greeter : A greeter from the elementary OS project.
    • lightdm-slick-greeter : A GTK based greeter focused more on appearance than lightdm-gtk-greeter , forked from lightdm-unity-greeterAUR , and default in Linux Mint.
    • lightdm-webkit2-greeter : A greeter that uses Webkit2 for theming. It supersedes lightdm-webkit-greeterAUR .
    • lightdm-webkit-theme-litarvan : A modern and full-featured Webkit2 LightDM theme.

    Other alternative greeters are available in the AUR:

    • lightdm-unity-greeterAUR : The greeter used by Unity.
    • lightdm-mini-greeterAUR : A minimal, configurable, single-user greeter.
    • lightdm-webkit-theme-aetherAUR : A sleek, straightforward Archlinux themed login screen written on lightdm and the lightdm-webkit2-greeter.
    • lightdm-elephant-greeter-gitAUR : A small and simple greeter that runs in the cage Wayland compositor per default.

    You can set the default greeter by changing the [Seat:*] section of the LightDM configuration file, like so:

    One way to check which greeters are available is to list the files in the /usr/share/xgreeters directory; each .desktop file represents an available greeter. In this example, the lightdm-gtk-greeter and lightdm-webkit2-greeter greeters are available:

    Enabling LightDM

    Make sure to enable lightdm.service so LightDM will be started at boot; see also Display manager#Loading the display manager.

    Command line tool

    LightDM offers a command line tool, dm-tool , which can be used to lock the current seat, switch sessions, etc, which is useful with ‘minimalist’ window managers and for testing. To see a list of available commands, execute:

    User switching

    The factual accuracy of this article or section is disputed.

    LightDM’s dm-tool command can be used to allow multiple users to be logged in on separate ttys. The following will send a signal requesting that the current session be locked and then will initiate a switch to LightDM’s greeter, allowing a new user to log in to the system.

    Testing

    Then, run LightDM as an X application:

    Optional configuration and tweaks

    LightDM can be configured by modifying its config file, /etc/lightdm/lightdm.conf .

    Some greeters have their own configuration files. For example:

    X session wrapper

    This article or section is a candidate for merging with Xprofile.

    If you are migrating from xinit, you will notice that the display is not launched by your shell. This is because, as opposed to your shell starting the display (and the display inheriting the environment of your shell), LightDM starts your display and does not source your shell. LightDM launches the display by running a wrapper script and that finally exec’s your graphic environment. By default, /etc/lightdm/Xsession is run.

    Environment variables

    The script checks and sources /etc/profile ,

    /.profile , /etc/xprofile and

    /.xprofile , in that order. If you are using a shell that does not source any of these files, you can create an

    /.xprofile to do so. (In this example, the login shell is zsh)

    If you have shell variables that are important for your display (such as Gtk or QT themes, GNUPG location, config overrides, etc.) this will let your graphic environment have access to your environment without having to be launched by your login shell.

    Keymap

    The script runs Xkbmap with arguments provided in files /etc/X11/Xkbmap ,

    /.Xkbmap . If those files are not found, it runs xmodmap with /etc/X11/Xmodmap ,

    /.Xmodmap . If using xkbmap, the files are parsed using cat. The following example works

    Otherwise, the session inherits the system default mapping of X11. This mapping can be defined in the xorg configuration files, either manually or with localectl set-x11-keymap . See Xorg/Keyboard configuration#Setting keyboard layout.

    Multiple keyboard layouts in lightdm-gtk-greeter

    To enable users switch between pre-defined keyboard layouts on the log-in screen enable the drop-down menu and configure the layouts. Either use the lightdm-gtk-greeter-settings gui or edit the configuration file directly:

    Use localectl to set multiple layouts, e.g. de and its “variant” neo with the latter as primary:

    Note the trailing comma which implies a blank variant for the second de.

    Changing background images/colors

    You can set the background to a hex color or an image. Some greeters offer more robust background options like background selection from the login screen, random backgrounds, etc.

    GTK greeter

    Users wishing to customize the wallpaper on the greeter screen need to edit /etc/lightdm/lightdm-gtk-greeter.conf and define the background variable under the [greeter] section. For example:

    GTK3 Theme

    GTK3 themes can be specified with the theme-name variable in the [greeter] section of /etc/lightdm/lightdm-gtk-greeter.conf For example, theme-name=Adwaita-dark .

    Webkit2 greeter

    The lightdm-webkit2-greeter allows you to choose a background image directly on the login screen. It also offers an option to display a random image each time it starts if you use the Material theme. By default, images are sourced from /usr/share/backgrounds . You can change the background images directory by editing lightdm-webkit2-greeter.conf . For example:

    Unity greeter

    Users using the lightdm-unity-greeter AUR must edit the /usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml file and then execute:

    According to this page.

    Slick Greeter

    Changing your avatar

    First, make sure the accountsservice package from the official repositories is installed, then set it up as follows, replacing username with the desired user’s login name.

    • Create the file /var/lib/AccountsService/icons/username.png using a 96×96 PNG image file. Different image file formats are possible too, e.g., JPEG.
    • Alternatively, create the image file as /home/username/.face and skip the next step if the defaults already point to the user home directory path
    • Edit or create the account settings file /var/lib/AccountsService/users/username , and add the lines

    The filename here should point to the icon created in the first step, so adjust the filename extension if necessary.

    Sources of Arch-centric 64×64 icons

    The archlinux-artwork AUR package contains some nice examples that install to /usr/share/archlinux/icons and that can be copied to /usr/share/icons/hicolor/64×64/devices as follows:

    After copying, the archlinux-artwork AUR package can be removed.

    Enabling autologin

    Edit the LightDM configuration file and ensure these lines are uncommented and correctly configured:

    You must be part of the autologin group to be able to login automatically without entering your password:

    LightDM logs in using the session specified in the

    /.dmrc of the user getting logged in automatically. To override this file, specify autologin-session in lightdm.conf :

    The list of valid session names can be found by listing /usr/share/xsessions/*.desktop for X’s sessions and /usr/share/wayland-sessions/*.desktop for Wayland’s.

    Enabling interactive passwordless login

    LightDM goes through PAM so you must configure the lightdm configuration of PAM:

    You must then also be part of the nopasswdlogin group to be able to login interactively without entering your password:

    To create a new user account that logs in automatically and additionally able to login again without a password the user can be created with supplementary membership of both groups, e.g.:

    Enabling guest sessions

    To enable guest sessions in LightDM (without changing your system configuration) you need at least two things:

    1. a guest-account-script: defaults to guest-account and accepts two commands:
      • add (to create a temporary guest system account and returns the user name of the created account)
      • removeaccount name(to delete the corresponding account)
    2. an autologin group to which the created guest account must be added (cf. /etc/pam.d/lightdm-autologin )

    There are two AUR packages that enable guest sessions in lightdm:

    • lightdm-guestAUR which provides the (largely unmodified) upstream guest-session script as well as lightdm itself.
    • lightdm-guest-accountAUR which provides only a minimal version of the script.

    Hiding system and services users

    To prevent system users from showing-up in the login, install the optional dependency accountsservice , or add the user names to /etc/lightdm/users.conf under hidden-users . The first option has the advantage of not needing to update the list when more users are added or removed.

    Migrating from SLiM

    This article or section is a candidate for merging with Display Manager.

    Move the contents of xinitrc to xprofile, removing the call to start the window manager or desktop environment.

    Login using

    NumLock on by default

    Install the numlockx package and then edit /etc/lightdm/lightdm.conf :

    Default session

    Lightdm, like other DMs, stores the last-selected xsession in

    Adjusting the login window’s position

    GTK greeter

    Users need to edit /etc/lightdm/lightdm-gtk-greeter.conf and enter a value for the position variable. It accepts x and y values, either absolute (in pixels) or relative (in percent). Each value can also have an additional anchor location for the window, start , center and end separated from the value by a comma.

    VNC Server

    Lightdm can also be used to connect to via VNC. Make sure to install tigervnc on the server side and optionally as your VNC client on the client PC.

    Setup an authentication password on the server as root:

    Edit the LightDM configuration file as shown below. Note that listen-address configures the VNC to only listen to connections from localhost. This is used to only allow connections via SSH and port forwarding. On the SSH client, make sure that you use localhost:5900 for the tunnel destination; using 127.0.0.1:5900 or ::1:5900 is not reliable on dual stack network connections. If you want to allow insecure connections you can disable this setting.

    Now open an SSH tunnel and connect to localhost as described in TigerVNC#On the client.

    Lock the screen using light-locker

    light-locker is a simple screen locker using LightDM to authenticate the user. Once installed and running, you can lock your session via:

    This requires light-locker to be started at the beginning of your session. By default, this is enabled through XDG Autostart. See Autostarting for more options.

    Multiple-monitor setup

    Sometimes LightDM does not set the monitor resolution correctly on a multiple-monitor setup. The following Xorg configuration works with two monitors: a large primary screen on the left side, and a secondary smaller screen to its right. The order can be reversed and tweaked.

    This makes the display-setup-script tweaks from /etc/lightdm/lightdm.conf redundant.

    Troubleshooting

    Autologin does not work

    Ensure autologin-user= in /etc/lightdm/lightdm.conf contain the correct values. Trailing whitespace will cause errors.

    If autologin fails with a blank screen or if the login screen immediately returns, you may need to set logind-check-graphical=true .

    You can also install lightdm-autologin-greeter-git AUR for this special purpose.

    Viewing current configuration

    To view effective configuration, run:

    This will show current settings, with the configuration files these settings were read from.

    LightDM not starting and screen flashing

    If you encounter consistent screen flashing and ultimately no LightDM on boot, ensure that you have defined the greeter correctly in LightDM’s config file. And if you have correctly defined the GTK greeter, make sure the xsessions-directory (default: /usr/share/xsessions ) exists and contains at least one .desktop file.

    The same error can happen on lightdm startup if the last used session is not available anymore (eg. you last used gnome and then removed the gnome-session package): the easiest workaround is to temporarily restore the removed package. Another solution might be:

    This example sets the session «xfce» as default for the user 1000.

    Wrong locale displayed

    In case of your locale not being displayed correctly in Lightdm add your locale to /etc/environment :

    Alternatively if you want LightDM and its greeters to be in a language other than your set system locale, you can use the Environment= option in Systemd#Drop-in files.

    Unresponsive for a few minutes after startup

    You may have to download more entropy. Install and enable haveged, c.f. https://github.com/canonical/lightdm/issues/17

    Missing icons with GTK greeter

    If you are using lightdm-gtk-greeter as a greeter and it shows placeholder images as icons, make sure valid icon themes and themes are installed and configured. Check the following file:

    LightDM freezes on login attempt

    You may find that after entering the correct username and password and attempting to log in, LightDM freezes and you are unable to continue to the desktop. To fix the issue, reinstall the gdk-pixbuf2 package. See this forum thread.

    LightDM displaying in wrong monitor

    If you are using multiple monitors, LightDM may display in the wrong one (e.g. if your primary monitor is on the right). To force the LightDM login screen to display on a specific monitor, edit /etc/lightdm/lightdm.conf and change the display-setup-script parameter like this:

    Replace HDMI1 with your real monitor ID, which you can find from xrandr command output.

    Alternatively, if you are using the GTK greeter, you can edit /etc/lightdm/lightdm-gtk-greeter.conf and add the active-monitor parameter like this:

    Replace 0 with the desired display number.

    LightDM does not appear or monitor only displays TTY output

    It may happen that your system boots so fast that LightDM service is started before your graphics drivers are properly loaded. If this is your case, you will want to add the following config to your lightdm.conf file:

    This setting will tell LightDM to wait until graphics devices are ready before spawning greeters/autostarting sessions on them.

    LightDM is running with low FPS on Intel Graphics

    Pulseaudio not starting automatically

    Long pause before LightDM shows up when home is encrypted

    Some LightDM themes try to access the user avatar located in HOME. If your HOME is encrypted, LightDM cannot access it and hangs. To prevent this from happening, you can either:

    • Set your avatar as explained in #Changing your avatar
    • for lightdm-gtk-greeter only: hide-user-image = true in /etc/lightdm/lightdm-gtk-greeter.conf

    Boot hangs on «[ OK ] Reached target Graphical Interface.»

    There is a possibility that user and group lookups fail if you modified /etc/nsswitch.conf. That happens when:

    • nsswitch.conf group: includes ldap without setting nss_initgroups_ignoreusers ALLLOCAL in /etc/nslcd.conf

    Wayland session not working with duplicate GNOME entries in greeter

    • Some greeters ( lightdm-webkit2-greeter for example) do not support two sessions with the same name [1]. To check for duplicate entries:
    • Rename the duplicate entry in /usr/share/xsessions. For example:

    Login always segfaults on first attempt

    Set a hostname as described in Network Page. See also FS#47694.

    Infinite login loop

    If you get stuck in loop in which you type your correct user and password but the screen goes black and the you are back in the login after every attempt, running rm

    /.Xauthority (or the stuck user’s problematic .Xauthority ) may fix the issue.

    Another reason for this may be that you tried to recreate your «lightdm.conf» from scratch and your version is missing this line:

    In that case, lightdm tries to use «lightdm-session» as the session-wrapper which does not exist on Arch Linux.

    Источник

    Читайте также:  Окне редактора object windows
Оцените статью