Display manager (한국어)

From ArchWiki
Jump to navigation Jump to search

디스플레이 매니저 혹은 로그인 매니저는 부팅 뒤에 기본 쉘 대신 표시되는 그래픽 유저 인터페이스이다. 다양한 윈도우 매니저와 데스크탑 환경이 존재하듯이, 다양한 디스플레이 매니저의 구현이 존재한다. 각 디스플레이 매니저에 대해서는 커스터마이제이션 혹은 테마 설정이 존재할 수도 있다.

디스플레이 매니저의 목록

콘솔

  • CDM — Ultra-minimalistic, yet full-featured login manager written in Bash.
https://github.com/evertiro/cdm || cdmAUR
  • Console TDM — Extension for xinit written in pure Bash.
https://github.com/dopsi/console-tdm || console-tdmAUR
  • nodm — Minimalistic display manager for automatic logins, unmaintained since 2017.
https://github.com/spanezz/nodm || nodm
  • Ly — Experimental ncurses display manager.
https://github.com/nullgemm/ly || lyAUR
  • tbsm — A pure bash session or application launcher. Supports X and Wayland sessions.
https://loh-tar.github.io/tbsm/ || tbsmAUR
  • emptty — Dead simple CLI Display Manager on TTY with X and Wayland support.
https://github.com/tvrzna/emptty/ || emptty-gitAUR

그래픽

https://github.com/Obsidian-StudiosInc/entrance || entrance-gitAUR
https://wiki.gnome.org/Projects/GDM || gdm
  • LightDM — Cross-desktop display manager, can use various front-ends written in any toolkit.
https://github.com/CanonicalLtd/lightdm/ || lightdm
  • LXDMLXDE display manager. Can be used independent of the LXDE desktop environment.
https://sourceforge.net/projects/lxdm/ || lxdm
  • SDDM — QML-based display manager and successor to KDM; recommended for Plasma and LXQt.
https://github.com/sddm/sddm || sddm
  • XDM — X display manager with support for XDMCP, host chooser.
xdm(8) || xorg-xdm

로그인 daemon

  • greetd — Minimal, flexible and agnostic login daemon which supports both console and graphical greeters.
https://git.sr.ht/~kennylevinsen/greetd || greetd-gitAUR

디스플레이 매니저를 불러오기

그래픽 로그인을 활성하하기 위해서는 적절한 systemd 서비스를 활성화하여야 한다. 예를 들어, SDDM을 사용하기 위해서는 sddm.service를 활성화하면 된다.

이 과정은 보통 별도의 설정 없이 사용할 수 있다. 그렇지 않은 경우에도, 별도의 default.target 심링크를 기본 {{ic|graphical.target}으로 향하도록 재설정하면 된다. systemd#Change default target to boot into를 참고.

SDDM을 불러온 뒤에는 심링크 display-manager.service/etc/systemd/system/에 위치하여야 한다. 이전의 심링크를 덮어씌우기 위해서는 --force 옵션이 필요할 수도 있다.

$ file /etc/systemd/system/display-manager.service
/etc/systemd/system/display-manager.service: symbolic link to /usr/lib/systemd/system/sddm.service

systemd-logind를 사용하는 방법

현재 사용자 세션의 상태를 확인하기 위해서 loginctl 명령어를 사용할 수 있다. 시스템 종료나 외장 드라이브의 마운트를 비롯한 모든 polkit 동작은 바로 사용할 수 있게 된다.

$ loginctl show-session $XDG_SESSION_ID

세션 설정

다수의 디스플레이 매니저는 사용가능한 세션을 /usr/share/xsessions/ 디렉토리로부터 불러온다. 이 디렉토리는 각 데스크탑 환경이나 윈도우 매니저를 위한 표준적인 desktop entry files을 포함하며, 일부 디스플레이 매니저는 Wayland를 위한 특정 세션을 불러오기 위해 별도로 /usr/share/wayland-sessions/ 디렉토리를 불러오기도 한다.

디스플레이 매니저의 세션 목록에 항목을 추가하거나 제거하기 위해서는, /usr/share/xsessions/에서 원하는대로 .desktop 파일을 추가 혹은 제거하면 된다. 일반적인 경우 .desktop 파일은 다음과 같은 내용을 포함한다.

[Desktop Entry]
Name=Openbox
Comment=Log in using the Openbox window manager (without a session manager)
Exec=/usr/bin/openbox-session
TryExec=/usr/bin/openbox-session
Icon=openbox.png
Type=Application

~/.xinitrc 을 세션으로서 실행하기

xinit-xsessionAUR을 설치하면, xinitrc을 세션으로서 실행하는 옵션이 제공된다. 단순히 xinitrc을 디스플레이 매니저의 설정에서 세션으로 지정하는 것으로 충분하다. 단, ~/.xinitrc은 실행 가능한 상태여야 한다.

윈도우 매니저 없이 어플리케이션 실행하기

데스크탑, 윈도우 관리, 혹은 그래픽 요소 없이 어플리케이션을 실행하는 것이 가능하다. 예를 들어, google-chromeAUR를 실행하기 위해서는 web-browser.desktop 파일을 다음과 같이 지정하여 /usr/share/xsessions/ 디렉토리에 추가하면 된다.

[Desktop Entry]
Name=Web Browser
Comment=Use a web browser as your session
Exec=/usr/bin/google-chrome --auto-launch-at-startup
TryExec=/usr/bin/google-chrome --auto-launch-at-startup
Icon=google-chrome
Type=Application

이러한 경우에는, 로그인한 직후 Exec으로 설정된 어플리케이션이 실행될 것이다. 어플리케이션을 종료한다면, 로그인 매니저로 다시 돌아가게 된다(일반적인 데스크탑 환경이나 윈도우 매니저를 종료하였을 때와 같다).

대다수의 GUI를 제공하는 어플리케이션은 이러한 방식으로 실행되는 것을 의도하지 않고 설계되었으며, 이러한 방법으로 실행하는 경우에는 별도의 설정이나, 불가피한 실행 상의 한계가 존재할 수 있다. (윈도우 매니저가 관여하지 않으므로, 창의 크기 조절, 이동, 대화 창을 사용하는 것은 보통 불가능하다. 일부 어플리케이션은 창의 동작에 관한 설정을 제공하기도 한다.)

자세한 내용에 관해서는 xinitrc#Starting applications without a window manager를 같이 참고할 것.

Tips and tricks

Autostarting

Most display managers source /etc/xprofile, ~/.xprofile and /etc/X11/xinit/xinitrc.d/. For more details, see xprofile.

Set language for user session

For display managers that use AccountsService the locale for the user session can be set by editing:

/var/lib/AccountsService/users/$USER
[User]
Language=your_locale

where your_locale is a value such as en_GB.UTF-8.

Log out and then back in again for the changes to take effect.