X Window System
X 윈도 시스템(X Window System, 흔히 X11, X라고 알려져 있음)은 유닉스 계열 운영체제에서 GUI 환경의 구현을 위한 소프트웨어와 네트워크 프로토콜이다. 현재 주로 X11버전을 쓰고 있으며 X.org에서 이를 오픈 소스 버전으로 구현하여, 레드햇을 비롯한 대부분의 리눅스 배포판에서 기본 GUI 시스템으로 사용되고 있다.
X 윈도 시스템은 서버와 클라이언트의 네트워크 모델을 지원하여 X 서버와 X 클라이언트가 서로 분리되어 작동되도록 설계되어 있다. 이 때문에 X 서버의 프로그램을 X 윈도 클라이언트가 이용할 수 있는 것이 큰 특징 중의 하나이다. X 윈도에서는 아이콘, 메뉴, 패널을 자유자재로 사용할 수 있게 해 주는 창 관리자와 오픈 데스크톱 환경으로 KDE, Gnome, Xfce 등을 사용할 수 있도록 지원하고 있다.
Categories
Common (categories)
- freedesktop.org (XDG; X Desktop Group)
- X Window System (x11; xserver)
- X Display Manager (xdm)
- X window manager
Implementation
Programming
- Xlib: C Programming을 위한 x11 library.
- XCB
- X:Programming
X.Org
Spec
X11 Window System Protocol
Common Tools
Composite
- Xorg - ArchWiki # Composite
- 자세한 내용은 합성 창 관리자 (Compositing window manager) 문서를 참조.
- Picom
- Xcompmgr
- Unagi
Plugins
- xserver-xorg-video-dummy: Dummy video
x11 apps
- iceauth: ICE 프로토콜 인증 레코드 조작을 위한 도구
- rgb
- sessreg: utmp/wtmp 엔트리를 관리하는 간단한 프로그램
- xclock: 현재 시간 출력 - OBS 같은걸로 현재시간 출력하기 좋다.
- xcmsdb: a device color characteristic utility for the X Color Management System
- xgamma: 모니터의 감마값 수정에 질의하고 설정하는 도구
- xhost: 현재 호스트 머신에서 확장된 X-Windows에 액세스하는 사용자를 제어합니다. - 매우매우매우 가급적 사용하면 안되는 굉장히 위험한 프로그램 .... 라고 한다.
- xmodmap: X에서 keymaps 과 포인터 버튼 매핑을 수정하는 유틸리티
- xrandr: RandR 확장에 대한 명령행 인터페이스; 해상도/모니터 설정
- xrdb: X 서버 리소스 데이타베이스를 관리하는 도구
- xrefresh: X 화면을 강제로 다시 그리도록 하는 도구
- xset: 여러가지 X 서버 인수를 설정하는 도구
- xsetmode and xsetpointer: X 입력 장치를 조정하는 도구
- xsetroot: 루트 윈도우의 외형을 조정하는 도구
- xstdcmap: 표준 색상표 속성을 선택적으로 정의하는 유틸리티
- xvidtune: 사용자 모니터를 위해 X 서버 모드라인을 수정하기 위한 도구. (information found in synaptic package manager)
- xev: print contents of X events.
- xdpyinfo
- xprop - 선택한 윈도우의 속성 (e.g. WM_CLASS 등)을 확인할 수 있다. - 불행히도
gnome-*
같은 기본 프로그램은 선택되지 않더라... - xwininfo - 선택한 윈도우의 정보 (e.g. id, title 등)을 확인할 수 있다. - 불행히도
gnome-*
같은 기본 프로그램은 선택되지 않더라... - wmctrl - EWMH 및 NetWM 호환 X 창 관리자에서 창을 제어하는 데 사용되는 명령입니다. 일반적인 작업 중 일부는 목록, 크기 조정 및 창 닫기입니다.
- xdotool - command-line X11 automation tool
x11-utils
- xfd - display all the characters in an X font
Applications
- dmenu
- xterm: Terminal emulator for the X Window System
Ref
- ArchLinux:Dirver: 진행하기 전, 그래픽 드라이버를 설치해야 한다.
ETC
- xloadimage: 배경 이미지 설정.
- xpmroot: 배경 이미지 설정.
- feh: 배경 이미지 설정.
- xbindkeys: 키보드 조합에 명령을 바인딩.
- xdotool
- xte
- xdotool - 윈도우의 위치, 이름 등을 확인할 수 있다.
X11 이름인 이유?
The short version is that X11 was the first widely-disseminated version, and it turned out to be good enough to remain as-is for thirty years.
X is the X Window System, which at its core is a protocol; the number identifies the version of the protocol. X1 was released in 1984 inside MIT, and quickly evolved to X9 in 1985; an external port to RT/PC required a protocol change, so X10 followed shortly thereafter. At this point X “escaped” to other organisations, but its developers really wanted a more device-neutral re-design. DEC contributed to this, and released X11 in 1987. (This is a quick summary of Wikipedia’s history of X.)
The protocol itself is stable, because it’s device-neutral and extensible. As a result, there has been no absolute need for a new protocol version (X12); as Bob Scheifler put it when he presented version 11, “We don’t think it will ever change again, okay. There’s not gonna be a version 12.” The wide dissemination of X11 also means it’s harder to introduce a new protocol version, and instead, new features are introduced as extensions (sometimes jumping through hoops).
There are a number of limitations in X11, and there’s even an “X12” page (which isn’t about an actual X12 project, just a list of what it would have to do and relevant resources).
The successor of course is likely to be Wayland, which is developed by X developers.
As pointed out by Wilson, the letter X was picked as a follow-on to W, which was the windowing system of the V operating system.
X Desktop Group (XDG)
- Back to Basics With X and systemd
- X without Display Manager - Gentoo Wiki
- Ubuntu wiki - Spec: Basic Multiseat Support for LightDM
Environment variables
- XDG_VTNR
- Arch Linux now provides this by default.
/etc/X11/xinit/xserverrc
will start your X session onXDG_VTNR
, if the environment variable is set. Therefore, if you’re using Arch, stop reading here and update to at least xorg-xinit 1.3.2-3.
Check XDG VT number
if [[ $XDG_VTNR -ne 3 && $XDG_VTNR -ne 4 ]]; then
echo "VT number is must be 3 or 4 (current: $XDG_VTNR)"
exit 1
fi
Desktop environments and window managers for X11
DEs | Full-featured | |
Mid-range | Trinity, CDE, Xfce, IRIX Interactive Desktop | |
Lightweight | EDE (FLTK), Etoile (GNUstep), LXDE (GTK) / Razor-qt (Qt), Mezzo, ROX, UDE, Sugar | |
Shell | Unity, GNOME Shell, Cinnamon, KDE Plasma | |
WMs | Compositing | Compiz, Metacity, Mutter, KWin |
Tiling | ||
Stacking | amiwm, twm, cwm, mwm, FVWM, IceWM, Enlightenment, Blackbox, Fluxbox, Openbox, Window Maker, AfterStep, PekWM | |
Components | Window Manager, Window decorator, Dock, Title bar, Task bar, Notification Area, Pager | |
Related reading | Windowing system, Desktop environment, GUI widget, X Window System, X window manager, Virtual desktop, OpenGL, DirectX, GPU, Mouse, Keyboard, WIMP, GUI, Widget toolkit, Turbo Vision, Qt, GTK, AIGLX, XGL, Shell (computing), Painter's algorithm, Resolution independence |
Troubleshooting
OSX XQuartz 보안 연결
XQuartz 항목 참조.